Làm cách nào để khởi động từ ổ USB trong VirtualBox?


72

Câu hỏi rất đơn giản và dễ hiểu:

Làm cách nào để khởi động từ ổ USB trong VirtualBox?

CHỈNH SỬA :

Tôi đã đính kèm usbvới VirtualBox như trong ảnh chụp màn hình.

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

Nhưng không thể khởi động từ ổ USB ngay cả khi được gắn (tham khảo) .

Vì vậy, tôi muốn biết nếu có bất kỳ khả năng nào khác để khởi động từ ổ đĩa USB?


Bạn chỉ có thể mở USB của mình, nén mọi thứ vào tệp ISO và khởi động bình thường.
dat tutbrus 04/11/2015

@Ravan - đừng quên thường người dùng không đính kèm tài sản "khởi động" vào thanh USB. Đây là trong menu 'phân vùng' của gparted và ở đó bạn có thể chỉnh sửa cờ resp. nhãn của thanh USB và kích hoạt tham số "khởi động".
dschinn1001

1
@dattutbrus Điều đó sẽ không hoạt động nếu bạn muốn thay đổi tệp trên USB
Paul

Câu trả lời:


89

Bản thân VirtualBox không hỗ trợ khởi động từ thiết bị USB. Để khởi động từ thiết bị USB, cần có bộ tải khởi động khác. Các bước dưới đây cung cấp một cách có thể để thực hiện điều này:

  1. Tải xuống Trình quản lý khởi động Plop (hiện tại v5.0.15)
  2. Trích xuất tệp plpbt.isotừ kho lưu trữ ZIP và lưu nó ở đâu đó.
  3. Mở cài đặt cho máy ảo và đính kèm tệp ISO:

    nhập mô tả hình ảnh ở đây

  4. Thêm bộ lọc cho thiết bị USB:

    nhập mô tả hình ảnh ở đây

  5. Khởi động VM và chọn tùy chọn "USB" trong menu:

    nhập mô tả hình ảnh ở đây

Nếu mọi việc suôn sẻ, máy sẽ khởi động từ thiết bị USB.


1
Đây chắc chắn là một câu trả lời dễ dàng hơn của tôi. Tôi thích nó! Tôi ước tôi có thể nâng cao hơn nữa. =)
Terrance

3
Câu trả lời này phải bao gồm rằng bạn phải là thành viên của nhóm vboxusers .
musiKk

6
Nó không làm việc cho tôi. Khi tôi chọn usb tôi chờ mãi với màn hình của anh ấy. Ý tưởng nào không? postimg.org/image/dv8w83pi3
John

6
Tôi muốn thêm rằng Plop Boot Manager chỉ hỗ trợ chính thức cho EHCI. Nếu bạn giống tôi và bạn đang cố gắng sử dụng ổ USB 3.0 với Plop Boot Manager, nó sẽ không hoạt động. Bạn có thể thử sử dụng phương pháp được đề cập trong bài đăng khác, nhưng VirtualBox cũng có vẻ không thích làm việc với các vmdks thô từ các thiết bị USB 3.0. Nếu bạn chỉ có cổng USB 3 trên máy tính, bạn có thể đặt một bộ chia USB 2.0 và kết nối ổ đĩa thông qua đó. Nó sẽ hoạt động cơ bản giống như một ổ USB 2.0.
fakesad

3
Nếu bạn kết hợp giải pháp này với VMDK, bạn có thể có hiệu suất USB gốc. Nếu không, điều này chỉ hoạt động với USB 1.1.
Will Bickford

50

EDIT: 7 tháng 3 năm 2018

Một vài điều cần lưu ý ở đây. Để lại ổ USB trong máy tính khi bạn khởi động lại có thể thay đổi /dev/sdký hiệu tên ổ đĩa khiến usb.vmdktệp thô trỏ đến ổ đĩa không chính xác để nó không khởi động trong VirtualBox. Như một bài kiểm tra tôi đã để lại một trong hệ thống của tôi. Đó là /dev/sditrước khi tôi khởi động lại, sau khi khởi động lại /dev/sdc. Khi bạn khởi động lại máy tính cho bất kỳ thay đổi nào, vui lòng tháo ổ USB trước khi khởi động lại. Tôi đang xem xét nếu đĩa thô có thể được tạo từ UUID của ổ đĩa thay vì điều đó sẽ không thay đổi.


