qemu에서 시작할 때 Linux에서 드라이브를 인식하지 못함

qemu에서 시작할 때 Linux에서 드라이브를 인식하지 못함

qemu를 사용하여 Linux 커널, 램디스크, 드라이브를 부팅하려고 합니다.

qemu -initrd ramdisk.cpio.gz -kernel mylinux.i686 -m 1024 -append console=ttyS0,38400 -serial file:serial.out -hdd raw.img

부팅 시 /dev 아래에 드라이브가 표시되지 않습니다. 주요 목표는 내 추진력을 인정받는 것입니다. 더 많은 정보:

  • qemu-img를 통해 raw.img를 만들었습니다. 3GB이고 원시 형식입니다.
  • 다른 Linux 배포판인tintincore_3.5.1.iso를 통해 raw.img를 인식하고 마운트할 수 있습니다.
  • /dev/hdd는 mylinux 측에 존재하지 않으며 /dev/hd*도 존재하지 않습니다.
  • /sys/class/block 아래에는 드라이브가 커널에 의해 인식되었다고 믿을 수 있는 내용이 없습니다.
  • 램디스크에는 /init 및 기타 프로세스가 포함되어 있습니다. 지금은 이것이 내 루트 볼륨이라고 가정합니다.
  • 시스템은 udev를 사용합니다

저는 이 수준에서 Linux를 처음 접했습니다. 누군가가 OS 이벤트를 이해하는 데 도움을 줄 수 있기를 바랍니다. 내 가정은 /sys가 커널이 드라이브로 인식하는 것일 것이라는 것이었습니다. 그런 다음 udev는 커널 이벤트를 수신하고 드라이브 정보를 /dev 아래의 노드로 변환합니다. 옳은? 이 문제를 디버깅하기 위한 통찰력과 단계를 주시면 감사하겠습니다. 다시 말하지만, 목표는 드라이브에서 부팅하는 것이 아니라 드라이브를 인식(예: /dev 아래에 표시)하는 것입니다.

답변1

-hdd는 "Hard Disk Drive"가 아니라 "Hard Disk D" 또는 네 번째 하드 디스크(보조 슬레이브)를 나타냅니다.

첫 번째 하드 드라이브(기본 마스터)를 참조하려면 -hda를 사용해야 합니다.

답변2

더 많은 디버깅을 한 후에 Linux 부팅 메시지에 오류가 있음을 발견했습니다. 내가 사용하고 있던 커널은 다른 램디스크용으로 생성되었기 때문에 IDE 드라이버에 대한 잘못된 디렉토리를 찾고 있었습니다. 커널을 램디스크에 맞춰 정렬하면 드라이브가 인식됩니다. 이 문제의 범위를 좁힐 수 있었던 한 가지는 부팅 메시지를 보고 드라이브를 인식한다는 언급이 전혀 없는 것을 확인하는 것이었습니다. 초기 메시지는 대부분 하드웨어 감지에 관한 것입니다. 따라서 거기에 없으면 OS에서 인식되지 않습니다. 교훈을 얻었습니다. 도움과 제안에 감사드립니다.

관련 정보