Quarta-feira, 14.04.10

Multiboot de ISOs a partir de uma pen USB

Desde que voltei de Lisboa para casa dos meus pais que tenho tido mais tempo livre do que gostaria. Para o ocupar, só fazendo de conta que sou geek e/ou nerd. Só assim evito trepar às paredes, armado em Spiderman, para depois me atirar para o chão como um lutador de Wrestling.

Uma das coisas que tentei fazer foi colocar vários ISOs de diversas distribuições de GNU/Linux numa pendrive e fazer boot directamente de uma das imagens que escolhesse. O processo levou-me várias horas, sendo que a maioria do tempo foi a experimentar tutoriais e dicas que fui encontrando na net. Escusado será dizer que nenhum deles resultou na totalidade. Só depois de ter ido ao #grub, no Freenode, e de ter recebido ajuda de alguns utilizadores do canal é que fiquei com isto a funcionar como queria e devia.

Para conseguir fazer boot de diversos ISOs, utilizei o Kubuntu 9.10 (a distribuição que uso neste momento), uma pendrive de 8GB com duas partições FAT32 (não sei se funcionará com outro sistema de ficheiros, mas presumo que dê sem qualquer problema), os ISOs do Kubuntu 9.10, Debian 5.0 Businesscard e gNewSense Deltah 2.2, e o GRUB 1.97~beta4.

O primeiro passo é, claro, ter a pen ligada ao computador e as partições criadas. Depois, faz-se mount à partição onde se pretende instalar o GRUB e colocar os ISOs e, de seguida, instala-se o gestor de arranque nessa partição com o comando sudo grub-install --no-floppy --root-directory=/media/USBFolderName /dev/sdx.

Tenham atenção ao /dev/sdx. No meu caso, foi /dev/sdc; no vosso, pode muito bem ser diferente. Convém verificar qual o device da vossa pen. Se já tiverem feito mount a uma partição do dispositivo, basta um cat /etc/mtab para descobrirem qual é. E não se esqueçam que é melhor ter o GRUB instalado na MBR do dispositivo do que numa partição.

Também, tenham atenção ao --root-directory. Ele deve apontar para o mountpoint da partição da pen onde querem instalar os ficheiros do GRUB2. No meu caso, era --root-directory=/media/gnulinux/.

Depois de instalado o GRUB2, na partição vai aparecer-vos uma pasta chamada «boot». Dentro dela, está uma outra chamada «grub». Entrem em ambas e, na última, criem o ficheiro grub.cfg.

Atenção, tem mesmo que ser grub.cfg. Foi isto que me fez andar às voltas, porque a informação que encontrava na net dizia para criar o grub.conf. E conf != cfg. Se não fosse o pessoal do #grub, a esta hora ainda andava aqui às voltas só por causa deste pequeno e importante detalhe.

Agora que o grub.cfg está configurado, temos que decidir onde vamos colocar as imagens das distribuições. Eu preferi fazer assim, mas podem muito bem inserir o conteúdo no ficheiro primeiro e depois colocar as imagens na pen.

Para facilitar, criei uma pasta chamada «isos» na raíz da partição e copiei para lá as imagens. Assim que as coloquei lá, inseri todos os dados necessários no grub.cfg para fazer boot e usar uma das imagens que escolhesse.

Este é o meu grub.cfg

### BEGIN /etc/grub.d/00_header ###
set default=0
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/white
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###

menuentry "Try Kubuntu 9.10" {
set quiet=1
loopback loop /isos/kubuntu-9.10-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/isos/kubuntu-9.10-desktop-i386.iso noeject noprompt --
initrd (loop)/casper/initrd.lz
}

menuentry "Try Debian" {
set quiet=1
loopback loop /isos/debian-500-i386-businesscard.iso
linux (loop)/install.386/vmlinuz iso-scan/filename=/isos/debian-500-i386-businesscard.iso noeject noprompt --
initrd (loop)/install.386/gtk/initrd.gz
}

