Khởi động một ảnh đĩa thô trong QEMU


25

Tôi có một tập tin hình ảnh đĩa từ đây ; trang đó nói rằng tôi có thể khởi động hình ảnh này bằng QEMU và lệnh sau:

$ qemu-system-x86_64  -m 4096  -ctrl-grab  -no-reboot  x86-64.img

Điều đó đưa ra một thông điệp:

WARNING: Image format was not specified for 'x86-64.img' and probing guessed raw.
     Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
     Specify the 'raw' format explicitly to remove the restrictions.

Trình giả lập tải, nhưng PilOS gặp sự cố, điều đó có nghĩa là tôi đã làm sai:

(có lẽ vì PilOS muốn viết vào khối 0 nhưng không thể)

Đối rawsố dòng lệnh, theo như tôi có thể nói, có nghĩa là được thông qua như thế này:

$ qemu-system-x86_64 -drive format=raw file=x86-64.img 
qemu-system-x86_64: -drive format=raw: drive with bus=0, unit=0 (index=0) exists

Điều đó không thành công (tôi nghĩ) vì thiết bị khởi động của tôi đang bật /dev/sda, bus 0, do đó, một trong những điều sau đây sẽ hoạt động theo trang người dùng của QEMU (nhưng không):

$ qemu-system-x86_64 -drive bus=9 format=raw file=x86-64.img 
qemu-system-x86_64: -drive bus=9: Could not open 'format=raw': No such file or directory
$ qemu-system-x86_64 -drive format=raw file=x86-64.img bus=9
qemu-system-x86_64: -drive format=raw: drive with bus=0, unit=0 (index=0) exists

Đối bus=9số -drivenên chấp nhận hoặc được hiểu là tên tệp hoặc hoàn toàn bị bỏ qua.

Làm thế nào để tôi khởi động đúng một hình ảnh thô như vậy trong QEMU?


Đây là Ubuntu 15.10, đang chạy:

QEMU emulator version 2.3.0 (Debian 1:2.3+dfsg-5ubuntu9.3), Copyright (c) 2003-2008 Fabrice Bellard

Dữ liệu về hình ảnh:

$ file x86-64.img 
x86-64.img: DOS/MBR boot sector; partition 1 : ID=0x83, active, start-CHS (0x0,1,1), end-CHS (0x82,246,62), startsector 62, 2006072 sectors; partition 2 : ID=0x82, start-CHS (0x83,0,1), end-CHS (0x15,246,62), startsector 2006134, 2006134 sectors

$ fdisk -lu x86-64.img 
Disk x86-64.img: 670 KiB, 686080 bytes, 1340 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device      Boot   Start     End Sectors   Size Id Type
x86-64.img1 *         62 2006133 2006072 979.5M 83 Linux
x86-64.img2      2006134 4012267 2006134 979.6M 82 Linux swap / Solaris

Câu trả lời:


38

Các -drivetùy chọn có thông số giống như thế này:

qemu-system-x86_64 -drive format=raw,file=x86-64.img 

... bạn cần sử dụng dấu phẩy giữa các mục "phụ" của nó, không phải dấu cách.

Ví dụ, đây là một cái tôi đã thử để khởi động CD Trình cài đặt Debian:

qemu-system-x86_64 -drive format=raw,media=cdrom,readonly,file=debian-8.2.0-amd64-DVD-1.iso 

Làm thế nào để bạn chỉ định tùy chọn thô cho ổ đĩa mềm sau đây qemu-system-x86_64 -fda os.flpđể thoát khỏi cảnh báo?
nhiệt tình

1
@enthusiasticgeek có trong trang man Tìm kiếm "Thay vì -fda, -fdb, bạn có thể sử dụng:" cho -drive file=file,index=0,if=floppy... vì vậy bạn sẽ có thể thêm format=rawvào đó.
derobert

OK đã nhận nó. qemu-system-x86_64 -drive format=raw,file=os.flp,index=0,if=floppyđã làm việc! Cảm ơn.
nhiệt tình

2
@ Mr.Hyde xem xét nó hoạt động cho cả tôi và OP, thật kỳ lạ! Dòng lệnh đầy đủ là gì? Có lẽ tốt nhất là hỏi một câu hỏi mới, bạn có thể tham khảo câu hỏi này trong câu hỏi của bạn.
derobert

1
@ Mr.Hyde Bạn không có -drivetranh luận ở đó, vì vậy đó dường như là một câu hỏi khác. Đề nghị bạn đặt câu hỏi của riêng bạn.
derobert
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.