Làm cách nào để tôi khởi động từ một liveusb bằng cách sử dụng qemu-kvm?


27

Tôi đang cố gắng để qemu-kvm khởi động từ thanh usb trực tiếp của mình. Điều này có thể không?

Câu trả lời:


23

qemu-kvm -hdb <device>, <device>thanh USB ở đâu (ví dụ /dev/sdb), nên làm điều đó (đã thử nghiệm với Ubuntu 12.04 trên thanh USB và nó hoạt động).

Bạn sẽ cần quyền ghi vào thiết bị (nghĩa là roothoặc thay đổi quyền của thiết bị ).


2
Câu trả lời tốt. BTW nếu bạn cần một giao diện dễ dàng để quản lý máy ảo của mình, hãy dùng thử trình quản lý tài năng.
wazoox

2
Chỉ là một gợi ý: Tôi đã thử VirtualBox thay vì kvm để kiểm tra thanh usb trực tiếp của mình và nó nhanh hơn rất nhiều. Bạn phải sử dụng lệnh này làm root để tạo tệp vmdk sẽ được sử dụng trong VirtualBox:VBoxManage internalcommands createrawvmdk -filename .VirtualBox/HardDisks/usbdisk.vmdk -rawdisk /dev/sdb
Marc MAURICE

4
Chỉ cần một lưu ý nhỏ để tự ở đây - sử dụng nút đĩa / thiết bị trong -hdb(ví dụ /dev/sdb); KHÔNG phải phân vùng (như trong /dev/sdb4)
sdaau

Để tránh thông báo cảnh báo CẢNH BÁO: Định dạng hình ảnh không được chỉ định cho '/ dev / sdb' và thăm dò được đoán thô. Tự động phát hiện định dạng là nguy hiểm cho hình ảnh thô, thao tác ghi trên khối 0 sẽ bị hạn chế. Chỉ định rõ ràng định dạng 'thô' để loại bỏ các hạn chế. bạn có thể chỉ định các tùy chọn trong định dạng này: -drive file=/dev/sdb,format=raw,index=0,media=diskXem câu hỏi này
Ashark

26

qemu-kvm đã biến mất. sử dụng gợi ý trong start qemu bằng cách cho nó một đường dẫn đến root linux . điều này có nghĩa là

qemu-system-x86_64 -usb -usbdevice disk:/dev/sdb

trong đó / dev / sdb là thiết bị thô của bạn (không phải phân vùng) của thanh usb mà bạn muốn khởi động.

(tuy nhiên, kể từ tháng 12 năm 2014, nó rất dễ xảy ra đối với tôi. Khởi động kết quả ub Ubuntu-gnome 14.10 cuối cùng trong một hạt nhân hoảng loạn trên một cây gậy được xác minh để khởi động tốt trên kim loại.)

/ iaw


Cảm ơn, cần điều này để tự động khởi động bản dựng bin-x86_64-efi/ipxe.usbcho khởi động EFI và cho đến nay nó vẫn hoạt động mà không gặp vấn đề gì.
NiKiZe

2
Bạn có thể vui lòng cập nhật câu trả lời của bạn? Tôi đã nhận được như sau: qemu-system-x86_64: -usbdevice disk:/dev/sdb: '-usbdevice' is deprecated, please use '-device usb-...' instead
Ashark

8

Tôi không biết tại sao chính xác, nhưng câu trả lời của Renan không phù hợp với tôi. KVM nói với tôi rằng nó không thể tìm thấy ổ đĩa khởi động (mặc dù phân vùng usb được đánh dấu như vậy).

Tuy nhiên tôi đã tìm thấy một giải pháp khác. Nhận thiết bị USB VendorID: ProductID với lsusb. Thí dụ:

$ lsusb
...
Bus 002 Device 007: ID 0781:5406 SanDisk Corp. Cruzer Micro U3

Chuyển nó đến KVM và yêu cầu menu khởi động:

sudo  kvm -m 512 -smp 1 -drive file=/path/to/hardisk/file.img -usb \ 
-usbdevice host:0781:5406 -boot menu=on

Nhấn F12 cho menu, chọn thiết bị usb, nó hoạt động. Có lẽ có một cách để ra lệnh khởi động usb mà không cần gọi menu khởi động, nhưng tôi không tìm thấy bất kỳ thứ gì trong man kvm.


Đối với tôi, việc truyền thanh usb như một ổ đĩa hdd hoạt động chính xác với tôi, nhưng việc truyền thanh usb như một thiết bị usb với menu -boot = on 1) ở chế độ bios cho phép tôi chọn nó, hiển thị menu syslinux (Tôi đã flash islin archlinux USB dính với dd) và nó bắt đầu tải, nhưng không thành công với Chờ 30 giây cho thiết bị / dev / đĩa / by-nhãn / ARCH_201903 ... sd 2: 0: 0: 0 [sda] Giả sử bộ nhớ cache của ổ đĩa: ghi qua print_Vq_error: Lỗi I / O, dev sda, sector 0 Lỗi I / O bộ đệm trên dev sda, khối logic 0, trang async đọc ERROR: '/ dev / đĩa / by-nhãn / ARCH_201903' thiết bị không hiển thị sau 30 giây 2) trong uefi nó thất bại
Ashark

1

Nếu bạn muốn sử dụng hình ảnh của một liveusb, thay vì một thanh USB vật lý, bạn có thể làm điều đó với

$ kvm -usbdevice disk:/path/to/liveusb.img -boot menu=on ...

Nếu không có "-boot menu = on", kvm sẽ luôn thích ổ cứng mà bạn đặt với "-drive" hoặc "-hd [a | b | c | d]".

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.