Vì VirtualBox không khởi động vào ổ USB, bạn có thể tạo một .vmdktệp trỏ đến ổ USB của mình để khởi động vào nó.

LƯU Ý: Bạn PHẢI thêm tài khoản người dùng của mình vào vboxusersnhóm để VirtualBox xem USB của bạn. Bạn cũng PHẢI thêm tài khoản của mình vào disknhóm hoặc bạn không thể thêm .vmdktệp vào Máy ảo của mình. Đã thêm hướng dẫn bên dưới trong EDIT . Điều này cũng không sao chép ổ USB vào ổ cứng và sử dụng USB trực tiếp. Điều này có thể hữu ích nếu có sự kiên trì trên USB mà bạn muốn giữ. Không phải mọi tình huống đều giống nhau nên điều này có thể không hoạt động cho mọi trường hợp.

Trước tiên, bạn cần có USB mà bạn đã tạo trong hệ thống của mình và xác định ổ đĩa vật lý là gì. Chúng tôi sẽ giả định rằng ổ đĩa của bạn được gắn kết là /dev/sdb1. Vì vậy, các ổ đĩa vật lý sẽ được /dev/sdb.

Tiếp theo, nhập nội dung sau từ cửa sổ đầu cuối để tạo .vmdktệp trỏ đến ổ USB:

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

Hoặc là

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

Sau đó, bạn sẽ thấy một cái gì đó tương tự như thế này:

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

Lưu ý: Một số người đã gặp vấn đề về quyền sở hữu tệp mới được tạo. Hãy sở hữu tập tin mới:

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

Sau đó, tất cả những gì bạn cần làm là thêm .vmdktệp vào Máy ảo VirtualBox của bạn và đảm bảo rằng bạn có thể khởi động vào nó.

nhập mô tả hình ảnh ở đây

BIÊN TẬP:

Để thêm người dùng của bạn vào vboxusersnhóm, hãy chạy lệnh sau:

sudo usermod -a -G vboxusers username

Để thêm người dùng của bạn vào disknhóm, hãy chạy lệnh sau:

Lưu ý: Thêm người dùng của bạn vào nhóm đĩa có thể nguy hiểm và rủi ro bảo mật. Nó nguy hiểm như việc truy cập sudo để ghi vào đĩa thô.

sudo usermod -a -G disk username

Sau đó, bạn PHẢI TẠO lại hệ thống của mình để các thay đổi có hiệu lực.

Trước khi khởi động lại:

nhập mô tả hình ảnh ở đây

Sau khi khởi động lại:

nhập mô tả hình ảnh ở đây

Hi vọng điêu nay co ich!


1
Tôi đã gặp lỗi này: VBoxManage: error: VMDK: không thể mở tệp đĩa thô '/ dev / sdc' VBoxManage: error: Mã lỗi VERR_WRITE_PROTECT tại /build/virtualbox-VDAABr/virtualbox-4.3.36-dfsg/s/ lưu trữ / VMDK.cpp (3390) trong chức năng int vmdkCreateRawImage (PVMDKIMAGE, PVBOXHDDRAW, uint64_t) VBoxManage: lỗi: không thể tạo VMDK liệu đĩa: VERR_WRITE_PROTECT VBoxManage: lỗi: các tập tin vmdk đĩa thô không được tạo ra
John

@ John Bạn đã thêm tài khoản của mình vào disknhóm sau đó đăng xuất và đăng nhập lại hoặc khởi động lại sau khi bạn thêm nhóm?
Terrance

Có, tôi khởi động lại nó và sự kiện nếu tôi chạy nó với kết quả root là như nhau ...
John

2
làm việc tốt cho tôi Lưu ý: không cần khởi động lại, chỉ cần đăng xuất / đăng nhập. Khi ở trong nhóm đĩa, người ta không cần sử dụng sudo.
Karl Forner

1
Tôi đã làm theo hướng dẫn, nhưng khi thử khởi động Windows 10 từ ổ đĩa USB trong hộp ảo, nó báo "FATAL: Không thể đọc từ phương tiện khởi động! Hệ thống tạm dừng.". Bất kỳ đề xuất? Cảm ơn sự giúp đỡ của bạn!
Arch Linux tu

15

