Configurando disquete e pendrive para boot sem suporte na BIOS

Neste artigo descreverei como você poderá instalar, carregar e utilizar um sistema operacional residente em um pendrive, em máquinas sem suporte a boot por este dispositivo na BIOS, utilizando para tanto um simples, "velho e bom" disquete.

[ Hits: 48.032 ]

Por: Stefano Fontes em 02/02/2009


Criando o disquete



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".

Página anterior     Próxima página

Páginas do artigo
   1. Configurações utilizadas e pré-requisitos
   2. Entendendo o processo
   3. Preparando o terreno
   4. Construindo o initrd
   5. Criando o disquete
   6. Finalmente... o boot!
Outros artigos deste autor

Provendo dados em um servidor PostgreSQL através do Apache e PHP

Criando um repositório criptografado de dados com Cryptsetup (dm-crypt) sem (re)particionamento do HD

Leitura recomendada

Instalando drivers no Linux: Placa wireless Atheros para notebooks

Instalação de impressora multifuncional HP no Linux

Leitor de impressão digital Futronic FS80 no Linux

Guia de instalação de placas de vídeo ATI no SuSE

Webcam Genius no Linux - Slackware

  
Comentários
[1] Comentário enviado por Mauro Delazeri em 03/02/2009 - 01:34h

Caro amigo schaf seu artigo esta meio longo mas muito bom, parabens!

[2] Comentário enviado por schaf em 03/02/2009 - 10:50h

Em primeiro lugar, quero agradecer ao site pela publicação e ao amigo Mauro acima pelo elogio.
Gostaria de acrescentar ao artigo o seguinte:
Se após algum tempo você verificar que o pen-drive apresenta problemas de falta de espaço em disco (não consegue abrir arquivos para edição, mensagens "No space left on device" ou coisa parecida), verifique:
- Se há espaço livre disponível no pen-drive, com o comando:

# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 954M 954M 0 100% /

No caso acima, podemos observar que o espaço no pen-drive está completamente utilizado.
Se isto ocorrer, verifique o tamanho do seguinte arquivo:

# du -sh /var/log/debug
287M /var/log/debug

Esvazie então o arquivo para liberar espaço em disco:

# echo > /var/log/debug

Para tornar esta solução "definitiva", acrescente a seguinte linha ao crontab:

# crontab -e
*/15 * * * * echo > /var/log/debug

Isto irá esvaziar o arquivo de 15 em 15 minutos. Maiores informações na documentação do crontab.
Para liberar espaço, você poderá também desinstalar programas desnecessários e/ou esvaziar os diretórios /usr/share/doc ou /usr/doc, através dos comandos (atenção pois a exclusão é DEFINITIVA):

# rm -rf /usr/doc/*
# rm -rf /usr/share/doc/*

Dependendo do caso, a documentação ali existente raramente será utilizada (NÃO se trata das páginas man, as quais você pooderá utilizar normalmente, mesmo após a remoção acima).
Até a próxima!

[3] Comentário enviado por stremer em 04/02/2009 - 11:41h

cara...
eu tinha um notebook "véio"... não tenho mais (bati rolo) mas pesquisei sobre esse assunto e até sabia fazer isso com ele, pois o mesmo não dava boot pelo pen drive, mas tinha um hd de somente 4gb que estava "meia boca" então eu pensei em fazer todo esse processo. Foi complicado achar toda a documentação (me levou alguns dias) e esse artigo seu esta FANTASTICO... se ele existisse na epoca era questão de minutos... vai ajudar muito as pessoas que precisarem de algo parecido...
e acrescentando que o boot não necessariamente precisa ser do disquete, mas pode ser do próprio hd ou ainda de um drive de cd (desde que prepare tudo e depois queime o cd bonitinho) vai depender mesmo da placa mãe...
Parabéns novamente!!!

[4] Comentário enviado por galberojunior em 19/05/2009 - 08:29h

Existe alguma indicação de como proceder para distros baseadas em Debian?
E parabéns pelo tópico!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts