qemu는 리눅스 커널을 실행할 수 없습니다

qemu는 리눅스 커널을 실행할 수 없습니다

나는 보았다이것질문과 거의 똑같은 작업을 수행했지만 구성에서 initrd를 활성화하여 임시 루트 파일 시스템을 사용하고 다른 수정 사항은 없었지만 여전히 다음 오류가 발생합니다.

qemu -kernel linux-3.16.1/arch/x86/boot/bzImage

여기에 이미지 설명을 입력하세요.

이 오류의 원인이나 해결 방법에 대한 제안 사항이 있습니까?

답변1

시동 실패 이유는 위의 문제와 동일합니다 -다른 작업을 수행하지 않고 커널을 시작하는 것만으로는 별 효과가 없습니다.. 디스크를 제공해야 합니다. 또는 initrd 이미지. 그러나 단지 initrd를 활성화한다고 해서 마법처럼 initrd 이미지가 제공되는 것은 아닙니다. 다음과 같이 하나를 준비하여 qemu에 제공해야 합니다.

qemu-system-i386 -kernel <your kernel> -initrd <your initrd image>

디스크도 제공해야 할 가능성이 높습니다.

qemu용 디스크를 만들고 사용하는 방법은 12가지가 있으므로 여기서는 아주 간단한 방법만 설명하겠습니다.여기더 알아보기).

먼저 다음과 같은 파일을 만듭니다.

qemu-img create -f raw mydisk.img 1G

그러면 1GiB 디스크가 생성됩니다.

다음과 같이 사용할 수 있습니다.

qemu <other options> -hda mydisk.img

initrd가 디스크에 무언가(예: 사용 가능한 시스템)를 요구하는 경우 먼저 이를 localhost에 마운트하여 채워야 합니다. 예를 들면 다음과 같습니다.

losetup /dev/loop0 mydisk.img

/dev/loop0다른 블록 장치처럼 처리 할 수 있습니다 . 즉, fdisk해당 장치에서 실행할 수 있습니다. 파티션과 파일 시스템을 생성한 후 이를 마운트하고 필요한 것을 넣을 수 있습니다.

또 다른 방법은 마운팅 ISO 이미지를 사용하여 이를 CD-ROM으로 첨부하는 것입니다.

qemu <other options> -hda mydisk.img -hdb myiso.img -boot d

그러면 필요에 따라 디스크를 수정할 수 있는 가상 CD-ROM의 시스템이 부팅됩니다.

관련 정보