Instalando o Debian através de um Pendrive

A motivação:

Um dia desses, um amigo me pediu ajuda, pois precisava instalar um servidor mas o computador utilizado possuia um drive de CDROM SATA e o CD do debian disponível estava tendo problemas em reconhecê-lo. A solução: dar o boot através de um pendrive.

Material necessário:

Você vai precisar de um pendrive de pelo menos 256Mb (ou com pelo menos uns 180Mb livres), uma imagem ISO do Debian que caiba no pendrive, alguns arquivos baixados de um mirror do projeto Debian e o utilitário SysLinux. Você pode utilizar o pendrive para outras funções normalmente.

1) A imagem de CD ISO.

A imagem ISO pode ser baixada do site do http://www.debian.org (ou de um de seus mirrors. Eu costumo utilizar o mirror da Universidade de SP), via FTP, HTTP, Torrent ou JigDo. Caso você já possua um CD gravado, a imagem pode ser gerada através desse CD. Para fins de economia de espaço (principalmente se você possui um pendrive pequeno de 256Mb ou 512Mb), utilize uma imagem netinst, que possui em média 150Mb.

Para gerar a imagem a partir de um CD:

No linux:
dd if=/dev/hdd of=Debian.iso


Onde /dev/hdd é o dispositivo que representa seu drive de CD/DVD.

No Windows:
Utilize o programa LC ISO Creator, disponível em http://www.lucersoft.com/freeware.php. É gratuito, pequeno (apenas 52Kb) e funciona perfeitamente.

Independente de baixar ou gerar a imagem ISO, uma vez que ela esteja disponível, copie-a para a raiz do pendrive.

2)Arquivos de Inicialização e Instalador

Entre no site http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/ e baixe os três arquivos disponíveis (boot.img.gz, initrd.gz, vmlinuz) e copie-os para a raiz do pendrive.

3) SysLinux (Bootloader)

Agora nós precisamos do SysLinux, que será o Bootloader utilizado no nosso pendrive de boot.

No Linux:
Apesar dos fontes estarem disponíveis para compilação, o pacote já esá presente na maioria das distribuições. Sendo assim, a forma mais prática é instalálo através do gerenciador de pacotes de sua ditribuição (no Debian e provavelmente em seus descendentes como Ubuntu e Kurumin basta um "aptitude install syslinux". Com o programa instalado, descubra qual o dispositivo associado ao seu pendrive - dev/sdX - normalmente é /dev/sda ou /dev/sdb. Você pode descobrir isso vendo os logs ou através de comandos como dmesg e mount. Após descobrir qual o dispositivo do pendrive (e ter certeza de que é o dispositivo certo !!!) basta desmontar o dispositivo e executar o seguinte comando:

syslinux /dev/sda

No Windows:
Entre no site http://www.kernel.org/pub/linux/utils/boot/syslinux/ e baixe o arquivo ZIP com a versão
mais atual. Na época da escrita deste artigo, a versão era a syslinux-3.72.zip. Abra o arquivo, localize o diretório win32 e extraia o arquivo syslinux.exe que está dentro desse diretório (para facilitar, você pode extrair para o diretório do windows, normalmente c:\windows). Agora abra um Prompt de Comando, entre no diretório onde você salvou o arquivo syslinux.exe e execute o seguinte comando:

syslinux X:

Onde X: é a letra de unidade associada ao seu pendrive.

Para finalizar, basta criar o arquivo de configuração. Crie um arquivo com o conteúdo abaixo e coloque-o na raiz do pendrive com o nome de syslinux.cfg.

default vmlinuz
append initrd=initrd.gz

Testando:

Para testar, basta deixar o pendrive conectado na porta USB e reiniciar o computador. Dependendo da sua BIOS, talvez seja necessário pressionar uma tecla durante a inicialização (normalmente F8 ou F11) ou alguma configuração na BIOS para que a máquina inicializada pela porta USB.

Atualização (28/07/2010):
Recentemente tentei acessar os arquivos de imagem (descritos no passo 2) e não consegui (Erro 404 - Arquivo não encontrado). Dei uma olhadinha no site e o diretório http://ftp.nl.debian.org/debian/dists/etch/ foi removido, ficando apenas o http://ftp.nl.debian.org/debian/dists/lenny/ em seu lugar. Fora isso, o restante da estrutura parece igual. Assim que tiver um tempinho, eu confiro se mudou mais alguma coisa e atualizo o tutorial (ou crio outro). Nesse meio tempo, já atualizei o link lá em cima.

12 comentários:

Junior disse...

Essa Parte de criar um arquivo syslinux.cfg com esse comandos que vc passou nao funciona...

Aqui aparece isso> Could not find kernel image: vmlinuz

Fabiano Pires disse...

Bem, eu já recebi feedback de várias pessoas dizendo que funcionou perfeitamente para elas. Eu mesmo costumo ir testando os passos conforme vou escrevendo. Forneça mais algumas informações:
1) Você está criando o pendrive no Linux ou no Windows
2) Em qual passo você parou? Na execução do comando syslinux ou no boot
3) Etc.

