Nesta etapa iremos descrever detalhadamente o processo de criação do disquete de boot.
Verificações iniciais
Uma vez que o drive em disquete é um dispositivo que está sendo progressivamente colocado em desuso em máquinas mais recentes, sugiro em primeiro lugar que você verifique se o suporte ao disquete está habilitado no Kernel, através do seguinte comando:
# dmesg | grep fd0
Floppy drive(s): fd0 is 1.44M
Se você não obtiver a saída acima, verifique:
- Se há drive de disquete na máquina, e se está corretamente instalado, inclusive quanto ao cabo flat (parece evidente, mas pode ocorrer o contrário);
- Se as opções "floppy disk support", "floppy drive support" etc. estão habilitadas no setup da máquina;
- Se o suporte ao drive de disquete existe como módulo, e se o mesmo está carregado - algumas distribuições não habilitam o floppy disk como padrão no Kernel, nem o carregamento do módulo em arquivos de inicialização do sistema operacional, dependendo do tipo de instalação (já me aconteceu ao instalar via FTP); ou pode ser que o drive não estava instalado ou não estava habilitado no setup, e portanto não foi detectado na instalação do S.O. em sua máquina.
Verifique então se o módulo floppy está carregado, como abaixo:
# lsmod | grep -i floppy
floppy 60304 0
Se não estiver carregado, ou está embutido no Kernel (caso em que o comando dmesg acima deverá exibir a saída especificada), ou não foi compilado (ver mais abaixo) ou foi compilado como módulo - verifique se ele existe no diretório /lib/modules:
# find /lib/modules/X.Y.Z -iname floppy* (onde X.Y.Z é a versão do seu Kernel)
/lib/modules/X.Y.Z/kernel/drivers/block/floppy.o
Se o módulo existir e não estiver carregado, faça-o agora:
# modprobe floppy
Se não houver nenhuma mensagem de erro, emita novamente o comando dmesg e ele deverá apresentar a saída:
# dmesg | grep fd0
Floppy drive(s): fd0 is 1.44M
Finalmente, se nenhuma das opções acima funcionar, verifique o arquivo /boot/config de seu Kernel:
# grep -i dev_fd /boot/config
CONFIG_BLK_DEV_FD=m (ou =y)
Se, ao contrário da saída acima, o comando grep apresentar:
# CONFIG_BLK_DEV_FD is not set
Significa que o suporte ao drive de disquete não foi compilado com seu Kernel, e portanto você terá que habilitar esta opção e recompilá-lo.
Preparando o disquete
Estando em funcionamento o drive de disquete, formate um disquete 1.44 comum com sistema de arquivos ext2:
# mke2fs /dev/fd0
Monte o disquete:
# mount /mnt/floppy (ou comando equivalente em sua distribuição)
Crie os seguintes diretórios:
# mkdir /mnt/floppy/boot
# mkdir /mnt/floppy/dev
# mkdir /mnt/floppy/etc
Copie os seguintes arquivos para o disquete:
# cp /usr/src/linux-X.Y.Z/arch/i386/boot/bzImage /mnt/floppy/boot/vmlinuz
# cp /usr/src/linux-X.Y.Z/.config /mnt/floppy/boot/config
# cp /boot/initrd.gz /mnt/floppy/boot
Crie os seguintes arquivos de dispositivos no disquete:
# mknod -m 666 /mnt/floppy/dev/fd0 b 2 0
# mknod -m 666 /mnt/floppy/dev/null c 1 3
Crie o seguinte arquivo
lilo.conf no disquete com o editor de sua preferência:
# vi /mnt/floppy/etc/lilo.conf.floppy
boot = /dev/fd0
backup = /dev/null
compact
image = /boot/vmlinuz
initrd = /boot/initrd.gz
root = /dev/fd0
read-only
Instale o LILO no disquete:
# lilo -v -C /etc/lilo.conf.floppy -r /mnt/floppy
Se tudo der certo você verá uma mensagem similar a seguinte:
LILO version 22.5.9, Copyright (C) 1992-1998 Werner Almesberger
Development beyond version 21 Copyright (C) 1999-2004 John Coffman
Released 08-Apr-2004 and compiled at 00:18:50 on May 21 2004.
Warning: LBA32 addressing assumed
Warning: COMPACT may conflict with LBA32 on some systems
Reading boot sector from /dev/fd0
Using MENU secondary loader
Calling map_insert_data
Boot image: /boot/vmlinuz
Mapping RAM disk /boot/initrd.gz
Added vmlinuz *
Writing boot sector.
=====================================================
Se tudo deu certo, desmonte agora o disquete para poder removê-lo e testá-lo na outra máquina:
# umount /mnt/floppy (ou comando equivalente em sua distribuição)
Desta forma o disquete estará pronto para ser utilizado.
Se estiver tendo dificuldades com o disquete na instalação do lilo, verifique:
- O disquete pode estar com a mídia comprometida, p. ex., se já foi formatado várias vezes;
- O disquete pode estar protegido contra gravação; feche a abertura de proteção;
- Se você está como root (recomendado) ou um usuário com permissão para gravar no disquete;
- Se o dispositivo /dev/fd0 possui permissões de leitura e escrita - sugiro 666;
- Se o arquivo lilo.conf.floppy do disquete de boot está correto, conforme descrito acima;
- Se você emitiu o comando lilo com as opções corretas conforme descrito acima;
- Seu drive de disquete pode estar com a cabeça suja; limpe-o com um disquete de limpeza;
- Seu drive de disquete pode estar velho e/ou com a cabeça desalinhada, neste caso subtitua-o.
Resolvidos os problemas, vamos então aos "finalmentes".