วิธีการบู๊ตจากไดรฟ์ USB ใน VirtualBox


72

คำถามนั้นง่ายและตรงไปตรงมา:

วิธีการบู๊ตจากไดรฟ์ USB ใน VirtualBox

แก้ไข :

ฉันได้แนบusbกับ VirtualBox ดังที่แสดงในภาพหน้าจอ

https://i.stack.imgur.com/UPZZo.png

แต่มันเป็นไปไม่ได้ที่จะบูตจากไดรฟ์ USB แม้ในขณะที่แนบมา (อ้างอิง)

ดังนั้นฉันต้องการทราบว่ามีความเป็นไปได้อื่นที่จะบูตจากไดรฟ์ USB หรือไม่


คุณสามารถเปิด USB ของคุณบีบอัดทุกอย่างเป็นไฟล์ ISO แล้วบูตได้ตามปกติ
dat tutbrus

@Ravan - อย่าลืมบ่อยครั้งที่ผู้ใช้ไม่ได้แนบคุณสมบัติ "บูต" ในส่วนที่ต่อเข้ากับ usb-stick นี่คือในเมนู 'พาร์ติชัน' ของ gparted และคุณสามารถแก้ไขการตั้งค่าสถานะ ฉลากของ usb-stick และเปิดใช้งานพารามิเตอร์ "boot"
dschinn1001

1
@dattutbrus ไม่ทำงานหากคุณต้องการเปลี่ยนไฟล์บน USB
Paul

คำตอบ:


89

VirtualBox ไม่รองรับการบู๊ตจากอุปกรณ์ USB ในการบู๊ตจากอุปกรณ์ USB นั้นจำเป็นต้องมี bootloader อื่น ขั้นตอนด้านล่างเป็นวิธีที่เป็นไปได้ในการทำสิ่งนี้:

  1. ดาวน์โหลดPlop Boot Manager (ปัจจุบัน v5.0.15)
  2. แตกไฟล์plpbt.isoจากไฟล์เก็บถาวร ZIP และบันทึกไว้ที่ใดที่หนึ่ง
  3. เปิดการตั้งค่าสำหรับเครื่องเสมือนและแนบไฟล์ ISO:

    ป้อนคำอธิบายรูปภาพที่นี่

  4. เพิ่มตัวกรองสำหรับอุปกรณ์ USB:

    ป้อนคำอธิบายรูปภาพที่นี่

  5. บูต VM และเลือกตัวเลือก "USB" ในเมนู:

    ป้อนคำอธิบายรูปภาพที่นี่

หากทุกอย่างเป็นไปด้วยดีตอนนี้เครื่องควรบู๊ตจากอุปกรณ์ USB


1
นี่เป็นคำตอบที่ง่ายกว่าของฉันอย่างแน่นอน ฉันชอบมัน! ฉันหวังว่าฉันจะสามารถโหวตได้มากกว่านี้ =)
Terrance

3
คำตอบนี้ควรรวมว่าคุณจะต้องเป็นส่วนหนึ่งของกลุ่มvboxusers
musiKk

6
มันไม่ทำงานสำหรับฉัน เมื่อฉันเลือก usb ฉันจะรอหน้าจอของเขาตลอดไป ความคิดใด ๆ postimg.org/image/dv8w83pi3
จอห์น

6
ฉันต้องการเพิ่มว่า Plop Boot Manager รองรับ EHCI อย่างเป็นทางการเท่านั้น หากคุณเป็นเหมือนฉันและคุณกำลังพยายามใช้ไดรฟ์ USB 3.0 กับ Plop Boot Manager มันจะไม่ทำงาน คุณสามารถลองใช้วิธีการที่กล่าวถึงในโพสต์อื่น ๆ แต่ VirtualBox ดูเหมือนจะไม่ค่อยชอบทำงานกับ vmdks ดิบจากอุปกรณ์ USB 3.0 หากคุณมีพอร์ต USB 3 บนคอมพิวเตอร์ของคุณเท่านั้นคุณสามารถสั่งซื้อฮับ USB 2.0 และเชื่อมต่อไดรฟ์ผ่านพอร์ตนั้นได้ มันจะทำตัวเหมือนไดรฟ์ USB 2.0
fakedad

3
หากคุณรวมโซลูชันนี้กับ VMDK คุณสามารถรับประสิทธิภาพ USB ดั้งเดิมได้ มิฉะนั้นจะใช้งานได้กับ USB 1.1 เท่านั้น
Will Bickford

50

แก้ไข: 7 มี.ค. 2018

