Inicializar o disco partiotionless com o syslinux

4

Um sistema de arquivos pode ser configurado para abranger um disco completo, omitindo qualquer tabela de partição. Observe intencionalmente que o comando para fazer isso não usa /dev/sda1 , mas sim o dispositivo bruto não particionado.

mkfs.btrfs /dev/sda

A ideia é mencionada no artigo da Arch Linux Wiki sobre o btrfs . Eu tentei isso em uma máquina virtual usando um sistema de arquivos btrfs como armazenamento apenas. Pode até mesmo ser inicializado usando o grub, seguindo a instrução no wiki . ext3, ext4 e jfs também funcionam dessa maneira. Eu só testei estes, mas a maioria dos sistemas de arquivos colocam o primeiro bloco com um offset e, assim, deixam espaço suficiente para um registro de inicialização.

Agora eu gostaria de usar o syslinux em vez do grub. O já mencionado wiki já indica que isso faz um posicionamento dedicado do ldlinux.sys necessário, mas não inclui instruções para resolver isso. Eu suspeito que o usual arquivo mbr.bin também não seja apropriado, porque normalmente é responsável por ler a tabela de partições e encontrar uma partição inicializável ativa. Agora, não há partição a ser encontrada.

Alguém tem alguma experiência com o uso do syslinux com um disco sem partição? Um disco sem partição pode ser inicializado usando o syslinux?

    
por XZS 03.12.2013 / 14:52

1 resposta

4

MBR / BIOS

Os comandos emitidos para instalar o syslinux em um disco particionado são normalmente dois.

extlinux --install /boot/syslinux

A primeira linha instala um registro de inicialização de volume, para ser colocado fixo no início da partição. É responsável por carregar os arquivos do gerenciador de inicialização do sistema de arquivos. Eles normalmente residem em /boot/syslinux .

dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sda

A segunda linha instala o registro mestre de inicialização, fixado no início do disco. Sua tarefa é ler a tabela de partições e encontrar o registro de inicialização de volume acima mencionado em uma partição marcada como ativa.

No caso em questão, partição e disco são iguais, portanto dd sobrescreve os dados que o extlinux criou. Mas um registro mestre de inicialização não é necessário para começar. Não há tabela de partições para ler. Portanto, a solução mágica é simplesmente deixar de fora a linha dd .

Usar um sistema de arquivos sem uma tabela de partição, portanto, não apenas economiza espaço, mas também uma etapa no processo de inicialização.

GPT / EFI

Com o EFI, isso só pode ser usado com inicialização herdada, que lerá o MBR / VBR e inicializará de acordo. Ao fazê-lo, a maioria dos benefícios da EFI são perdidos.

Usando a inicialização EFI com o GPT, é sempre necessária uma partição do sistema FAT32 EFI para ler um executável, que pode ser um shell EFI ou o kernel para inicializar. Portanto, em uma instalação moderna, o particionamento é inevitável e inerente. Como a EFI age como um carregador de inicialização, também não há nenhuma etapa a ser salva como no MBR.

    
por 04.12.2013 / 00:31