Um abraço e volte sempre

Rafael disse...

Ou to tentando aqui mais sem sucesso eu acho que o problema está na hora de criar o arquivo syslinux, quando uso aquele comando syslinux "unidade:", ele não faz nada, tentei criar o arquivo syslinux.cfg com os comandos internos no bloco de notas pra ver se adiantava algo, ainda depois fui lá e coloquei o comando syslinux "unidade:" syslinux.cfg.
E não deu certo...

Fabiano disse...

O comando a ser executado é:

syslinux X:

onde X: é a unidade do pendrive. O arquivo syslinux.cfg deve ser copiado para dentro do pendrive, e ficar na raiz do mesmo (ou seja, não pode ficar dentro de nenhuma pasta/diretório).

Anônimo disse...

Estou tentando baixar os arquivos pra realizar o boot pelo pendrive mas, ao solicitar o download do "vmlinuz" carrega uma pagina com caracteres. Restante dos arquivso (boot.img.gz; initrd.gz)tudo ok.
Tem idéia do que pode ser?
Abraço

Fabiano Pires disse...

Fala Marizildo! Experimenta clicar com o botão direito do mouse e selecionar "Salvar Como".

Anônimo disse...

Da forma como falou,(salvar Como)funcionou! Vou montar e depois te conto os testes. Muito obrigado!

Silvio Romero disse...

Resposta para o Junior, qdo baixei o vmlinuz no windows ele salvou automaticamente com a extensão .txt, tirei a extensão renomeando o arquivo e funcionou...

Fabiano Pires disse...

Obrigado pela contribuição!

Anônimo disse...

Olá amigo. Testei esse metodo produzindo o pendrive de boot e funcionou perfeitamente. Instalação agil e bem versatil. So que tive um problema. Decidi fazer um HD bootavel exclusivamente pra inserir em algumas maquinas para instalar o sistema, ja que nem sempre tenho um USB disponivel nas maquinas que instalo. Segui exatamente o processo, exceto na parte do comando "syslinux" onde substitui o dispositivo que seria o pendrive pelo "/dev/sdb" que seria o hd onde eu iria efetuar o processo (ele era apenas um outro hd a parte do hd do sistema). Quando efetuo o boot por esse HD, acontece um erro dizendo que nao é possivel encontrar a ISO no disco.
Gostaria de saber se vc tentou processo semelhante e se conseguiu solucionar esse problema, caso ocorrido.

Mesmo assim, agradeço sua ajuda pois me adiantou em boa parte no meu trabalho de instalação. Fico no aguardo de respostas. Obrigado.

Unknown disse...

usei esse link para o debian squeeze http://ftp.nl.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/hd-media/ mas ainda não testei o método vou testar agora

Anônimo disse...

Eu estou tendo o mesmo problema que o Junior, talvez ele não tenha especificado, mas isso está aparecendo depois de reiniciar o pc com o pendrive plugado. Abaixo da mensagem "Could not find kernel image: vmlinuz" fica um terminal aberto "boot: " e pra qualquer coisa que eu escreva ele repete a mensagem.
Estou procedendo via Windows e tentei usar o SysLinux mais atual, 6.01, mas ele não possui o executável que você cita, então eu fui nos arquivos do site e busquei a versão 3.72. Quanto ao resto, deu tudo certo, só nessa parte que eu paro.