deixe-me tentar responder a segunda pergunta sobre como fazer um sistema pequeno. já que estamos construindo em x86, eu acho que o que se pretende é fazer um sistema para inicializar uma unidade flash, ao invés de gravar em chips embutidos para o qual é uma história muito diferente.
considere a opção de descartar imagens de disco e usar um cpio initramfs. então inicialize assim.
qemu-system-i386 -kernel vmlinuz -initrd root.cpio.gz
Eu amo isso porque temos mais flexibilidade e não precisa ser confundido com os locais dos discos.
Eu também sugiro grub4dos o bootloader. apesar do "dos" no nome, ele pode ser instalado a partir dos kernels linux e boot linux. a instalação é tão simples quanto escrever um mbr e copiar um arquivo 213k para qualquer partição . e o grub4dos reconhece muitos sistemas de arquivos.
Além disso, na sua configuração parece que você não configurou o grub corretamente, pois há um console rescue mostrado. mesmo que você deva digitar kernel /boot/kernel_name
com um "root=" antes de boot
.
e na minha máquina o kernel convidado do qemu reconhece a imagem do disco como "/ dev / sda" em vez de "/ dev / hda".