สิ่งที่ควรทราบที่นี่ การออกจากไดรฟ์ USB ในคอมพิวเตอร์เมื่อคุณรีบูตสามารถเปลี่ยนการ/dev/sdกำหนดอักษรชื่อไดรฟ์ทำให้usb.vmdkไฟล์ดิบชี้ไปที่ไดรฟ์ที่ไม่ถูกต้องดังนั้นจึงไม่สามารถบูตใน VirtualBox ในการทดสอบฉันทิ้งไว้ในระบบของฉัน มันเป็น/dev/sdiก่อนที่ผมจะรีบูต, /dev/sdcหลังจากรีบูตมันเป็น เมื่อคุณรีบูทคอมพิวเตอร์สำหรับการเปลี่ยนแปลงใด ๆ โปรดลบไดรฟ์ USB ก่อนที่จะรีบูต ฉันกำลังดูว่าดิสก์ดิบสามารถสร้างได้จาก UUID ของไดรฟ์แทนซึ่งจะไม่เปลี่ยนแปลง


เนื่องจาก VirtualBox ไม่บูตไปยังไดรฟ์ USB คุณสามารถสร้าง.vmdkไฟล์ที่ชี้ไปยังไดรฟ์ USB ของคุณเพื่อทำการบู๊ต

หมายเหตุ: คุณต้องเพิ่มบัญชีผู้ใช้ของคุณในvboxusersกลุ่มสำหรับ VirtualBox เพื่อดู USB ของคุณ คุณต้องเพิ่มบัญชีของคุณลงในdiskกลุ่มด้วยหรือไม่สามารถเพิ่ม.vmdkไฟล์ลงในเครื่องเสมือนของคุณ คำแนะนำที่เพิ่มเข้ามาด้านล่างในแก้ไข สิ่งนี้ไม่ได้คัดลอกไดรฟ์ USB ไปยังฮาร์ดไดรฟ์และใช้ USB โดยตรง สิ่งนี้จะเป็นประโยชน์หากมีการคงอยู่ของ USB ที่คุณต้องการเก็บไว้ ไม่ใช่ทุกสถานการณ์ที่เหมือนกันดังนั้นจึงไม่สามารถใช้ได้กับทุกกรณี

ก่อนอื่นคุณต้องมี USB ที่คุณสร้างขึ้นในระบบของคุณและตรวจสอบว่าไดรฟ์ทางกายภาพคืออะไร /dev/sdb1พวกเราจะไปคิดว่าไดรฟ์ของคุณจะถูกติดตั้งเป็น /dev/sdbดังนั้นไดรฟ์ทางกายภาพจะเป็น

จากนั้นพิมพ์จากหน้าต่างเทอร์มินัลเพื่อสร้าง.vmdkไฟล์ที่ชี้ไปยังไดรฟ์ USB:

sudo vboxmanage internalcommands createrawvmdk -filename  ~/usb.vmdk -rawdisk /dev/sdb

หรือ

sudo VBoxManage internalcommands createrawvmdk -filename  ~/usb.vmdk -rawdisk /dev/sdb

จากนั้นคุณควรเห็นสิ่งที่คล้ายกับสิ่งนี้:

RAW host disk access VMDK file /home/ravan/usb.vmdk created successfully.

หมายเหตุ:บางคนมีปัญหาเรื่องความเป็นเจ้าของไฟล์ที่สร้างขึ้นใหม่ เป็นเจ้าของไฟล์ใหม่:

sudo chown $USER:$USER ~/usb.vmdk

สิ่งที่คุณต้องทำคือเพิ่ม.vmdkไฟล์ลงใน VirtualBox Virtual Machine ของคุณและตรวจสอบให้แน่ใจว่าคุณสามารถบู๊ตได้

ป้อนคำอธิบายรูปภาพที่นี่

แก้ไข:

ในการเพิ่มผู้ใช้ของคุณในvboxusersกลุ่มให้รันคำสั่งต่อไปนี้:

sudo usermod -a -G vboxusers username

ในการเพิ่มผู้ใช้ของคุณในdiskกลุ่มให้รันคำสั่งต่อไปนี้:

หมายเหตุ: การเพิ่มผู้ใช้ของคุณในกลุ่มดิสก์อาจเป็นอันตรายและเสี่ยงต่อความปลอดภัย มันอันตรายเท่าการมีสิทธิ์เข้าถึง sudo เพื่อเขียนไปยังดิสก์ดิบ

sudo usermod -a -G disk username

จากนั้นคุณต้องรีบูตระบบของคุณเพื่อให้การเปลี่ยนแปลงมีผล

