Burada çılgınca şeyler deniyorum. İlk önce .vdi formatını kullanarak Windows XP yüklü bir VirtualBox makinem vardı. Sonra görüntüyü bir OVA'ya aktardım, .vmdk dosyasını çıkarttım ve onu ham .img dosyasına dönüştürdüm. Daha sonra virt-manager ile KVM'ye yeni bir VM oluşturdum, bu görüntüyü sabit disk olarak yükledim ve çalıştırdım.
Şimdi, bu görüntünün tamamını bir disk bölümüne kopyalayıp, dd
bu görüntünün içindeki ilk NTFS bölümünü önyüklemesinde, üzerinden başlatmaya çalışıyorum grub
. Şimdiye kadar, görüntünün içindeki ilk bölümü zaten belirledim (asıl NTFS bölümü) ve hem gParted tarafından NTFS olarak tanındı hem de Windows kurulumu olarak gruba girdim, ancak önyükleyemiyorum. Bu yüzden, bölüm tablosu, önyükleme kesimi ve benzeri dahil tüm resmi bu /dev/sda4
fiziksel bölüme kopyalamaya çalıştım . Şimdi görüntü KVM üzerinden önyükleniyor, ancak Grub'a eklemenin bir yolunu bulamıyorum. Döngü montajı yoluyla bunu yapmanın bir yolunu bulmaya çalışıyorum, sadece bu görüntüyü nasıl monte edeceğini / haritalandıracağını / çizeceğini ve içerisindeki ilk (NTFS) bölümüne erişeceğimi bilmiyorum.
Yapmak istediğim şey:
- Turn my XP image into a valid physical installation to dual boot
- Keep the VM running from this disk partition
Bu şekilde, mümkünse VM'yi Ubuntu'da kullanacağım veya gruba yükleyeceğim.
Netleştirmek için, kullandığım komutlar:
$ sudo su
# mounts the entire image
$ losetup /dev/loop0 /path/to/WindowsXP.img
$ fdisk -l /dev/loop0
> Device Boot Start End Blocks Id System
> /dev/loop0p1 * 63 31439204 15719571 7 HPFS/NTFS/exFAT
# mounts the first NTFS partition inside image (offset 63*512)
$ losetup /dev/loop1 -o 32256 /dev/loop0
Bu noktada, hem NTFS bölümü hem /dev/loop1
de tam disk (MBR ile) açık /dev/loop0
. Sonra:
# copied the entire image to /dev/sda4. This is not recognized by GRUB,
# therefore it must be loopmounted before booted via grub config somehow
$ dd if=/dev/loop0 of=/dev/sda4 bs=10m
# copied the NTFS virtual partition to physical one
# GRUB should recognize and boot it, since is a valid XP install, however it misses the partition table,
# so the virtual machine won't be able to boot it.
$ dd if /dev/loop1 of=/dev/sda4 bs=10m
Alternatif olarak, VM'ye ekli ikinci bir disk görüntüsü düşündüm, sadece GRUB ve bu bölümü başlatmak için minimum bilgi. Bu yolla, NTFS bölümünü /dev/sda4
çift önyükleme yapmak üzere toplamaya ve KVM'deki ikinci küçük bir görüntüden önyüklemeye devam edebilirim.
Fikirler?
/dev/sda
Doğrudan önyükleme yapabileceğimi bilmiyordumqemu /dev/sda
. Bu benim testleri çok daha kolay hale getirecek. Bir VM'de çalıştırma özelliğini kaybetmeden donanıma doğrudan erişimi sağlamak ve bazı oyunları oynamak için XP'yi bir çift açılış olarak başlatmak istedim. En iyi çözüm,/dev/sda4
çift önyükleme seçeneğini etkinleştirmek için yeni bir XP kurulumu ve grubun yeniden kurulması olduğunu düşünüyorum . Deneyeceğim.