Sử dụng máy ảo là một phương pháp tốt để thử nghiệm boot. Bài viết này sẽ hướng dẫn bạn làm thế nào để boot USB trên máy ảo VirtualBox.

Giới thiệu

Mặc dù trên mạng đã có nhiều bài viết hướng dẫn để boot USB trên máy ảo VirtualBox, nhưng tôi vẫn muốn viết bài này để người dùng trên trang web này tiện tham khảo.

VirtualBox là một phần mềm ảo hóa miễn phí và khá nhẹ. Nó cũng hỗ trợ sử dụng đĩa cứng vật lý làm đĩa cứng ảo, điều này giúp chúng ta có thể gắn và khởi động đĩa cứng vật lý trên VirtualBox. Vì vậy, bạn có thể sử dụng để boot HDD chứ không chỉ là USB.

Bạn có thể tạo một đĩa ảo, nó sẽ trỏ đến đĩa vật lý, sau đó gắn vào máy ảo theo cách thủ công. Điều này giúp bạn có thể tiếp tục sử dụng đĩa này trên máy thật. Tuy nhiên dữ liệu được ghi vào đĩa này từ máy ảo sẽ bị mất. Tôi đã không thể sao chép các tệp tin quá lớn, máy ảo của tôi đã bị dừng với một thông báo lỗi:

An error has occurred during virtual machine execution! The error details are shown below. You may try to correct the error and resume the virtual machine execution.

The I/O cache encountered an error while updating data in medium "ahci-0-0" (rc=VERR_ACCESS_DENIED). Make sure there is enough free space on the disk and that the disk is working properly. Operation can be resumed afterwards.

Error ID: BLKCACHE_IOERR
Severity: Non-Fatal Error

Để khắc phục vấn đề trên, bạn có thể sử dụng Virtual Machine USB Boot. Phần mềm này sẽ tự động tạo ra một đĩa ảo từ đĩa vật lý mà bạn muốn, sau đó gắn vào máy ảo. Các dữ liệu được ghi vào đĩa này từ máy ảo sẽ được lưu lại, tuy nhiên đĩa này sẽ bị khóa và bạn không thể sử dụng nó từ máy thật. Hiện tại thì phần mềm này chỉ hỗ trợ chạy trên Windows, bạn không thể sử dụng nó trên Linux và macOS.

Hãy chọn một phương pháp phù hợp. VirtualBox hiện tại không hỗ trợ khởi động UEFI 32-bit, bạn có thể boot USB trong VMware Workstation thay thế.

Boot USB trên máy ảo VirtualBox

Boot USB trên máy ảo VirtualBox

Để boot USB trên máy ảo VirtualBox, chúng ta sẽ tạo một đĩa ảo trỏ đến đĩa vật lý sau đó gắn nó máy ảo.

Tạo đĩa ảo từ đĩa vật lý

Để tạo đĩa ảo từ đĩa vật lý, đầu tiên bạn cần xác định đĩa vật lý mà bạn muốn sử dụng. Bỏ qua bước này nếu bạn sử dụng Virtual Machine USB Boot, nó sẽ giúp bạn tự động tạo ra tệp tin này.

Trên Windows, bạn có thể sử dụng Disk Management để xem tất cả đĩa cứng có trên máy tính. Ở đây, tôi sẽ sử dụng ổ đĩa G: mà tôi đã cài đặt AIO Boot.

  • Ổ đĩa G: thuộc Đĩa 2.
  • Đĩa 2 là “\\.\PHYSICALDRIVE2“.

Đĩa n là “\\.\PHYSICALDRIVEn“.

Disk Management

Chạy Command Prompt (Run as Administrator) và chạy lệnh sau:

Đối với VirtualBox 7 hoặc mới hơn:

"%programfiles%\Oracle\VirtualBox\VBoxManage" createmedium disk --filename C:\Disk2.vmdk --format=VMDK --variant RawDisk --property RawDrive=\.\PhysicalDrive2

Đối với các phiên bản cũ hơn:

"%programfiles%\Oracle\VirtualBox\VBoxManage" internalcommands createrawvmdk -filename C:\Disk2.vmdk -rawdisk \\.\PhysicalDrive2

Ở lệnh trên, tôi sẽ tạo một đĩa ảo được lưu tại C:\Disk2.vmdk cho đĩa vật lý 2. Bạn cần thay đổi các thông tin được tô màu đỏ ở trên để phù hợp cho bạn. Kết quả xuất ra như sau, có nghĩa là đã thành công.

RAW host disk access VMDK file C:\Disk2.vmdk created successfully.

Trên Ubuntu và các bản phân phối Linux, bạn có thể sử dụng lệnh sudo fdisk -l để xem danh sách các đĩa.

sudo fdisk -l
VBoxManage internalcommands createrawvmdk -filename "/path/to/Disk2.vmdk" -rawdisk /dev/sdX

Trên macOS, sử dụng lệnh diskutil list:

diskutil list
VBoxManage internalcommands createrawvmdk -filename "/path/to/Disk2.vmdk" -rawdisk /dev/diskX

Tạo máy ảo mới

Bây giờ chúng ta sẽ tạo một máy ảo mới và gắn đĩa ảo đã tạo ở trên. Bạn cũng có thể gắn nó vào máy ảo hiện có.

  1. Đối với Windows, chạy VirtualBox dưới quyền Administrator (trên Linux và macOS là root).
  2. Nhấp nút New để tạo máy ảo mới.
    Tạo máy ảo VirtualBox
  3. Đặt tên và chọn hệ điều hành cho máy ảo. Nhấn Next.
    Tạo máy ảo VirtualBox
  4. Nhập kích thước bộ nhớ trong cửa sổ Memory size. Nhấn Next.
    VirtualBox Memory size
  5. Trong cửa sổ Hard disk, chọn Use an existing virtual hard drive file, sau đó nhấn vào biểu tượng mũi tên trỏ lên để chọn đến tệp tin .vmdk đã tạo ở bước trên. Nếu bạn sử dụng Virtual Machine USB Boot, hãy chọn Do not add a virtual hard disk, phần mềm này sẽ tự động giúp bạn tạo và gắn đĩa ảo.
    Thêm đĩa cứng vào máy ảo VirtualBox
  6. Nhấn nút Create để kết thúc.

Bây giờ chỉ cần chọn máy ảo trong danh sách, nhấn Start để boot USB trên máy ảo VirtualBox. Nếu bạn muốn boot UEFI trong VirtualBox thì vào Setting > System và tích vào ô Enable EFI (special OSes only).

Virtual Machine USB Boot

Sử dụng Virtual Machine USB Boot sẽ hỗ trợ ghi dữ liệu vào đĩa vật lý từ máy ảo. Nó sẽ tự động tạo ra tệp tin đĩa ảo và gắn vào Port 0. Nó cũng hỗ trợ cho QEMU.

  1. Tải về Virtual Machine USB Boot. Tôi sẽ tải về phiên bản Portable để khỏi phải cài đặt.
  2. Trích xuất tệp tin .zip và chạy tệp tin .exe.
  3. Nhấn Add để thêm máy ảo VirtualBox mà bạn đã tạo ở trên.
    Virtual Machine USB Boot

     

    • Type: VirtualBox.
    • Mode to load VM: VM name.
    • VM name: Tên máy ảo mà bạn đã tạo ở trên.
    • Drive to add and boot: Chọn đĩa cứng mà bạn muốn chương trình sẽ tạo đĩa ảo và gắn để boot. Nếu bạn đã tạo đĩa ảo từ đĩa vật lý này và gắn vào máy ảo, hãy loại bỏ nó ra trước. Mở VirtualBox, chọn tên máy ảo và nhấn nút Settings, từ mục Storage, nhấp chuột phải vào tên tệp tin .vmdk và chọn Remove Attachment.
  4. Thiết lập các mục còn lại và nhấn OK để kết thúc.

Chọn máy ảo, nhấn Start, Virtual Machine USB Boot sẽ tự động khóa đĩa cứng mà bạn đã chọn và khởi động nó.

Virtual Machine USB Boot VirtualBox

Sử dụng máy ảo giúp chúng ta thử nghiệm trước mà không cần phải khởi động lại máy tính. Điều này thật tuyệt vời đúng không nào? Chúc bạn thành công!

Tham gia cuộc thảo luận

2 Bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

  1. Như vậy cách 2 ưu điểm hơn cách 1 là có thể sao chép file lớn từ máy ảo ra usb thật mà ko bị lỗi như cách 1 (chỉ copy đc file nhỏ)
    cách 1 ưu điểm hơn cách 2 là cả máy ảo và máy thật đều có thể tru cập usb đồng thời phải ko bạn?
    Cách 2 chỗ bước 3 “Nhấn Add để thêm máy ảo VirtualBox mà bạn đã tạo ở trên.” tức là vẫn dùng lệnh tạo file vmdk như cách 1 à bạn?