ก่อนรีบูต:

ป้อนคำอธิบายรูปภาพที่นี่

หลังจากรีบูต:

ป้อนคำอธิบายรูปภาพที่นี่

หวังว่านี่จะช่วยได้!


1
ฉันได้รับข้อผิดพลาดนี้: VBoxManage: ข้อผิดพลาด: VMDK: ไม่สามารถเปิดไฟล์ดิสก์ดิบ '/ dev / sdc' VBoxManage: ข้อผิดพลาด: รหัสข้อผิดพลาด VERR_WRITE_PROTECT ที่ / build/virtualbox-VDAABr/virtualbox- การจัดเก็บข้อมูล / VMDK.cpp (3390) ในการทำงาน int vmdkCreateRawImage (PVMDKIMAGE, PVBOXHDDRAW, uint64_t) VBoxManage: ข้อผิดพลาด: ไม่สามารถสร้าง vMDK ดิบดิสก์: VERR_WRITE_PROTECT VBoxManage: ข้อผิดพลาด: แฟ้ม vmdk ดิสก์ดิบไม่ได้ถูกสร้าง
จอห์น

@John คุณเพิ่มบัญชีของคุณในdiskกลุ่มจากนั้นออกจากระบบและกลับเข้ามาหรือรีบูตหลังจากที่คุณเพิ่มกลุ่มหรือไม่
Terrance

ใช่ฉันเริ่มต้นใหม่และเหตุการณ์ถ้าฉันเรียกใช้เนื่องจากผลลัพธ์ที่ได้จะเหมือนกัน ...
John

2
ทำงานได้ดีสำหรับฉัน ข้อสังเกต: ไม่จำเป็นต้องรีบูตเพียงเพื่อออกจากระบบ / เข้าสู่ระบบ เมื่ออยู่ในกลุ่มดิสก์คุณไม่จำเป็นต้องใช้ sudo
Karl Forner

1
ฉันทำตามคำแนะนำ แต่เมื่อพยายามบูต Windows 10 จาก usb-drive ใน virtualbox มันบอกว่า "FATAL: ไม่สามารถอ่านได้จากสื่อสำหรับบูต! ระบบหยุดทำงาน" ข้อเสนอแนะใด ๆ ขอขอบคุณสำหรับความช่วยเหลือของคุณ!
Arch Linux Tux

15

ฉันมาที่โพสต์นี้เมื่อไม่กี่วันที่ผ่านมา ฉันไม่ต้องการใช้ Plop Boot Manager เพราะแท่ง USB ของฉันสามารถบูตได้แล้ว

ดังนั้นฉันจึงพยายามชี้ USB stick ไปยังดิสก์ VMDK (เหมือนใน Terrance answer) โดยการสร้าง vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb

แต่นี้ปฏิเสธที่จะทำงาน ... ฉันchmodและดิสก์และดังนั้นฉันก็สามารถที่จะแนบไป VM แต่มันก็ไม่ได้ทำงานchownusb.vmdk

ในที่สุดฉันได้ลองวิธีอื่นและวิธีนี้ใช้ได้อย่างไม่มีที่ติ นี่มัน (ขอบคุณGean Santosสำหรับการวิจัย):

  1. เสียบอุปกรณ์ USB และระบุ (ของฉันคือ/dev/sdbใช้ Sabayon Linux);
  2. สร้าง.vmdkดิสก์โดยการแปลงอุปกรณ์ raw (เช่นแท่ง USB) เป็นดิสก์ VirtualBox

    sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk
    
  3. ตอนนี้คุณมีusb.vmdkดิสก์ที่สร้างจากแท่ง USB ที่สามารถบู๊ตได้ ฉันลองddUSB stick ไปยังไฟล์รูปภาพและสร้าง.vmdkดิสก์จากไฟล์รูปภาพ มันทำงานได้เช่นเดียวกับ.vdiดิสก์ที่สร้างขึ้นในแบบเดิม (หรือจากไฟล์ภาพ)

  4. ตอนนี้ให้สิทธิ์กับดิสก์ที่สร้างขึ้นตามลำดับ VirtualBox สามารถเข้าถึงไฟล์ มันก็หมายความว่าเปลี่ยนเจ้าของไฟล์ไปยังผู้ใช้ที่อยู่ในกลุ่ม vboxusers หากการติดตั้ง VirtualBox ของคุณทำงานตกลงคุณอาจเป็นเจ้าของ:

    sudo chown `whoami`:`whoami` ./usb.vmdk
    
  5. ตอนนี้คุณเพียงแค่ต้องแนบusb.vmdkดิสก์เข้ากับเครื่องเสมือน แต่มันจะต้องแนบมากับคอนโทรลเลอร์ IDE ฉันพยายามSATAไม่ประสบความสำเร็จ

