วิธีการใช้พาร์ติชันจริงที่ติดตั้ง Windows 7 ใน virtualbox vm


37

ฉัน Ubuntu 12.04 ติดตั้งบน/dev/sda5 และ Windows 7 /dev/sda1บน เมื่อฉันใช้งาน Ubuntu ฉันต้องการใช้ Virtualbox เพื่อเรียกใช้ Windows 7 ใน VM พาร์ติชัน Windows 7 คือ 1 TB และเต็มแล้วครึ่งหนึ่งนั่นคือใหญ่ดังนั้นฉันไม่ต้องการคัดลอกลงในฮาร์ดดิสก์เสมือน

ฉันได้อ่านแล้วว่าเป็นไปได้ที่จะใช้ฮาร์ดดิสก์จริงสำหรับ Virtualbox VM แต่คำแนะนำต่าง ๆ ที่ฉันพบแตกต่างกันและฉันไม่สามารถใช้งานได้ ไม่มีใครรู้วิธีที่จะทำให้มันทำงานใน Ubuntu 12.04 และ Virtualbox 2.1.12_Ubuntu r77245 (Ubuntu ล่าสุดติดตั้ง repos) หรือไม่

โปรดโพสต์วิธีการทำงานสำหรับคุณเนื่องจากฉันต้องการลองใช้วิธีการอื่นที่อาจใช้งานได้


ทำไม MSWIN พาร์ติชันของคุณ 1TiB แม้ว่าจะไม่ใช่โซลูชันที่สมบูรณ์: ถ้าเป็นไปได้ให้ย้ายทุกสิ่งที่ไม่จำเป็นต้องอยู่บนนั้น (ข้อมูล ... ไฟล์มีเดีย?) แล้วปรับขนาดพาร์ติชันใหม่ซึ่งจะทำให้วิธีการใด ๆ ง่ายขึ้น หากคุณต้องการไปยังเส้นทางของภาพการล้างข้อมูลแล้วลดขนาดพาร์ติชันนั้นจะทำให้คุณมีพื้นที่เพียงพอที่จะสร้างภาพเต็มของพาร์ติชันใหม่ที่มีขนาดเล็กลง :-)
Alastair

คำตอบ:


27

คำสั่งที่คุณต้องการคือ

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

นี้จะสร้างพิเศษ VMDK ไฟล์ดิสก์เสมือน (Win7.vmdk) ซึ่งจริง ๆ /dev/sda1แล้วชี้ไปยังดิสก์พาร์ทิชันโฮสต์

ตามทฤษฎีแล้วคุณสามารถใช้สิ่งนี้เป็นไฟล์ดิสก์สำหรับ VM เพื่อเรียกใช้โดยตรงจากพาร์ติชันดิสก์จริง แต่ ...

  • (a) ฉันไม่เคยลองสิ่งนี้ดังนั้นจึงไม่รู้ว่ามันน่าเชื่อถือแค่ไหน
  • (b) คุณอาจพบปัญหาเกี่ยวกับการเปิดใช้งาน Windows ขึ้นอยู่กับรหัสลิขสิทธิ์ของคุณและ Windows ตัดสินใจว่า 'ฮาร์ดแวร์' ที่ตรวจพบมีการเปลี่ยนแปลงอย่างมีนัยสำคัญหรือไม่

ขอขอบคุณ. ฉันไม่ได้คิดเกี่ยวกับปัญหาการเปิดใช้งาน รับรองว่าจะหยุดแผนการของฉัน
Jazz

1
นอกจากนี้แม้ว่าจะใช้งานได้ (ซึ่งฉันสงสัย) คุณอาจสร้างความเสียหายอย่างร้ายแรงต่อ Windows ของคุณเมื่อทำงานจากการบูทและ VM
Takkat