menuentry "Try gNewSense 2.2" {
set quiet=1
loopback loop /isos/gnewsense-livecd-deltah-i386-2.2.iso
linux (loop)/isolinux/vmlinuz iso-scan/filename=/isos/gnewsense-livecd-deltah-i386-2.2.iso noeject noprompt --
initrd (loop)/isolinux/initrd.gz
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###


O «set default=0» define qual a imagem que quero que ele arranque por omissão. Neste caso, é o Kubuntu. Se preferisse o Debian, mudava o 0 por 1; caso pretendesse o gNewSense, mudava o 0 por 2. Perceberam a lógica?

O «set timeout=5» é o número de segundos que o menu de arranque do GRUB é mostrado até arrancar a imagem pré-definida anteriormente. Este parece-me ser tempo mais que suficiente para escolher a imagem pretendida.

O «/etc/grub.d/05_debian_theme» é irrelevante, por isso vou saltá-lo. Importa apenas saber que permite definir as cores do menu do GRUB.

Importante, mesmo importante, é tudo o que está entre «### BEGIN /etc/grub.d/10_linux ###» e «### END /etc/grub.d/10_linux ###». É aí que criamos um entrada no menu do GRUB e definimos as opções de arraque de cada uma das imagens. O que lá colocarem irá sempre variar consoante a distribuição e até a própria versão da distribuição.

Para o Kubuntu, foi fácil: a informação que encontrei online estava correcta. Mas para o Debian e gNewSense foi à base da adivinhação e alguma lógica. Mas ficou tudo a funcionar, salvo o gNewSense, que faz boot mas depois bloqueia quando detecta a pen USB. Pode ser algum stress da própria distribuição, que é o que me parece, mas também pode ser que as opções de arranque que defini no grub.cfg não sejam as mais correctas.

Espero que esta informação vos seja útil e evite que também cheguem quase a andar às cabeçadas à parede para fazer mutliboot de ISOs a partir de uma pen USB.

publicado por brunomiguel às 12:30 | link do post | comentar | ver comentários (3)
Domingo, 05.10.08

Isqueiro USB de 8GB

isqueiro pen usb 8gb

Esta pen USB de 8GB, que também é um isqueiro, é o sonho de qualquer geek ou nerd fumador. Só não deve é dar muito jeito quando se estão a copiar ficheiros de e/ou para a pen e o vício ataca.

publicado por brunomiguel às 03:22 | link do post | comentar | ver comentários (1)
Sábado, 26.07.08

[actualizado] Nokia 6630 por USB no GNU/Linux

Porra, finalmente consegui fazer aquilo que queria fazer à mais de um ano no GNU/Linux: aceder ao meu Nokia 6630 por USB. Isto só foi possível graças a um tutorial muito bem explicado da autoria de Zohair Ahmad. Apesar do tutorial ser centrado em Debian, funciona nos derivados desta distribuição e deverá funcionar igualmente bem noutras.

Agora, já posso aceder ao meu Nokia 6630 para copiar e enviar músicas e imagens. Já não sou obrigado a usar a instalação de Windows do computador do meu pai, onde a Caixa Mágica 12 é o sistema operativo principal e o Windows só lá está por causa do meu telemóvel. Hoje é um bom dia!

Actualização: no tutorial, o autor tem um pequeno erro. Na altura de adicionar o vosso user ao grupo fuse, não usem a opção -G, mas a opção -a. Exemplo: usermod -a fuse bruno

publicado por brunomiguel às 17:02 | link do post | comentar | ver comentários (2)
Segunda-feira, 14.07.08

Hacked

hacked pendrive usb tecnologia

Hacked é o nome da pendrive mais original que me recordo de ter visto. Em vez da normal forma de paralelepípedo, é igual a um cabo USB cortado e tem 2GB de capacidade de armazenamento.

publicado por brunomiguel às 22:15 | link do post | comentar | ver comentários (5)

do not feed the trolls

Outros blogs meus

pesquisar neste blog

 

subscrever

RSS

Newsletter

posts recentes

arquivos

links