Tôi đến bài viết này chỉ vài ngày trước. Tôi không muốn sử dụng Plop Boot Manager, vì thanh USB của tôi đã có khả năng khởi động.

Vì vậy, tôi đã cố gắng trỏ thanh USB vào đĩa VMDK (như trong câu trả lời Terrance) bằng cách tạo vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb

Thật không may, điều này từ chối làm việc ... Tôi chmodchowncác usb.vmdkđĩa, và vì vậy tôi đã có thể gắn nó vào một máy ảo nhưng nó chỉ đơn giản là không làm việc.

Cuối cùng, tôi đã thử một giải pháp khác và giải pháp này đã hoạt động hoàn hảo. Đây là (cảm ơn Gean Santos cho nghiên cứu):

  1. Chèn thanh USB và xác định nó (của tôi là /dev/sdb, chạy Sabayon Linux);
  2. Tạo .vmdkđĩa bằng cách chuyển đổi thiết bị thô (tức là thanh USB) sang đĩa VirtualBox

    sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk
    
  3. Bây giờ bạn có một usb.vmdkđĩa được tạo từ thanh USB có thể khởi động của bạn. Tôi cũng đã thử ddgắn USB vào một tệp hình ảnh và tạo .vmdkđĩa từ tệp hình ảnh. Nó hoạt động, cũng như .vdicác đĩa được tạo theo cách cũ (hoặc từ tệp hình ảnh)

  4. Bây giờ, cấp quyền cho đĩa đã tạo để VirtualBox có thể truy cập tệp. Nó chỉ có nghĩa là thay đổi chủ sở hữu tệp thành người dùng trong nhóm vboxusers . Nếu cài đặt VirtualBox của bạn đang chạy tốt, có lẽ chủ sở hữu này sẽ là bạn:

    sudo chown `whoami`:`whoami` ./usb.vmdk
    
  5. Bây giờ, bạn chỉ cần gắn usb.vmdkđĩa vào Máy ảo. Nhưng nó phải được gắn vào bộ điều khiển IDE . Tôi đã cố gắng SATAkhông thành công.

Một ví dụ VM với <code> usb.vmdk </ code> có thể khởi động được đính kèm với bộ điều khiển IDE

Tại thời điểm này, bạn ổn.

Chỉ cần khởi động VM mới, nhấn F12và chọn ổ đĩa khởi động.

Thưởng thức!


Cái này có hoạt động với USB 3.0 không (xem các bình luận ở đây Askubfox.com/questions/693719/ cấp )?
hấp dẫn về

Tôi vừa kiểm tra và về cơ bản bạn đã sao chép ổ đĩa USB của bạn, và không sử dụng thanh usb gốc theo cách này.
Fedcomp

11

Giải pháp đơn giản nhất là sao chép nội dung của khóa USB vào tệp iso (tốt, lần sau tôi sẽ chỉ tải xuống iso trên máy bên phải, không cần khóa USB ở vị trí đầu tiên)

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

Và sau đó thêm .iso này làm ổ đĩa quang trong cài đặt VirtualBox, trong Bộ lưu trữ, Bộ điều khiển: IDE (hoặc SATA, tôi đoán vậy).

Không cần tạo tệp .vmdk, VirtualBox hỗ trợ các tệp .iso.


Câu trả lời này nên được đặt lên hàng đầu.
McMutton

Tôi đồng ý :-) Nhưng điều đó đòi hỏi nhiều sự ủng hộ hơn, vẫn vậy;)
David Faure

Vấn đề ở đây là nếu bạn có một phân vùng với hình ảnh có thể khởi động khoảng 40 GB, nó sẽ tạo ra một tệp có kích thước đó
Sposmen

Phải, nhưng tất cả các giải pháp khác cũng làm điều đó, phải không?
David Faure

1
@DavidFaure Câu trả lời ban đầu về việc sử dụng "VBoxManage Internalcommands c [quevmmk ... Vì vậy, bạn không kết thúc với một hình ảnh có khả năng lớn của thanh USB như được đề cập bởi user33845
ConceptRat

5