@ ubnewbie2: ฉันอาจลองใช้เป็นการทดสอบและ / หรือเมื่อใช้คีย์ Volume Licensing บางประเภทและฉันอาจถือว่าเป็นการดำเนินการแบบทางเดียว นั่นคือคุณจะมีปัญหาเพิ่มเติมในการพยายามย้อนกลับ จริง ๆ แล้วฉันใช้ Windows 7 และใช้ VirtualBox VM กับ Ubuntu บ่อยครั้งในโหมดเต็มหน้าจอดังนั้นพีซีดูเหมือนจะใช้ Linux เท่านั้นและจะมีความมั่นใจในการใช้ Ubuntu จากพาร์ติชันดิสก์ดิบ
StarNamer

FYI ฉันได้ลองแล้วในทางกลับกัน ฉันจำเป็นต้องเปลี่ยนเครื่องที่ใช้งาน Ubuntu ผ่าน Win 7 ดังนั้นจึงเพิ่มพื้นที่ว่างด้วยการปรับขนาดพาร์ติชันและสร้างใหม่และติดตั้ง Win 7 สิ่งนี้แทนที่ grub2 ด้วย Windows bootloader เขาดังนั้นฉันจึงติดตั้ง VirtualBox และสร้าง VM ใหม่ด้วย ดิสก์เสมือนน้อยที่สุดที่จะจองจากนั้นจึงใช้พาร์ติชัน 'raw' ที่มีอยู่เพื่อเรียกใช้จาก มันใช้งานได้ดีแม้ว่าหน่วยความจำจะลดลงเล็กน้อยและเห็นเพียงซีพียูหลัก 1 ตัว (แทนที่จะเป็น 4)
StarNamer

