Neste momento, vamos preparar um pendrive para funcionar como se fosse um Zip Drive.
Ele será preparado para instalação de um
Debian 7 com imagem
Netinstall. Para a preparação, você precisa de um
GNU/Linux qualquer que esteja funcionando. Acredito que até com um LiveCD seja possível fazer a preparação.
* Aviso: este tutorial tem passos que se forem seguidos errados, podem destruir o sistema instalado. Cuidado e atenção!
mkdiskimage
O utilitário
mkdiskimage, no Debian, faz parte do pacote "syslinux-common", é um script
Perl, que tem como função criar uma imagem que simula um disco rígido em branco no padrão DOS. Esse script facilita a criação da emulação de Zip Drive, pois possui opções para isso.
# dpkg -S /usr/bin/mkdiskimage
syslinux-common: /usr/bin/mkdiskimage
# file -i /usr/bin/mkdiskimage
/usr/bin/mkdiskimage: text/x-perl; charset=us-ascii
A sintaxe de mkdiskimage, é:
mkdiskimage [ -doFMz4 ] [ -i id ] file|device cyl head sect
A imagem pode ser criada em arquivo (file) ou diretamente no dispositivo (device), e terá o tamanho definido pelos parâmetros C-H-S. No tutorial mostro como criar diretamente no pendrive, por ser mais fácil. Se quiser criar em arquivo, use um dispositivo
/dev/loopx para montar e depois copie com o comando
dd para o dispositivo (* Isso não foi testado!).
Parâmetros opcionais são de mkdiskimage:
- -4 :: Usa a quarta entrada da tabela de partições. Padrão para criar discos do tipo Zip Drive. Exemplo: /dev/sdx4.
- -z :: Força a geometria de um Zip Drive. Significa "heads=64" e "sect=32".
- -i ID :: Define um identificador de tipo de partição na tabela da MBR.
- -d :: Adiciona um cabeçalho DOSEMU.
- -M :: O argumento para cilindros, dado em MB.
- -F :: Define a formatação em FAT32. Para Zip Driver, o padrão parece ser automaticamente definido como FAT16. Não altere isso!
Exemplo para um pen drive Kingston de 1 GB ou 981 MiB:
# mkdiskimage -4 /dev/sdb 900 64 32
# fdisk -l /dev/sdb
Disk /dev/sdb: 1007 MB, 1007681536 bytes
64 heads, 32 sectors/track, 961 cylinders, total 1968128 sectors
Units = setores of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x63047827
Dispositivo Boot Start End Blocks Id System
/dev/sdb4 * 32 1843199 921584 6 FAT16
Observe que, automaticamente, foi criada uma partição em
/dev/sdb4 que ocupou todo o espaço do dispositivo baseado no layout C-H-S de 960/64/32, especificado pelo usuário. O código hexadecimal do tipo de dispositivo é 0x06 - FAT16 padrão MS-DOS 4.0 (conforme figura 2).
* Dica: se quiser, pode deixar o argumento de número de cilindros para ser preenchido automaticamente. Basta informar o valor como zero (0) e o sistema usará todo o espaço do pendrive. Em um pendrive de 2 GB, isso funcionou muito bem!
# mkdiskimage -4 /dev/sdx 0 64 32
SYSLINUX
A técnica consiste em instalar um
bootloader chamado SYSLINUX, baseado em sistemas de arquivos DOS (FAT16 ou FAT32). Esse sistema facilita bastante a instalação de uma distribuição GNU/Linux e está presente nas mídias de instalação de muitas distribuições.
A instalação de SYSLINUX coloca um código de arranque na MBR e um arquivo chamado "ldlinux.sys" na raiz do dispositivo. Isso permite dar sequência ao processo de arranque.
O arquivo "syslinux.cfg" indicará um kernel (vmlinuz) e um "initrd.gz", igual ao modo que
LILO ou
GRUB fazem. Observe que os nomes de arquivos aqui são do tipo DOS (8.3) e são
case insensitive, pois estamos em FAT16 (lembre-se disso!).
* Atenção: se durante o processo de boot o usuário teclar
Shift ou
Alt, um prompt no estilo LILO - boot: será apresentado. Isso permite passagem de parâmetros para o kernel sem editar "syslinux.cfg". Mas, esses argumentos podem ser inseridos no arquivo, de modo permanente do mesmo modo que opções "append" do LILO.
A preparação de um disco com SYSLINUX é tão fácil quanto parece, basta preparar um disco com formatação do tipo DOS (FAT16 ou FAT32) e executar a instalação de SYSLINUX.
A sintaxe variará um pouco, dependendo do sistema hospedeiro (DOS, XP ou GNU/Linux), então, consulte o manual para os detalhes. No Debian, o pacote se chama "syslinux". Antes de instalar SYSLINUX é preciso montar o dispositivo ou a imagem em arquivo.
* Atenção: observe como seu pendrive é identificado no sistema. Se errar o nome do dispositivo neste ponto, pode destruir uma instalação!
# mount -t vfat -o rw /dev/sdx4 /mnt/pen
# syslinux --install /dev/sdx4
# ls -l /mnt/pen #Confirme a presença do arquivo ldlinux.sys
HD-MEDIA
O Debian disponibiliza uma imagem de instalação para uso em pendrives, netbooks e partições de recuperação (Rescue).
Como neste artigo estamos utilizando uma versão testing, o endereço e o nome da imagem pode mudar. Procure no
Google por "Debian HD-MEDIA", para obter um endereço atualizado.
Para uma instalação modo texto, pegue os arquivos "initrd.gz" e "vmlinuz". Para uma instalação modo gráfico, pegue esses mesmos arquivos na pasta "gtk". Obviamente, maiores e mais pesados. Copie para o dispositivo em
/mnt/pen.
O arquivo "initrd.gz" pode ser descompactado e copiado como
initrd. Neste caso, basta mudar o nome quando necessário. Eu mantenho como "initrd.gz" para evitar dúvidas!
Netinstall
As imagens Netinstall do Debian permitem instalação de um sistema básico (ideal para servidores sem interface gráfica) a partir de pequenas imagens (até 252 MB). A instalação é basicamente via rede e é necessário acesso à Internet ou um repositório local.
A imagem Netinstall pode ser obtida em:
Para arquitetura X86_32, pode ser obtida aqui:
Copie para o
/mnt/pen como "wheezy.iso", pois estamos em FAT16.
syslinux.cfg
Prepare o arquivo "syslinux.cfg" do seguinte modo com seu editor de textos preferido:
#======================
default Netinstall
timeout 200
prompt 1
LABEL Netisntall
KERNEL vmlinuz
APPEND initrd=initrd.gz
#======================
Seu diretório deve ter os seguintes arquivos:
# ls -lh
total 261M
-rwxr-xr-x 1 root root 6,0M Abr 17 11:24 initrd.gz
-r-xr-xr-x 1 root root 32K Abr 17 11:23 ldlinux.sys
-rwxr-xr-x 1 root root 217 Abr 17 12:22 syslinux.cfg
-rwxr-xr-x 1 root root 2,4M Abr 17 11:24 vmlinuz
-rwxr-xr-x 1 root root 252M Abr 17 11:24 wheeze.iso
Desmonte o pendrive e configure a BIOS para o dispositivo de inicialização do tipo USB-Zip e teste. Aguarde a continuação deste artigo para automatizar a instalação do
Debian Wheezy.
Referências