Tôi sẽ đề nghị các bước sau.

  1. Đĩa mở.
  2. Hãy tìm USB.
  3. Nhấp vào đó và ở góc trên cùng bên phải, bạn sẽ thấy biểu tượng cài đặt có 3 đường thẳng song song.
  4. Nhấn vào đó và chọn Tạo hình ảnh đĩa ...
  5. Chọn vị trí và nhấp vào Tạo . Nó sẽ tạo một tệp .img mà bạn có thể sử dụng trong VirtualBox.

2

Tôi không muốn chạy Virtualbox với quyền root. Tôi không muốn người dùng của mình thuộc nhóm đĩa, có toàn quyền đối với tất cả các đĩa.

Vì vậy, đây là những gì tôi đã làm việc:

Tìm hiểu sd thẻ nhớ là gì. Trong các hướng dẫn sau đây sdc.

  • Bộ nhớ ngắt kết nối

    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
    
  • Đính kèm máy ảo usb.vmdk

    chmod 666 /dev/sdc
    
  • Khởi động máy ảo
  • Sau khi hoàn tất, đặt lại quyền sdc1 để bảo mật:

    chmod 660 /dev/sdc1
    

Ở trên, bạn có thể thấy rằng tôi phải đặt lại quyền cho thẻ nhớ một vài lần, bởi vì nó sẽ được đặt trở lại root mỗi lần.

Tôi đang sử dụng Mandriva Linux, nhưng nó sẽ giống với Ubuntu


Sự cho phép ở đây là lời khuyên rất tồi. Trước hết, bạn đang thực hiện nó với quyền root, vì vậy bạn không thực sự cần phải thay đổi các quyền để làm cho các lệnh đó hoạt động. Thứ hai, tốt hơn là thêm người dùng thích hợp vào nhóm đĩa để thậm chí không cần thiết.
Evan Teran

@ Evan Teran Bạn đã từng thử chưa? Và có, người dùng là một phần của nhóm đĩa. Đây là phương pháp mà tôi vẫn sử dụng cho đến ngày nay với hệ điều hành linux của riêng tôi. Wayne Sallee Wayne@WayneSallee.com
Wayne Sallee

Tôi đã không nói rằng nó sẽ không hoạt động, tôi nói đó không phải là lời khuyên tốt. Bất kể nhóm nào của người dùng, nếu bạn đang chạy các lệnh với quyền root, bạn thậm chí không cần phải thực hiện các quyền vì quyền truy cập root. Ngoài ra, tạo các tệp và thư mục với 777 và 666 là một cách làm không tốt, bạn không nên làm cho mọi thứ có thể đọc được hoặc có thể ghi được trừ khi chúng cần.
Evan Teran

@ Evan Teran không nên chạy chương trình với quyền root, không cần root. Thẻ nhớ chỉ hoạt động trong một thời gian ngắn và không có trên máy chủ. Đó là vấn đề bạn muốn đặt rủi ro ở đâu. Tôi chọn đặt rủi ro vào thẻ nhớ hơn là hệ thống. Wayne@WayneSallee.com
Wayne Sallee

Sửa chữa: Tôi chưa đưa người dùng của mình vào nhóm đĩa. Wayne@WayneSallee.com
Wayne Sallee

1

Nếu ổ USB của bạn là ổ đĩa khởi động EFI thì Plop Boot Manager sẽ không hoạt động vì nó không hỗ trợ khởi động EFI. Điều làm việc cho tôi trong trường hợp đó là sử dụng trình quản lý khởi động rEFInd ( http://www.rodsbooks.com/refind/ ).

  1. Tải xuống iso khả năng khởi động rEFInd từ http://sourceforge.net/projects/refind/files/0.11.4/refind-cd-0.11.4.zip/doad và giải nén nó.

  2. Mở cài đặt máy ảo trong VirtualBox và đính kèm tệp ISO rEFInd CD.

  3. Đảm bảo rằng tùy chọn "Bật EFI (chỉ dành cho hệ điều hành đặc biệt)" trong cài đặt máy ảo trong tab "Hệ thống" được bật.

  4. Khởi động máy ảo và bạn sẽ thấy menu khởi động rEFInd:

menu rEFInd

  1. Đính kèm ổ USB của bạn trong VirtualBox.

  2. Nhấn backspace để làm mới menu hoặc chỉ chờ vài giây và ổ đĩa sẽ xuất hiện trong menu.

  3. Chọn ổ USB của bạn và nhấn enter và ổ USB của bạn sẽ bắt đầu khởi động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.