Ładowanie surowego obrazu dysku w QEMU


25

Mam stąd plik obrazu dysku ; ta strona mówi, że mogę uruchomić ten obraz za pomocą QEMU i następującej komendy:

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

To daje komunikat:

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.

Emulator się ładuje, ale PilOS ulega awarii, co oznacza, że ​​zrobiłem coś złego:

(prawdopodobnie dlatego, że PilOS chce pisać do bloku 0, ale nie może)

O rawile mi wiadomo, argument wiersza poleceń powinien być przekazywany w następujący sposób:

$ 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

To się nie powiedzie (myślę), ponieważ moje urządzenie rozruchowe jest włączone /dev/sda, magistrala 0, więc jedno z poniższych powinno działać zgodnie ze stroną podręcznika QEMU (ale nie działa):

$ 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=9Argument, że -drivenależy przyjąć albo jest interpretowany jako nazwa pliku, lub całkowicie ignorowane.

Jak poprawnie uruchomić taki nieprzetworzony obraz w QEMU?


To jest Ubuntu 15.10, działa:

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

Dane o obrazie:

$ 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

Odpowiedzi:


38

-driveOpcja wymaga parametrów, które wyglądają tak:

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

... musisz użyć przecinków między jego opcjami „pod”, a nie spacjami.

Na przykład tutaj przetestowałem, aby uruchomić dysk instalacyjny CD Debiana:

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

w jaki sposób określisz opcję raw dla stacji dyskietek poniżej, qemu-system-x86_64 -fda os.flpaby pozbyć się ostrzeżenia?
entuzjastyczny

1
@enthusiasticgeek znajduje się na stronie man - wyszukaj „Zamiast -fda, -fdb możesz użyć:” daje -drive file=file,index=0,if=floppy... więc powinieneś być w stanie to dodać format=raw.
derobert

ok, rozumiem. qemu-system-x86_64 -drive format=raw,file=os.flp,index=0,if=floppypracował! Dzięki.
entuzjastyczny

2
@ Mr.Hyde, biorąc pod uwagę, że zadziałało to zarówno dla mnie, jak i dla OP, to dziwne! Jaki jest pełny wiersz poleceń? Może najlepiej zadać nowe pytanie, możesz odwołać się do tego pytania.
derobert,

1
@ Mr.Hyde Nie ma tu -drivekłótni, więc wydaje się, że jest to inne pytanie. Zaproponuj zadać własne pytanie.
derobert,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.