ตัวอย่าง VM พร้อม <code> usb.vmdk </code> ที่สามารถบู๊ตได้ซึ่งต่ออยู่กับคอนโทรลเลอร์ IDE

ณ จุดนี้คุณตกลง

เพียงแค่บูต VM ใหม่ให้กดF12และเลือกไดรฟ์ที่สามารถบูตได้

สนุก!


สิ่งนี้ใช้กับ USB 3.0 ได้หรือไม่ (แสดงความคิดเห็นได้ที่นี่askubuntu.com/questions/693719/ ...... )?
บ๊องเกี่ยวกับ natty

ฉันเพิ่งตรวจสอบและโดยทั่วไปคุณคัดลอกไดรฟ์ usb stick ของคุณและไม่ได้ใช้ usb stick ดั้งเดิมด้วยวิธีนี้
Fedcomp

11

ทางออกที่ง่ายที่สุดคือการคัดลอกเนื้อหาของคีย์ USB ลงในไฟล์ iso (ในครั้งต่อไปฉันจะดาวน์โหลด iso บนเครื่องที่ถูกต้องโดยไม่ต้องใช้คีย์ USB ในตอนแรก)

dd if=/dev/sdc of=myusbkey.iso

แล้วเพิ่ม. iso นี้เป็นไดรฟ์ออปติคัลในการตั้งค่า VirtualBox ภายใต้การจัดเก็บข้อมูลคอนโทรลเลอร์: IDE (หรือ SATA ฉันเดา)

ไม่จำเป็นต้องสร้างไฟล์. vmdk VirtualBox รองรับไฟล์. iso


คำตอบนี้ควรจะอยู่ด้านบน
McMutton

ฉันเห็นด้วย :-) แต่นั่นต้องใช้ upvotes เพิ่มขึ้นอีก)
David Faure

สิ่งนี้คือถ้าคุณมีพาร์ติชั่นที่มีอิมเมจที่สามารถบูทได้ประมาณ 40GB มันจะสร้างไฟล์ที่มีขนาดนั้น😅
Sposmen

ใช่ แต่โซลูชันอื่นทั้งหมดก็ทำเช่นนั้นใช่ไหม
David Faure

1
@DavidFaure คำตอบดั้งเดิมเกี่ยวกับการใช้ "VBoxManage คำสั่งภายใน createrawvmdk ... " เพียงสร้างสิ่งที่คุณคิดว่าเทียบเท่ากับทางลัดไปยังไดรฟ์ USB ที่คุณแนบไว้กับระบบในเวลาที่คุณเรียกใช้คำสั่งข้างต้น ดังนั้นคุณจึงไม่ต้องจบด้วยภาพแท่ง USB ขนาดใหญ่ที่อาจกล่าวถึงตามที่ผู้ใช้ระบุ 33845
ConceptRat

5

ฉันอยากจะแนะนำขั้นตอนต่อไปนี้

  1. เปิดดิสก์
  2. มองหา USB
  3. คลิกที่นั่นและที่มุมขวาบนคุณจะเห็นไอคอนการตั้งค่าที่มีเส้นคู่ขนาน 3 เส้น
  4. คลิกที่นั่นและเลือกสร้างภาพดิสก์ ...
  5. เลือกสถานที่และคลิกสร้าง มันจะสร้างไฟล์. img ซึ่งคุณสามารถใช้ใน VirtualBox

2

ฉันไม่ต้องการเรียกใช้ Virtualbox เหมือนรูท ฉันไม่ต้องการให้ผู้ใช้ของฉันอยู่ในกลุ่มดิสก์มีสิทธิ์อย่างเต็มที่ในดิสก์ทั้งหมด

ดังนั้นนี่คือสิ่งที่ฉันต้องทำงาน:

ค้นหาว่า sd memory stick คืออะไร sdcในคำแนะนำต่อไปนี้มันเป็น

  • ถอดเมาท์เมมโมรี่สติ๊ก

    su -
    chmod 666 /dev/sdc1
    chmod 666 /dev/sdc
    exit # Run the following command as regular user:
    VBoxManage internalcommands createrawvmdk -filename usb.vmdk -rawdisk /dev/sdc
    su - # Back as root again:
    chmod 777 usb.vmdk
    chmod 666 /dev/sdc
    
  • แนบเครื่อง virtualbox usb.vmdk

    chmod 666 /dev/sdc
    
  • เริ่มเครื่องเสมือน
  • หลังจากเสร็จสิ้นให้รีเซ็ตการอนุญาต sdc1 เพื่อความปลอดภัย:

    chmod 660 /dev/sdc1
    

