Blog do TaQ

Boot múltiplos pela pendrive

Publicado em GNU/Linux

Eu sou aquele tipo de sujeito que sempre anda com um CD de uma distro GNU/Linux na mochila, para o caso de precisar em alguma emergência onde não tenha alguma sobrando ou para fazer uma graça e rodar no computador de alguém, através do recurso de live boot, para mostrar que é bem diferente da idéia que o pessoal tem por aí, ainda mais se for uma distro bonita e caprichada para o usuário final como é o Ubuntu. Também serve para fazer uma cópia caso a pessoa se interessar, o que acontece com certa frequência.

Um problema que eu tinha é que hoje em dia a arquitetura 64 começou a popularizar, e isso fazia com que eu tivesse que ter dois CDs na mochila, um com a versão em 32 bits e outro com a versão de 64 bits. Volta e meia eu esquecia uma ou outra. Mas meus problemas acabaram: carrego agora trocentas distros em uma pendrive, com a vantagem de não precisar "flashear" a ISO da distro (utilizar um programa para "descarregar" a ISO) na pendrive!

O procedimento é simples e envolve apenas instalar e configurar o GNU/Grub, que é um gerenciador de boot, na pendrive. Siga as instruções por sua conta e risco, não me responsabilizo se você detonar o seu HD ao invés da sua pendrive! Os passos são os seguintes, levando em conta que estou usando um Ubuntu:

  1. Insira a pendrive no seu computador. O Ubuntu deve montar o sistema de arquivos dela automaticamente no diretório /media/<id> (onde <id> é o identificador de volume reconhecido na pendrive). Vamos supor que o id é kingston. Agora precisamos saber em que dispositivo que a pendrive foi reconhecida. Para isso, utilizamos (troque o kingston pelo id reconhecido pelo sistema!)
    $ df -h | grep /media/kingston
    O que nos retorna algo como
    /dev/sdb1       3,8G  1,4G    2,4G  37% /media/kingston
    indicando que o dispositivo é /dev/sdb1.
  2. Agora precisamos desmontar o sistema de arquivos que foi automaticamente montado acima (se ele estiver montado não poderemos fazer o passo seguinte):
    sudo umount /dev/sdb1
  3. Criar um sistema de arquivos nele, com a opção -n indicando um identificador de volume, nesse caso, "Ubuntus" (pode-se escrever qualquer coisa, ou deixar sem) e com a famigerada FAT para não dar cãibra nas BIOS dos computadores:
    sudo mkfs.vfat -n Ubuntus /dev/sdb1
  4. Novamente montar o sistema, apenas removendo e inserindo a pendrive, o que deve montar o sistema de arquivos em /media/Ubuntus, utilizando agora o identificador de volume que utilizamos acima.
  5. Instalamos o Grub na pendrive:
    grub-install --no-floppy --root-directory=/media/Ubuntus /dev/sdb
  6. Criamos um diretório para armazenar as ISOs, e as copiamos para lá. Não vou mostrar como copiar as ISOs, mas convencionamos que são duas, ubuntu-12.04-desktop-amd64.iso e ubuntu-12.04-desktop-i386.iso:
    mkdir -p /media/pendrive/boot/iso
  7. Após copiadas as ISOs, customizamos o arquivo /media/Ubuntu/boot/grub/grub.cfg com:
    menuentry "Ubuntu 12.04 32 bits" {
            loopback loop /boot/iso/ubuntu-12.04-desktop-i386.iso
            linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-12.04-desktop-i386.iso noeject noprompt --
            initrd (loop)/casper/initrd.lz
    }
    
    menuentry "Ubuntu 12.04 64 bits" {
            loopback loop /boot/iso/ubuntu-12.04-desktop-amd64.iso
            linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-12.04-desktop-amd64.iso noeject noprompt --
            initrd (loop)/casper/initrd.lz
    }
    
  8. Sincronizamos e desmontamos a pendrive:
    sync
    umount /media/pendrive
    

Pronto! Quando fizemos boot pela pendrive, serão apresentadas as opções que definimos em menuentry acima, e podemos escolher qual distro utilizar!


Tags:


Comentários

comments powered by Disqus

Twitter