meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
vm:proxmox:vm [2020/05/11 14:43] niziakvm:proxmox:kvm [2020/05/12 11:02] niziak
Line 1: Line 1:
-====== Proxmox VM ======+====== KVM ======
  
-===== Migrate Windows 7 Virtual Box =====+===== Migrate Windows 7/10 Virtual Box =====
  
 +==== (Optional) Preparation ====
 +Cleanup disc space and remove all unnecessary drivers:
   * uninstall Virtual Box Guest Additions   * uninstall Virtual Box Guest Additions
   * Download and run registry file: [[https://pve.proxmox.com/wiki/File:Mergeide.zip|Mergeide.zip]]   * Download and run registry file: [[https://pve.proxmox.com/wiki/File:Mergeide.zip|Mergeide.zip]]
   * Restart VM   * Restart VM
-  * `sdelete -z c: d: e:` +  * ''sdelete -z c: d: e:'' 
-  * `Enable ClearPageFileAtShutdown.reg`+  * Enable ''ClearPageFileAtShutdown.reg''
   * Shutdown VM   * Shutdown VM
  
 Now two methods are possible: Now two methods are possible:
 +==== DRAFT ====
 +Fastest method: create Proxmox machine and import vbox hard discs to newly created Proxmox VM.
 +
 +No VirtualBox preparation, no IDE drivers. Just import discs to new machine.
 +  * Create new Proxmox machine with similar parameters to old one
 +    * [[https://pve.proxmox.com/wiki/Windows_10_guest_best_practices|Windows 10 guest best practices]]
 +    * Do not remove created Hard Disc (scsi0) - it will be used to trigger Windows to install SCSI drivers.
 +  * Import disc images (repeat for all VDI discs)
 +    * As RAW images with all benefits (compression, thin provisioning, snapshots) of ''local-zfs'' storage: <code bash>qm importdisk 701 WIN7_C.vdi local-zfs</code>
 +      * 21743 MB VDI compacted file occupied 15,2G on ZFS with compression ratio 1.24x
 +    * As QCOW2 files on every file storage: <code bash>qm importdisk 701 WIN7_C.vdi local -format qcow2</code>
 +  * Connect new discs into machine:
 +    * <code bash>qm set 701 --scsi<N> local-zfs:vm-701-disk-<N>,discard=on,size=64G</code>
 +    * NOTE: ''discard=on'' should be enabled for thin provisioned storage to reclaim unused space
 +  * Edit config file to change just connected discs from SCSI to IDE. Remember to update CDROM IDE number to do not be in conflict with new discs.
 +    * <code bash>sed -i 's/scsi/ide/g' /etc/pve/qemu-server/702.conf</code>
 +    * <file | /etc/pve/qemu-server/702.conf>
 +ide0: local-zfs:vm-702-disk-1,discard=on,size=64G
 +ide1: local-zfs:vm-702-disk-2,discard=on,size=64g
 +ide2: local-zfs:vm-702-disk-3,discard=on,size=8G
 +ide3: nas326-ISOs:iso/virtio-win-0.1.173.iso,media=cdrom,size=384670K
 +scsi0: local-zfs:vm-702-disk-0,discard=on,size=32G
 +scsihw: virtio-scsi-pci
 +</file>
 +  * Setup correct boot order
 +  * Start Windows 10
 +    * Windows should load correctly
 +    * Go to ''Device Manager'' and install missing drivers. See [[vm:proxmox:kvm:virtio_drivers|Virtio drivers]]
 +    * Shutdown system
 +  * Edit config file to change IDE discs to SCSI
 +  * Setup correct boot order
 +  * Start Windows 10
 +  * ERROR: Windows stuck during booting when VirtIO SCSI driver.
 +    * It is known KVM issue with VirtIO SCSI driver when more than 1 CPU core is used! 
 +       * [[https://bugzilla.redhat.com/show_bug.cgi?id=1670673]]
 +       * Driver version 61.77.104.17200 2019-06-07 from virtio iso v 1.1.172       
 +       * Update to latest 61.80.104.17300 2019-08-12 (not stable) virtio iso v1.1.173 doesn't help
 +    * Changing CPU to 1 core solves problem.
 +    * It works with odd number of cores (1,3,5)
 +
 +
 +
 +    * Windows will crash (becasue storage driver is not supported). Windows will reboot into repair mode.
 +    * Provide virtio drivers in virtual cd-rom (latest 1.1.173 was used)
 +    * Select ''Start-up Repair''
 +
 +
 +
 +  * Switch SCSI to IDE: <code bash>sed -i 's/scsi/ide/g' /etc/pve/qemu-server/701.conf</code>
 +    * Manually correct numbering conflict with CD-ROM ide drive
 +    * Setup correct boot order
 +  * Add one dummy (small size) hard disc to SCSI controller
 +  * Enable QEMU Guest Agent
 +  * Boot Windows, go to ''Device Manager'' and install missing drivers:
 +...
 +  * Shutdown machine
 +  * Switch disc controller from IDE to SCSI. Edit ''/etc/pve/qemu-server/701.conf''
 +    * Setup correct boot order
 +
 +sed -i 's/ide/scsi/g' /etc/pve/qemu-server/701.conf
 +
 +
 ==== Importing only disc ==== ==== Importing only disc ====
 Fastest method: create Proxmox machine and import vbox hard disc to newly created Proxmox VM. Fastest method: create Proxmox machine and import vbox hard disc to newly created Proxmox VM.
Line 21: Line 85:
     * As QCOW2 files on every file storage: <code bash>qm importdisk 701 WIN7_C.vdi local -format qcow2</code>     * As QCOW2 files on every file storage: <code bash>qm importdisk 701 WIN7_C.vdi local -format qcow2</code>
   * Connect new discs into machine:   * Connect new discs into machine:
-    * <code bash>qm set 701 --scsi<N> local-zfs:vm-701-disk-<N>,cache=writeback,discard=on,size=64G</code> +    * <code bash>qm set 701 --scsi<N> local-zfs:vm-701-disk-<N>,discard=on,size=64G</code> 
-    * NOTE: ''discard=on'' should be enabled for thin provisioned to reclaim unused space+    * NOTE: ''discard=on'' should be enabled for thin provisioned storage to reclaim unused space
   * Switch SCSI to IDE: <code bash>sed -i 's/scsi/ide/g' /etc/pve/qemu-server/701.conf</code>   * Switch SCSI to IDE: <code bash>sed -i 's/scsi/ide/g' /etc/pve/qemu-server/701.conf</code>
 +    * Manually correct numbering conflict with CD-ROM ide drive
 +    * Setup correct boot order
   * Add one dummy (small size) hard disc to SCSI controller   * Add one dummy (small size) hard disc to SCSI controller
   * Enable QEMU Guest Agent   * Enable QEMU Guest Agent
   * Boot Windows, go to ''Device Manager'' and install missing drivers:   * Boot Windows, go to ''Device Manager'' and install missing drivers:
 +    * PCI Simple Communication Controller ''PCI\VEN1AF4&DEV_1003'' --> Virtio console ''vioserial''
     * Red Hat VirtIO SCSI pass-through controller ''vioscsi\w7\amd64''     * Red Hat VirtIO SCSI pass-through controller ''vioscsi\w7\amd64''
     * ''NetKVM\w7\amd64''     * ''NetKVM\w7\amd64''
-    * VirtIO Balloon Driver (''PCI\VEN_1AF4&DEV_1002'') ''Balloon\w7\amd64'' +    * (''PCI\VEN_1AF4&DEV_1002''--> VirtIO Balloon Driver ''Balloon\w7\amd64'' 
-    * QEMU Guest Agent (''ACPI/QEMUVGID'') '''' +    * vm generation id (''ACPI/QEMUVGID'') '''' 
-      +  * Shutdown machine 
 +  * Switch disc controller from IDE to SCSI. Edit ''/etc/pve/qemu-server/701.conf'' 
 +    Setup correct boot order
  
 sed -i 's/ide/scsi/g' /etc/pve/qemu-server/701.conf sed -i 's/ide/scsi/g' /etc/pve/qemu-server/701.conf