Proxmox - полезное

Монтирование qcow2 образа:
# mount
modprobe nbd max_part=63
qemu-nbd -c /dev/nbd0 image.qcow2
mount /dev/nbd0p1 /mnt

# unmount
umount /mnt
qemu-nbd -d /dev/nbd0
modprobe -r nbd
fix cluster
pvecm e 1
pvecm delnode 
systemctl stop pvestatd.service
systemctl stop pvedaemon.service
systemctl stop pve-cluster.service
rm -rf /var/lib/pve-cluster
rm -rf /etc/corosync
systemctl start pve-cluster.service
ln -sf /etc/pve/priv/authorized_keys /root/.ssh/authorized_keys
ln -sf /etc/pve/priv/authorized_keys /root/.ssh/authorized_keys.orig
systemctl start pve-cluster.service
systemctl start pvestatd.service
systemctl start pvedaemon.service
pvecm updatecerts
Трём незанятое место в госте, чтоб потом сжать сам имидж - unix:
#!/bin/sh
dd if=/dev/zero of=junk
sync
rm junk
- windows:
- ставим sdelete из комплекта sysinternals (http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx)
- и делаем "sdelete -c" для каждого диска
и потом "qemu-img convert -c -O qcow2 source.qcow2 shrunk.qcow2" имидж виртуалки.

Скрипт сжатия гостя:
#!/bin/sh
ID=101
FILE=1
TYPE=qcow2
STORE=/var/lib/vz

mv $STORE/images/$ID/vm-$ID-disk-$FILE.qcow2 $STORE/images/$ID/__tmp_vm-$ID-disk-$FILE.qcow2
qemu-img convert -c -O qcow2 $STORE/images/$ID/__tmp_vm-$ID-disk-$FILE.qcow2 $STORE/images/$ID/vm-$ID-disk-$FILE.qcow2
rm $STORE/images/$ID/__tmp_vm-$ID-disk-$FILE.qcow2
Конвертируем VMWare vmdk в qcow2 для запуска под proxmox:
qemu-img convert -c -O qcow2 /path_to/windows2003.vmdk /path_to/vm-111-disk-1.qcow2
Патч, отключающий навязчивую рекламу платной подписки в Proxmox 3.1:
diff -Naur /usr/share/pve-manager/ext4/pvemanagerlib.js.original /usr/share/pve-manager/ext4/pvemanagerlib.js
--- /usr/share/pve-manager/ext4/pvemanagerlib.js.original    2013-08-20 08:07:54.000000000 +0100
+++ /usr/share/pve-manager/ext4/pvemanagerlib.js    2013-08-21 18:16:22.417007719 +0100
@@ -447,22 +447,7 @@
         success: function(response, opts) {
         var data = response.result.data;

-        if (data.status !== 'Active') {
-            Ext.Msg.show({
-            title: 'No valid subscription',
-            icon: Ext.Msg.WARNING,
-            msg: PVE.Utils.noSubKeyHtml,
-            buttons: Ext.Msg.OK,
-            callback: function(btn) {
-                if (btn !== 'ok') {
-                return;
-                }
-                orig_cmd();
-            }
-            });
-        } else {
-            orig_cmd();
-        }
+                orig_cmd();
         }
     });
     },