ในข้างต้นคุณจะเห็นว่าฉันต้องรีเซ็ตการอนุญาตสำหรับเมมโมรี่สติ๊กสองสามครั้งเพราะมันจะถูกตั้งค่ากลับไปที่รูทในแต่ละครั้ง

ฉันใช้ Mandriva Linux แต่ควรจะเหมือนกันใน Ubuntu


การอนุญาตเล่นซอที่นี่เป็นคำแนะนำที่ไม่ดีมาก ก่อนอื่นคุณทำมันในฐานะ root ดังนั้นคุณไม่จำเป็นต้องเปลี่ยนการอนุญาตเพื่อให้คำสั่งเหล่านั้นทำงานได้ ประการที่สองเป็นการดีกว่าที่จะเพิ่มผู้ใช้ที่เหมาะสมลงในกลุ่มดิสก์ดังนั้นจึงไม่จำเป็น
Evan Teran

@ Evan Teran คุณเคยลองแล้วหรือยัง? และใช่ผู้ใช้เป็นส่วนหนึ่งของกลุ่มดิสก์ นี่เป็นวิธีการที่ฉันยังคงใช้อยู่ทุกวันนี้กับระบบปฏิบัติการ linux ของฉันเอง Wayne Sallee Wayne@WayneSallee.com
Wayne Sallee

ฉันไม่ได้บอกว่ามันใช้งานไม่ได้ฉันบอกว่ามันไม่ใช่คำแนะนำที่ดี โดยไม่คำนึงถึงกลุ่มผู้ใช้หากคุณใช้คำสั่งในฐานะรูทคุณไม่จำเป็นต้องมีสิทธิ์ใช้งานเพราะการเข้าถึงรูต นอกจากนี้การสร้างไฟล์และโฟลเดอร์ด้วย 777 และ 666 ก็เป็นสิ่งที่ไม่ดีคุณไม่ควรทำให้โลกอ่านหรือเขียนได้เว้นแต่จะต้องเป็น
Evan Teran

@ Evan Teran ไม่ใช่คำแนะนำที่ดีในการรันโปรแกรมในฐานะ root ซึ่งไม่จำเป็นต้องเป็น root เมมโมรี่สติ๊กอยู่เพียงครู่เดียวเท่านั้นและไม่ได้อยู่บนเซิร์ฟเวอร์ เป็นเรื่องของการที่คุณต้องการเสี่ยง ฉันเลือกที่จะเสี่ยงกับเมมโมรี่สติ๊กมากกว่าระบบ Wayne@WayneSallee.com
Wayne Sallee

การแก้ไข: ฉันไม่ได้ใส่ผู้ใช้ของฉันในกลุ่มดิสก์ Wayne@WayneSallee.com
Wayne Sallee

1

หากไดรฟ์ USB ของคุณเป็นไดรฟ์ที่สามารถบูตได้ของ EFI ดังนั้น Plop Boot Manager จะไม่ทำงานเนื่องจากไม่รองรับการบู๊ต EFI สิ่งที่ได้ผลสำหรับฉันในกรณีดังกล่าวคือการใช้ตัวจัดการการบูต rEFInd ( http://www.rodsbooks.com/refind/ )

  1. ดาวน์โหลด rEFInd iso ที่สามารถบู๊ตได้จากhttp://sourceforge.net/projects/refind/files/0.11.4/refind-cd-0.11.4.zip/downloadและคลายซิป

  2. เปิดการตั้งค่าเครื่องเสมือนใน VirtualBox และแนบไฟล์ rEFInd CD ISO

  3. ตรวจสอบให้แน่ใจว่าเปิดใช้งานตัวเลือก "เปิดใช้งาน EFI (ระบบปฏิบัติการพิเศษเท่านั้น)" ในการตั้งค่าเครื่องเสมือนในแท็บ "ระบบ"

  4. บู๊ตเครื่องเสมือนและคุณควรเห็นเมนูการบู๊ต rEFInd:

เมนู rEFInd

  1. แนบไดรฟ์ USB ของคุณใน VirtualBox

  2. กด backspace เพื่อรีเฟรชเมนูหรือรอสักครู่และไดรฟ์ควรจะปรากฏในเมนู

  3. เลือกไดรฟ์ USB ของคุณและกด Enter และไดรฟ์ USB ของคุณควรเริ่มต้นการบูต

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