Bagaimana cara menggunakan partisi nyata dengan Windows 7 diinstal, di virtualbox vm?

37

Ubuntu 12,04 saya diinstal pada /dev/sda5 dan Windows 7 pada /dev/sda1. Ketika saya menjalankan Ubuntu, saya ingin menggunakan Virtualbox untuk menjalankan Windows 7 di VM. Partisi Windows 7 adalah 1 TB dan setengah penuh, yaitu besar, jadi saya tidak ingin menyalinnya ke hard disk virtual.

Saya telah membaca bahwa adalah mungkin untuk menggunakan hard disk nyata untuk VM Virtualbox, tetapi berbagai instruksi yang saya temukan berbeda satu sama lain, dan sepertinya saya tidak dapat membuatnya bekerja. Adakah yang tahu cara untuk membuatnya bekerja di Ubuntu 12.04 dan Virtualbox 2.1.12_Ubuntu r77245 (Ubuntu terbaru menginstal repo)?

Silakan kirim cara kerjanya untuk Anda karena saya ingin mencoba kembali metode apa pun yang mungkin berhasil.

Jazz
sumber
Mengapa partisi MSWIN Anda 1TiB? Meskipun, bukan solusi lengkap: Jika mungkin, pindahkan semua yang tidak perlu ada di sana (data ... file media?) Dan kemudian ukuran ulang partisi yang akan membuat pendekatan apa pun lebih mudah. Jika Anda ingin memilih rute gambar, menghapus lalu menyusutkan partisi itu akan memberi Anda ruang yang cukup untuk membuat gambar penuh dari partisi baru yang lebih kecil. :-)
Alastair

Jawaban:

27

Perintah yang Anda inginkan adalah

VBoxManage internalcommands createrawvmdk -filename Win7.vmdk -rawdisk /dev/sda -partitions 1

Ini akan membuat file disk virtual VMDK khusus (Win7.vmdk) yang sebenarnya adalah pointer ke partisi disk host /dev/sda1.

Secara teori, Anda dapat menggunakan ini sebagai file disk untuk menjalankan VM langsung dari partisi disk sebenarnya, tetapi ...

  • (a) Saya belum pernah mencobanya, jadi tidak tahu seberapa andal itu
  • (B) Anda mungkin mendapatkan masalah dengan Aktivasi Windows tergantung pada kunci lisensi Anda dan apakah Windows memutuskan bahwa 'perangkat keras' yang terdeteksi telah berubah secara signifikan.
