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: 46.327 ]

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

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

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

Leitura recomendada

Overclock em placas de vídeo GeForce

Linux, 100% compatível!

Instalando a impressora HP D1460 (série D1400) no Linux

Configurando a placa de som C-MEDIA (CM8738) no Slackware

Chipset Atheros: Reconhecendo e configurando placas wireless na mão

  
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
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts