Bagaimana cara menyalin konten VirtualBox VDI ke partisi dan dual boot OS dari itu?

12

Saya adalah pengguna Linux tetapi saya tetap menggunakan Windows XP ISO terkompresi dengan saya pada pen drive untuk kasus saya benar-benar membutuhkan Windows untuk melakukan sesuatu. Ini berfungsi di VirtualBox sebagian besar waktu.

Tapi sekarang saya ingin memainkan beberapa game, jadi saya ingin menjalankan gambar Windows secara asli. Komputer saya tidak memiliki drive CD sehingga tidak bisa hanya membakar ISO dan melakukan instalasi secara normal.

Apa yang saya coba lakukan adalah memindahkan gambar Windows yang terinstal ke partisi fisik NTFS pada HDD saya dan mengatur GRUB untuk membiarkan saya melakukan boot ganda.

Saya menemukan banyak tutorial yang berhubungan dengan membuat VDI ke drive fisik. Tetapi mereka menganggap saya ingin menimpa seluruh drive saya. Memindahkan gambar disk mentah dengan ddke partisi menghasilkan partisi yang rusak.

Saya juga mencoba trik VMDK untuk menggunakan partisi kosong itu dan menginstal Windows di atasnya. Meskipun fase mode teks instalasi selesai tanpa masalah, VM tidak akan berfungsi, crash dan terus reboot atau langsung macet (tergantung pada bagaimana saya membuat VMDK, dengan -rawdisk /dev/sda3atau -rawdisk /dev/sda -partition 3).

Calmarius
sumber

Jawaban:

4

Saya menghabiskan semua kemarin dengan penelitian, dan akhirnya bisa membuat boot Windows XP. Seharusnya agak mirip untuk OS lain juga. Tapi operasinya adalah segalanya tetapi tidak sepele.

Karena ini operasi yang berbahaya, saya sarankan mencadangkan data berharga Anda.

Inilah langkah-langkahnya:

Persiapan

Dalam hal Windows XP Anda harus membuatnya melupakan pengaturan disk dan partisi disk saat ini, jadi Anda harus menghapus semua nilai dari kunci HKEY_LOCAL_MACHINE / MountedDevices pada mesin virtual sebelum migrasi. Kernel akan membangunnya kembali pada reboot berikutnya. Pada mesin virtual Linux, ini berarti memperbaiki fstab setelah migrasi.

Memasang gambar VDI

Anda tidak bisa hanya menyalin seluruh VDI ke partisi, karena mengandung MBR juga. Anda hanya perlu menyalin partisi virtual, jadi pertama-tama Anda harus menemukan cara untuk memasang VDI.

Anda membutuhkan nbddriver dan qemu-nbdperintah. Di Ubuntu ada dalam qemu-kvmpaket.

Pertama memuat driver nbd:

# modprobe nbd

Ini seharusnya membuat beberapa nbdperangkat masuk /dev.

Kemudian pasang VDI:

# qemu-nbd -c /dev/nbd0 path_to.vdi

Ini harus membuat /dev/nbd0p1, /dev/nbd0p2, /dev/nbd0p3dll untuk semua partisi virtual. Ini dapat dipasang seperti perangkat biasa.

Memigrasi partisi

Gunakan dduntuk itu, unmount kedua partisi sebelum operasi:

# dd -if=<nbd_device> -of=<real_partition>

misalnya.:

# dd -if=/dev/nbd0p3 -of=/dev/sda4

Operasi dddiam, ini mungkin memakan waktu beberapa menit, bahkan setengah jam. Selama operasi Anda dapat membuka terminal dan gunakan fdisk -luntuk melihat semua berjalan dengan baik.

MEMPERBARUI:

Rupanya nbd bukanlah solusi yang sangat mudah. Ini dapat menyebabkan I / O error dan membuat dd gagal. Apalagi usaha selanjutnya gagal dengan segera. Anda juga dapat mencoba membuat VMDK disk mentah dengan perintah ini (di bawah linux):

$ VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sda

Anda harus berada dalam diskgrup untuk membuatnya berfungsi. Kemudian tambahkan vmdk ini ke mesin virtual sebagai hard drive sekunder, kemudian gunakan Live Linux ISO ke ddpartisi.

Memperbaiki sektor boot partisi NTFS

Ini adalah bagian peretasan.

Kami hampir siap, tetapi Windows XP tidak bisa boot, karena kami perlu mengatur jumlah sektor tersembunyi dari sistem file pada offset 0x1C. Ini pada dasarnya sejumlah sektor sebelum partisi NTFS. Kita bisa mendapatkan nomor ini dari fdisk -ulperintah. The startbidang negara keluaran yang sektor partisi diberikan dimulai pada, yang pada dasarnya adalah jumlah sektor sebelum partisi. Jadi dapatkan nomor dari sana, konversikan ke heksadesimal menggunakan gcalctool misalnya.

Buka partisi dengan hexedit, seperti ini:

# hexedit /dev/sda4

Kemudian tulis jumlah sektor tersembunyi dalam urutan endian kecil di 1Coffset. Endiean kecil berarti: 0xABCDEFGHakan GH EF CD AB. Jika nomor hexa lebih pendek dari 8 digit, awali dengan nol.

Setelah selesai, simpan dan keluar (Ctrl + X).

Menyiapkan GRUB

Anda harus memberi tahu GRUB untuk mem-boot langsung partisi itu, untuk GRUB tambahkan entri menu berikut:

title       Microsoft Windows XP Professional
root        (hd0,3)
savedefault
makeactive
chainloader +1

Di mana (hdX, Y)mengidentifikasi partisi. X adalah 0 untuk harddisk default, 1 untuk /dev/sda, 2 untuk /dev/sdbdll. Y adalah nomor partisi. 0 untuk /dev/sda1, 1 untuk /dev/sda2, dll.

Ini juga harus mirip untuk GRUB2, tetapi menggunakan sintaks yang sedikit berbeda untuk entri menu.

Sentuhan terakhir

Partisi NTFS baru siap untuk boot. Tetapi Anda masih membutuhkan beberapa peretasan untuk mencapai desktop Windows XP. Sistem lain mungkin memerlukan peretasan yang berbeda. Pertama, boot.ini perlu diperbaiki.

[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

Setel nomor parisi yang sesuai. Saya menginstalnya di / dev / sda4. Jadi nomor partisi harus 3.

Anda mungkin perlu memperbaiki entri MountedDevices di registri jika Windows macet tepat sebelum layar masuk.

Registri <path to windows>/system32/config/systemdapat Anda lihat dengan chntpw. Ini bisa menjadi masalah jika huruf drive sistem Anda tidak C. Karena chntpwkemampuan menulis registri sangat terbatas, Anda harus mundur dan menggunakan hexeditor, seperti ghex2 untuk memperbaikinya. Anda perlu menemukan \DosDevices\C:dan mengganti C dengan huruf drive yang berbeda, Fdalam kasus saya.

Setelah ini, Anda harus dapat mencapai desktop, sekarang Anda perlu mencari semua driver, tetapi ini di luar cakupan tutorial ini.

Sumber

Memindahkan Windows XP ke partisi yang berbeda

Pasang VDI di linux

Calmarius
sumber
0

Anda dapat mencoba menggunakan partimage dan gdisk untuk melakukannya. Ambil gdisk atau program partisi lain dan ubah ukuran disk Anda saat ini / siapkan partisi pada disk di suatu tempat. ideal itu akan menjadi partisi primer. Saya biasanya menyimpan partisi 1 untuk windows dan 2+ untuk data linux.

setelah partisi diatur, Anda dapat menggunakan gdisk atau klon hantu lain untuk membuat file cadangan atau gambar langsung ke drive lain. adalah mungkin untuk mengatur koneksi jaringan ke host jika Anda perlu drop file seperti itu atau Anda dapat membuat file img kemudian salin kemudian dari file vmdk ke sistem host Anda ... kemudian gunakan perangkat lunak gambar untuk memulihkan partisi ke lokasi yang Anda buat pada sistem host

konfigurasikan grub sesuai kebutuhan untuk menambahkan boot ke partisi ntfs itu.

Kendrick
sumber
Anda mungkin dapat juga memetakan vmdk dalam sebuah mannter yang akan memungkinkan perangkat lunak gambar untuk langsung membacanya dari tuan rumah hanya tergantung pada bagaimana perangkat lunak gambar tersebut.
Kendrick
Saya menghabiskan semua kemarin dengan penelitian, dan akhirnya dapat membuat boot Windows XP. Saya akan menuliskannya secara rinci. Itu tidak sepele.
Calmarius
ini cukup ironis tapi saya harus segera melakukan proses ini. Saya punya pc yang tidak suka menginstal solaris karena alasan tertentu, jadi saya harus menarik data dari vm saya ke mesin baru.
Kendrick