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 에 있기 때문에 실패합니다 . 따라서 다음 중 하나가 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"옵션 사이에 쉼표를 사용해야합니다.

예를 들어, 다음은 데비안 설치 프로그램 CD를 부팅하기 위해 테스트 한 것입니다.

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

qemu-system-x86_64 -fda os.flp경고를 제거하기 위해 다음에서 플로피 드라이브의 원시 옵션을 어떻게 지정 합니까?
enthusiasticgeek

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일했다! 감사.
enthusiasticgeek

2
@ Mr.Hyde가 나와 OP 모두에서 효과가 있다고 생각하면 이상합니다! 전체 명령 줄은 무엇입니까? 새로운 질문을하는 것이 가장 좋을 수도 있습니다. 질문에서이 질문을 참조 할 수 있습니다.
derobert

1
@ Mr.Hyde 당신은 -drive거기 에 논쟁이 없기 때문에 그것은 다른 질문 인 것 같습니다. 당신은 당신의 자신의 질문을 제안합니다.
derobert
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.