Este é um tópico antigo, mas sinto sua dor. Eu tive cargas e cargas de problemas tentando fazer isso com o GRUB, e tive situações parecidas com várias máquinas se comportando de maneira diferente, dependendo de como o armazenamento é enumerado e passado para o grub.
O problema que você provavelmente está tendo (se é o mesmo que aconteceu comigo!) é que o estágio 2 está instalado na segunda partição, linux, junto com o kernel em / boot e quando o estágio 1 é carregado, pode encontre o estágio 2.
Consegui vencer o GRUB na submissão, eventualmente, por causa de um bug em um chroot, e ele era odioso, principalmente por causa da enumeração do dispositivo de disco passada pela BIOS (muita edição manual do grub.cfg). Uma solução muito mais simples é usar o extlinux. Aqui está o processo:
- Unidade flash de partição com MBR, primeira partição ~ 1GB e segunda, o resto ...
- Garantir que o sinalizador de inicialização esteja definido na primeira partição
- Formatar partições com FAT32 e outra coisa (eu uso o BTRFS)
- Instale o extlinux no setor de inicialização,
dd if=/usr/share/extlinux/mbr.bin of=/dev/sdb bs=440 count=1 conv=sync
(o iirc debian usa/usr/lib/syslinus/mbr/mbr.bin
) - Monte a partição FAT32 (por exemplo, para / media / disk) e faça
extlinux --install /media/disk
- Copiar em bibliotecas extlinux,
cp /usr/share/extlinux/{libcom32.c32,libutil.c32,menu.c32} /media/disk
- Copie em kernel / initramfs adequado para / media / disk
- Extraia seus rootfs linux preferidos para a outra partição (ou subvole se estiver usando o BTRFS) e edite
/etc/fstab
para montar sua partição FAT32 em / boot - Crie
/media/disk/extlinux.conf
, o meu parece com este extlinux.conf
Em seguida, tente arrancar - você deve estar longe! Algumas notas das minhas lutas:
- O BTRFS requer o uso de PARTUID no bootloader, você não consegue usar o UUID base da partição; não faço ideia do porquê
- Como estamos usando o MBR, esse não é um processo que se pode usar com o UEFI; um UEFI CSM é necessário
- Eu nunca precisei usar
altmbr.bin
, mas YMMV - Eu usei o ext4 para a primeira partição, mas ele deve funcionar bem com o FAT32
Ter o carregador de inicialização inteiro, além do kernel e do initramfs na primeira partição, torna isso muito fácil, e eu ainda não o vi falhar por qualquer motivo. Eu construí sistemas x86 incorporados em torno disso e parece ser completamente à prova de balas.