- พาร์ทิชันในตอนท้ายรายการของพาร์ติชันที่คุณต้องการให้กล่องเสมือน "เห็น" (ไม่ใช่พาร์ติชัน # ที่คุณต้องการใช้) VBoxManage internalcommands --helpจะแสดงสิ่งอื่น ๆ ที่คุณสามารถทำได้ด้วยคำสั่งภายในเช่นเดียวกับสิ่งที่ตัวเลือกหมายถึง
boatcoder

16

ใช่คุณสามารถทำได้ด้วยcreaterawvmdkคำสั่งภายในซึ่งจะไม่สร้างภาพดิสก์ทั้งหมด แต่เป็นตัวชี้ไปยังฮาร์ดแวร์จริง

มีสองวิธีในการทำเช่นนั้น

  • A.ภาพดิสก์เต็ม (จาก / dev / sdb)

    sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb
    
  • B.ภาพพาร์ทิชัน

    ดังที่ @StarNamer แสดงให้เห็นว่าคุณสามารถใช้พาร์ติชันเพียงหนึ่งหรือไม่กี่พาร์ติชัน

    ในการสร้างภาพของพาร์ติชัน (/ dev / sda1) เพียงพาร์ติชันเดียว:

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

    หากต้องการสร้างตารางพาร์ติชันที่กำหนดเองซึ่งจะแม็พ / dev / sda2 และ / dev / sda1 ตามลำดับ:

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

ความแตกต่างที่โดดเด่นที่สุดคือดิสก์อิมเมจเต็มรูปแบบจะใช้ bootloader และตารางพาร์ทิชันเหมือนกับที่อยู่ในดิสก์ของคุณดังนั้นในทางทฤษฎี (ฉันเคยทำใน qemu ก่อนหน้านี้เท่านั้น) คุณจะสามารถตั้งค่าระบบปฏิบัติการจากเครื่องเสมือนของคุณ และจากประสบการณ์ที่ จำกัด qemu -hda /dev/sdbของฉันฉันสามารถพูดได้ว่าภาพดิสก์เต็มรูปแบบจะทำงานตรงตามที่

หมายเหตุ: หากคุณใช้ผู้ใช้ในการเข้าถึงดิสก์คุณจะต้องเพิ่มลงในdiskและvboxusersกลุ่มเช่น

sudo usermod -aG disk,vboxusers ubuntu

จากนั้นให้แน่ใจว่าคุณเข้าสู่ระบบอีกครั้งหรือรีสตาร์ทคอมพิวเตอร์ของคุณ

อ่านเพิ่มเติม:


"อิมเมจของดิสก์แบบเต็มจะใช้ bootloader และตารางพาร์ติชันเหมือนกับที่อยู่ในดิสก์ของคุณ" - ภายใต้สถานการณ์จำลองตัวแรก (/ dev / sdb) หรืออันที่สอง (โดยระบุพาร์ติชัน)?
naught101

1
นอกจากนี้Permission problem accessing the file for the medium '/home/naught101/sda2_windows.vmdk'
กล่องเสมือน

3
"นอกจากนี้กล่องเสมือนต้องถูกเรียกใช้ในฐานะรูท" ไม่จริงคุณต้องเป็นสมาชิกของกลุ่มดิสก์ ปลอดภัยกว่าการใช้กล่องเสมือนเสมือนรูท

2
นี่คือสิ่งที่ทำงานกับฉันด้วย Ubuntu 16.04 เป็นระบบโฮสต์และ Windows 10 ในฐานะแขก: ฉันสร้างไฟล์sudo VBoxManage internalcommands createrawvmdk -filename sda1_2_3.vmdk -rawdisk /dev/sda -partitions 1, 2, 3. vmdk โดยใช้ ด้วยวิธีนี้ฉันได้รวมพาร์ติชั่น windows และพาร์ทิชันบูต EFI ไว้ด้วย ฉันทำตามคำแนะนำของ shilka ในvirtualbox.org/ticket/7702และเพิ่ม cloverefiboot ทำงานเหมือนจับใจ!
dzmanto

นอกจากนี้คุณยังสามารถนำหน้าคำสั่ง VirutalBox (และ VBoxManage) ด้วยsudo -g diskเพื่อให้สิทธิ์การเข้าถึง VirtualBox เท่านั้น แต่ไม่ใช่กระบวนการอื่น ๆ ทั้งหมดของคุณ
Jan Hudec

0

มีตัวเลือกดิสก์ที่เรียกว่า "ไม่เปลี่ยนรูป" ดังนั้นในทางทฤษฎีหากคุณเลือกตัวเลือกนี้สำหรับการเชื่อมโยง vmdk ไปยังดิสก์ดิบของคุณก็ไม่ควรเปลี่ยนพาร์ทิชันเดิม

หากต้องการเปิด "Virtual Media Manager" ซึ่งอยู่ใต้ "ไฟล์" ให้เลือกภาพของคุณแล้วคลิก "แก้ไข" (คุณต้องตรวจสอบให้แน่ใจว่าภาพนี้ไม่ได้ต่ออยู่กับเครื่องใด ๆ หรือคุณได้รับข้อผิดพลาด) ตอนนี้คุณสามารถตั้งค่าประเภทสื่อเป็น "ไม่เปลี่ยนรูป"

ฉันยังไม่ได้ทดสอบสิ่งนี้ หากใครทำ (แน่นอนด้วยการตั้งค่าการทดสอบ) มันจะเป็นการดีที่จะรายงานกลับมาที่นี่

มีใครพิจารณาบ้างไหมที่พูดกับความคิดนี้


0

เป็นเวลาหลายปีแล้วที่ฉันใช้ Windows และ Ubuntu แบบดูอัลบูตด้วย Ubuntu Partition และบูตเข้าสู่ Windows VirtualBox เพื่อใช้ประโยชน์จากความสามารถของหน้าจอสัมผัสที่ Linux ยังไม่เชี่ยวชาญ

ฉันตั้งค่าด้วยคำแนะนำคล้ายกับด้านล่าง;

เครื่องใหม่สามารถจัดการทั้งสองระบบได้ดีกว่าระบบเดียวบนเครื่องเก่าพร้อมกัน

ข้อเสีย: คุณต้องบันทึกคำแนะนำที่คุณใช้สำหรับการตั้งค่าในกรณีที่การอัปเดตปิดใช้งานการเชื่อมต่อ VirtualBox (ปัญหาปัจจุบันของฉัน)


0

หลังจากพยายามหลายครั้งฉันก็ลงเอยด้วยวิธีที่เรียบร้อยและสะอาด:

  1. บูตพาร์ติชัน windows ที่คุณต้องการจำลองเสมือน
  2. ดาวน์โหลดยูทิลิตี้Disk2VHDจาก Sysinternals
  3. หากคุณมีพาร์ติชัน UEFIให้ทำตามคำแนะนำเหล่านี้
  4. สร้างอิมเมจVHD (ไม่ใช่ VHD X ) ของพาร์ติชัน C: การกู้คืน, UEFI (ถ้ามี) และสิ่งอื่น ๆ ที่คุณต้องการ
  5. กลับมาที่ Linux เปิด VirtualBox และสร้าง VM ตามข้อกำหนดระบบปฏิบัติการ windows ของคุณ
  6. แนบกับ VM นั้น VHD disk ที่สร้างขึ้นที่จุดที่ 4
  7. แค่นั้นแหละ
  8. กำไร

การแก้ไขปัญหาในกรณีของ UEFI:

  1. ในการตั้งค่า VM ใน VirtualBox ให้เลือกตัวเลือก "เปิดใช้งาน EFI" ภายใต้แท็บระบบ
  2. หากคุณติดอยู่ที่ EFI Shell ให้รันคำสั่งต่อไปนี้:

    fs0:\EFI\Boot\bkpbootx64.efi
    

มีความคิดเห็นเกี่ยวกับ downvote บ้างไหม?
garlix

ฉันเห็นสิ่งนี้เกิดขึ้นไม่กี่วันก่อน แต่ฉันจำไม่ได้ว่าให้ downvotes อย่างน้อยก็ไม่มีจุดประสงค์ ฉันยินดีที่จะยกเลิกการลงคะแนนขอโทษ
userfuser

0

VirtualBox มีข้อเสียมากมาย ฉันปล่อยไว้เมื่อหลายปีก่อน ตอนนี้ฉันใช้ qemu-kvm และข้างคุณสมบัติปรับอื่น ๆ มันสามารถกำหนดค่าให้ใช้อุปกรณ์ดิสก์ในลักษณะเดียวกับภาพดิสก์ เคล็ดลับคือการกำหนดค่าเสมือน "-drive if = sd, id = sda, format = raw, file = / dev / sda"

แต่! ก่อนอื่นคุณต้องทำการเปลี่ยนแปลงบางอย่างในขณะที่เรียกใช้ MSW บนโลหะเปลือยก่อนที่คุณจะลองทำเวอร์ชวลไลเซชัน: ดูที่โฟลเดอร์ "ไดรเวอร์" เพื่อหาไดรเวอร์ที่เหมาะสมที่จะมีอยู่และต้นไม้ "Registry" เป็นไดรเวอร์เหล่านั้น รันก่อนที่ระบบจะเริ่มต้นเช่น:

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

คุณต้องมองหาไดรเวอร์ apropriet สำหรับเครื่องเสมือนหากคุณไม่ต้องการเห็น BSOD

มันยากที่จะพูดว่าไดรเวอร์ใดที่จะเปิดใช้งาน วิธีที่ดีที่สุดคือติดตั้งระบบทดสอบก่อนจากนั้นค้นหาการลงทะเบียนเพื่อหารหัสลงทะเบียนด้วย "Start" = dword: 00000000 จากนั้นตั้งค่าคีย์เหล่านี้บนเครื่องโลหะเปลือย นอกจากนี้ยังแนะนำให้ตรวจสอบที่อยู่ MAC บนโลหะเปลือยเพื่อใส่ไว้ในการกำหนดค่า qemu คุณสามารถป้องกันไม่ให้ระบบขอการเปิดใช้งานใหม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.