StarNamer
sumber
Terima kasih. Saya bahkan tidak memikirkan masalah aktivasi. Itu pasti akan menghentikan rencanaku.
Jazz
1
Selain itu, bahkan jika itu berhasil (yang saya ragu) Anda dapat merusak Windows Anda ketika menjalankan dari kedua boot, dan VM.
Takkat
@ ubnewbie2: Saya mungkin hanya akan mencoba ini sebagai percobaan dan / atau ketika menggunakan semacam kunci Volume Licensing dan saya mungkin akan melihatnya sebagai operasi satu arah; yaitu Anda akan mengalami lebih banyak kesulitan untuk membalikkannya. Saya sebenarnya menjalankan Windows 7 dan menggunakan VM VirtualBox dengan Ubuntu, sering dalam mode layar penuh sehingga PC tampaknya hanya menjalankan Linux, dan akan lebih percaya diri menjalankan Ubuntu dari partisi disk mentah.
StarNamer
FYI, saya sekarang sudah mencoba ini, secara terbalik. Saya perlu mengubah mesin yang menjalankan Ubuntu ke Win 7, jadi saya membebaskan beberapa ruang dengan mengubah ukuran partisi dan membuat yang baru dan menginstal Win 7. Ini menggantikan grub2 dengan he windows bootloader jadi saya kemudian menginstal VirtualBox dan membuat VM baru, dengan disk virtual minimal untuk dipesan, yang kemudian menggunakan partisi 'mentah' yang ada untuk dijalankan. Ini berfungsi dengan baik, meskipun agak lamban karena memori berkurang dan hanya melihat 1 inti CPU (bukan 4).
StarNamer
-partisi di akhir daftar partisi yang Anda inginkan kotak virtual untuk "melihat" (bukan partisi # yang ingin Anda gunakan) VBoxManage internalcommands --helpakan menunjukkan kepada Anda hal-hal lain yang dapat Anda lakukan dengan perintah internal, serta apa artinya opsi.
boatcoder
16

Ya, Anda bisa melakukannya dengan createrawvmdkperintah internal , yang tidak akan membuat seluruh gambar disk, tetapi sebuah penunjuk ke perangkat keras yang sebenarnya.

Ada dua cara untuk melakukannya

  • A. Gambar disk penuh (dari / dev / sdb)

    sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb
    
  • B. Gambar partisi

    Seperti yang ditunjukkan oleh @StarNamer, Anda hanya dapat menggunakan satu atau beberapa partisi.

    Untuk membuat gambar hanya satu (/ dev / sda1) partisi:

    sudo VBoxManage internalcommands createrawvmdk -filename sda1.vmdk -rawdisk /dev/sda -partitions 1
    

    Untuk membuat tabel partisi khusus yang akan memetakan / dev / sda2 dan / dev / sda1 dalam urutan itu:

    sudo VBoxManage internalcommands createrawvmdk -filename sda2_1.vmdk -rawdisk /dev/sda -partitions 2,1
    

Perbedaan yang paling mencolok adalah bahwa gambar disk penuh akan menggunakan bootloader dan tabel partisi persis seperti yang ada di disk Anda, jadi secara teori (saya melakukan itu sebelumnya hanya di qemu) Anda akan dapat mengatur OS dari mesin virtual Anda. Dan dari pengalaman saya yang terbatas, saya dapat mengatakan bahwa gambar disk penuh akan berfungsi sama persis qemu -hda /dev/sdb.

Catatan: Jika Anda menggunakan pengguna untuk mengakses disk, Anda harus menambahkannya ke diskdan vboxusersgrup, misalnya

sudo usermod -aG disk,vboxusers ubuntu

lalu pastikan Anda masuk kembali atau memulai ulang komputer Anda.

Bacaan lebih lanjut:

JLarky
sumber
"gambar disk penuh akan menggunakan bootloader dan tabel partisi persis seperti yang ada di disk Anda" - di bawah skenario mana, yang pertama (/ dev / sdb) atau yang kedua (dengan partisi yang ditentukan)?
naught101
1
Juga, virtualbox perlu dijalankan sebagai root, jika tidak Anda akan mendapatkan Permission problem accessing the file for the medium '/home/naught101/sda2_windows.vmdk'
naught101
3
"Juga, kotak virtual perlu dijalankan sebagai root". Sebenarnya tidak, Anda harus menjadi anggota disk grup. Jauh lebih aman daripada menjalankan kotak virtual sebagai root.
2
Inilah yang bekerja untuk saya dengan Ubuntu 16.04 sebagai sistem host dan Windows 10 sebagai tamu: Saya membuat file .vmdk menggunakan sudo VBoxManage internalcommands createrawvmdk -filename sda1_2_3.vmdk -rawdisk /dev/sda -partitions 1, 2, 3. Dengan begitu saya memasukkan partisi windows dan juga partisi boot loader EFI. Saya kemudian mengikuti instruksi shilka di virtualbox.org/ticket/7702 dan menambahkan cloverefiboot. Bekerja seperti pesona!
dzmanto
Anda juga dapat awalan perintah VirutalBox (dan VBoxManage) dengan sudo -g diskhanya memberikan akses ke virtualbox, tetapi tidak semua proses Anda yang lain.
Jan Hudec
0

Ada opsi Disk yang disebut "Immutable", jadi secara teori jika Anda memilih opsi ini untuk vmdk yang menghubungkan ke disk mentah Anda, itu tidak boleh mengubah partisi asli.

Untuk melakukannya, buka "Virtual Media Manager" yang ditemukan di bawah "File", pilih gambar Anda dan klik "Ubah" (Anda harus memastikan gambar ini tidak terpasang ke mesin apa pun, jika tidak Anda mendapatkan kesalahan). Sekarang Anda dapat mengatur jenis media ke "Immutable".

Saya belum menguji ini. Jika ada yang melakukannya (tentu saja dengan pengaturan tes) akan lebih baik untuk melaporkan kembali ke sini.

Adakah yang punya pertimbangan yang menentang ide ini?

Esokrates
sumber
0

Selama beberapa tahun sekarang, saya telah menjalankan Windows dual-boot dan Ubuntu dengan Partition Ubuntu juga boot ke Windows VirtualBox untuk mengambil keuntungan dari kemampuan layar sentuh yang belum dikuasai Linux.

Saya mengaturnya dengan instruksi yang mirip dengan di bawah ini;

Mesin-mesin baru secara bersamaan dapat menangani kedua OS lebih baik daripada sistem tunggal pada mesin lama.

Kelemahan: Anda harus menyimpan instruksi yang Anda gunakan untuk pengaturan jika pembaruan menonaktifkan koneksi VirtualBox (masalah saya saat ini).

Desprit
sumber
0

Setelah mencoba berkali-kali saya berakhir dengan solusi yang rapi dan bersih:

  1. Boot partisi windows yang ingin Anda virtualisasi
  2. Unduh utilitas Disk2VHD dari Sysinternals
  3. Jika Anda memiliki partisi UEFI , ikuti instruksi ini
  4. Buat gambar VHD (bukan VHD X ) dari C Anda: partisi, pemulihan, UEFI (jika ada) dan apa pun yang Anda inginkan
  5. Kembali ke Linux, buka VirtualBox dan buat VM sesuai dengan spesifikasi sistem operasi windows Anda
  6. Lampirkan ke VM disk VHD yang dibuat pada titik 4
  7. Itu dia
  8. Keuntungan

Pemecahan masalah jika UEFI:

  1. Di pengaturan VM, di VirtualBox, centang opsi "Enable EFI" di bawah System tab
  2. Jika Anda terjebak di EFI Shell, jalankan perintah berikut:

    fs0:\EFI\Boot\bkpbootx64.efi
    
garlix
sumber
Beberapa komentar tentang downvote?
garlix
Saya melihat ini terjadi beberapa hari yang lalu, tapi saya tidak ingat memberi Anda downvotes, setidaknya tidak sengaja. saya dengan senang hati akan membatalkannya, maaf.
userfuser
0

VirtualBox memiliki banyak kelemahan. Saya meninggalkannya beberapa tahun yang lalu. Sekarang saya menggunakan qemu-kvm dan di samping fitur bagus lainnya dapat dikonfigurasi untuk menggunakan perangkat disk dengan cara yang sama seperti gambar disk. Caranya adalah mengkonfigurasi virtual "-drive if = sd, id = sda, format = raw, file = / dev / sda".

Tapi! Anda harus terlebih dahulu membuat beberapa perubahan saat menjalankan MSW pada bare metal, sebelum Anda mencoba untuk virtualisasi: lihat folder "Drivers" untuk driver yang tepat untuk hadir dan pohon "Registry" untuk menjadi driver yang diaktifkan dan ditetapkan untuk menjadi Jalankan sebelum sistem mulai seperti:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\msahci] "Start"=dword:00000000

Anda harus mencari driver apropriet sehubungan dengan mesin virtual jika Anda tidak ingin melihat BSOD.

Sulit untuk mengatakan driver mana yang harus diaktifkan. Cara terbaik adalah menginstal sistem pengujian terlebih dahulu, kemudian cari register di dalamnya untuk kunci register dengan "Start" = dword: 00000000 dan kemudian setel kunci ini pada mesin bare metal. Juga disarankan untuk memeriksa alamat MAC pada bare metal untuk memasukkannya ke dalam konfigurasi qemu. Anda dapat mencegah sistem untuk meminta aktivasi baru.

schweik
sumber