Dünü araştırmalarla geçirdim ve sonunda Windows XP önyükleme yapabildim. Diğer işletim sistemleri için de biraz benzer olmalıdır. Ancak operasyon her şeydir, ancak önemsiz değildir.
Bu tehlikeli bir işlem olduğundan, değerli verilerinizi yedeklemenizi öneririm.
İşte adımlar:
Hazırlık
Windows XP durumunda, geçerli disk harfini ve bölüm ayarlarını unutturmanız gerekir, bu nedenle geçişten önce sanal makinedeki HKEY_LOCAL_MACHINE / MountedDevices anahtarındaki tüm değerleri silmeniz gerekir. Çekirdek bir sonraki yeniden yüklemede yeniden oluşturacaktır. Linux sanal makinelerinde bu, geçişten sonra fstab'ın düzeltilmesi anlamına gelir.
VDI görüntüsünün montajı
Bir MBR de içerdiğinden, VDI'nin tamamını bir bölüme kopyalayamazsınız. Sadece sanal bölümü kopyalamanız gerekir, bu yüzden önce VDI'yı monte etmek için bir yol bulmanız gerekir.
nbd
Sürücüye ve qemu-nbd
komuta ihtiyacınız var . Ubuntu'da qemu-kvm
paketin içinde.
Önce nbd sürücüsünü yükleyin:
# modprobe nbd
Bu, bazı nbd
cihazları içeri almalıdır /dev
.
Ardından VDI'yi takın:
# qemu-nbd -c /dev/nbd0 path_to.vdi
Bu yapmalıdır /dev/nbd0p1
, /dev/nbd0p2
, /dev/nbd0p3
bütün sanal bölümleri için vb. Bunlar sıradan cihazlar gibi monte edilebilir.
Bölümü taşıma
Bunun için kullanın dd
, işlemden önce her iki bölümü de çıkarın:
# dd -if=<nbd_device> -of=<real_partition>
Örneğin.:
# dd -if=/dev/nbd0p3 -of=/dev/sda4
İşletimi dd
bu birkaç dakika, hatta yarım saat sürebilir, sessizdir. Operasyon sırasında bir terminal açabilir ve fdisk -l
her şeyin yolunda gittiğini görmek için kullanabilirsiniz .
GÜNCELLEME:
Görünüşe göre nbd kusursuz bir çözüm değildir. G / Ç hatasına neden olabilir ve dd'nin başarısız olmasına neden olabilir. Üstelik sonraki deneme hemen başarısız olur. Bu komutla (linux altında) ham disk VMDK oluşturmayı da deneyebilirsiniz:
$ VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sda
disk
Çalışması için grupta olmanız gerekir . Sonra bu vmdk'yi sanal makineye ikincil sabit sürücü olarak ekleyin, sonra dd
bölüme bir Canlı Linux ISO kullanın .
NTFS bölümünün önyükleme kesimini düzeltme
Bu hackish kısmı.
Neredeyse hazırız, ancak Windows XP önyükleme yapmıyor, çünkü dosya sisteminin gizli sektörlerinin sayısını ofset olarak ayarlamamız gerekiyor 0x1C
. Bu temelde NTFS bölümünden önce bir dizi sektör. Bu numarayı fdisk -ul
komuttan alabiliriz. start
Temelde bölme önce sektörlerin sayısıdır verilen bölüm başlar sektör çıkış durumlarının bir alan. O zaman sayıyı oradan alın, örneğin gcalctool kullanarak onaltılık biçime dönüştürün.
Bölümü şu şekilde açın hexedit
:
# hexedit /dev/sda4
Ardından, gizli sektörlerin sayısını 1C
ofsette küçük endian düzeninde yazın . Küçük endiean demek: 0xABCDEFGH
olacak GH EF CD AB
. Hexa numarası 8 basamaktan kısaysa, önüne sıfır gelir.
İşiniz bittiğinde kaydedin ve çıkın (Ctrl + X).
GRUB'u ayarlama
GRUB'a bu bölümü doğrudan önyüklemesini söylemelisiniz, GRUB için aşağıdaki menü girişini ekleyin:
title Microsoft Windows XP Professional
root (hd0,3)
savedefault
makeactive
chainloader +1
Nerede (hdX, Y)
bölümü tanımlar. X varsayılan sabit disk için 0, 1 için /dev/sda
, 2 /dev/sdb
vb. İçin . Y, bölüm numarasıdır. İçin 0 /dev/sda1
, 1 için /dev/sda2
vs.
Bu GRUB2 için de benzer olmalıdır, ancak menü girişleri için biraz farklı bir sözdizimi kullanır.
Son dokunuşlar
Yeni NTFS bölümü önyüklemeye hazırdır. Ancak yine de Windows XP masaüstüne erişmek için bazı saldırılara ihtiyacınız var. Diğer sistemlerin farklı saldırılara ihtiyacı olabilir. Öncelikle boot.ini dosyasının düzeltilmesi gerekir.
[boot loader]
timeout=1
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
Sipariş numarasını buna göre ayarlayın. / Dev / sda4 üzerine yükledim. Bu yüzden bölüm numarası 3 olmalıdır.
Windows oturum açma ekranından hemen önce donarsa, MountedDevices girdisini kayıt defterinde düzeltmeniz gerekebilir.
Kayıt defteri <path to windows>/system32/config/system
size göre görüntüleyebilirsiniz chntpw
. Sistem sürücü chntpw
harfiniz C değilse bu bir sorun olabilir. 'S kayıt defteri yazma yetenekleri oldukça sınırlı olduğundan, geri dönmek ve ghex2 gibi bir hexeditor kullanmanız gerekir. Benim durumumda \DosDevices\C:
, C'yi bulup farklı bir sürücü harfiyle değiştirmeniz gerekiyor F
.
Bundan sonra, masaüstüne erişebilmelisiniz, şimdi tüm sürücüler için avlanmanız gerekiyor, ancak bu bu öğreticinin kapsamı dışında.
Kaynaklar
Windows XP'yi farklı bir bölüme taşıma
Linux altında bir VDI monte edin