การบูตอิมเมจดิสก์ดิบใน QEMU


25

ฉันมีไฟล์อิมเมจจากที่นี่ ; หน้านั้นบอกว่าฉันสามารถบูตอิมเมจนี้ด้วย QEMU และคำสั่งต่อไปนี้:

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

ที่ให้ข้อความ:

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.

ตัวจำลองโหลด แต่ PilOS ล่มซึ่งหมายความว่าฉันทำอะไรผิด:

(อาจเป็นเพราะ PilOS ต้องการเขียนบล็อก 0 แต่ไม่สามารถทำได้)

rawอาร์กิวเมนต์บรรทัดคำสั่งเท่าที่ผมสามารถบอกได้หมายถึงการถูกส่งผ่านไปเช่นนี้

$ 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

สิ่งนั้นล้มเหลว (ฉันคิดว่า) เพราะอุปกรณ์บูตของฉันเปิดใช้/dev/sdaงานบัส 0 ดังนั้นสิ่งใดสิ่งหนึ่งต่อไปนี้ควรทำงานตามหน้า man ของ QEMU (แต่ไม่ใช่):

$ 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

bus=9โต้แย้งว่า-driveควรจะยอมรับทั้งถูกตีความเป็นชื่อไฟล์หรือละเว้นสมบูรณ์

ฉันจะบูตรูปภาพอิมเมจดังกล่าวใน QEMU ได้อย่างไร


นี่คือ Ubuntu 15.10 ที่รันอยู่:

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

ข้อมูลเกี่ยวกับภาพ:

$ 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

คำตอบ:


38

-driveตัวเลือกใช้พารามิเตอร์ที่มีลักษณะเช่นนี้

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

... คุณต้องใช้เครื่องหมายจุลภาคระหว่าง "sub" -options ไม่ใช่ช่องว่าง

ตัวอย่างเช่นต่อไปนี้เป็นสิ่งที่ฉันทดสอบเพื่อบูตซีดี Debian Installer:

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

คุณจะระบุตัวเลือก raw สำหรับฟลอปปี้ไดรฟ์qemu-system-x86_64 -fda os.flpได้อย่างไรเพื่อกำจัดคำเตือน
กระตือรือร้น

1
@enthusiasticgeek อยู่ในหน้าคน - ค้นหา "แทนที่จะเป็น -fda, -fdb คุณสามารถใช้:" ให้-drive file=file,index=0,if=floppy... เพื่อที่คุณจะสามารถเพิ่มformat=rawเข้าไปได้
derobert

เข้าใจแล้ว qemu-system-x86_64 -drive format=raw,file=os.flp,index=0,if=floppyทำงาน! ขอบคุณ
กระตือรือร้น

2
@ Mr.Hyde คิดว่ามันใช้ได้ทั้งฉันและ OP มันแปลกมาก! บรรทัดคำสั่งแบบเต็มคืออะไร อาจเป็นการดีที่สุดที่จะถามคำถามใหม่คุณสามารถอ้างอิงคำถามนี้กับคำถามของคุณได้
Derobert

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