Eu estava tentando executar o kernel kernel2.6.34 no qemu. Consegui obter a configuração initramfs e, em seguida, o processo de inicialização foi executado tentando switch_root
e montar os rootfs reais. O sistema de arquivos raiz é uma imagem raw do qemu com uma partição contendo um f3 ext3. No entanto, quando o processo de inicialização tenta montar /dev/sda1
, recebo um erro dizendo que não é um dispositivo de bloco.
Aqui estão os parâmetros do gerenciador de inicialização do qemu:
qemu-system-x86_64 -drive file=disk-img.raw,format=raw -kernel \
arch/x86/boot/bzImage -m 1024 -append "root=/dev/sda1"
Inspecionando a imagem de disco bruta com o fdisk como um dispositivo de loop na máquina host:
Disk /dev/loop0: 512 MiB, 536870912 bytes, 1048576 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: 0xb2dc7e32
Device Boot Start End Sectors Size Id Type
/dev/loop0p1 2048 1048575 1046528 511M 83 Linux
e no host eu posso montar com sucesso a partição /dev/loop0p1
como dispositivo de bloco com um ext3 fs.
Alguma sugestão sobre o que eu poderia estar perdendo?
Saída de erro:
mount -t ext3 /dev/sda1 /newroot
mount: mounting /dev/sda1 on /newroot failed: Block device required