Multiboot pelo pendrive usando grub2: instalando várias distros a partir de uma unidade de armazenamento móvel

O objetivo real desse artigo é mostrar como tornar sua unidade de armazenamento móvel (Pendrive) bootável e instalar vários Sistemas GNU/Linux a partir da mesma.

[ Hits: 92.102 ]

Por: Edson em 08/11/2011


Introdução, Motivação e Tornando Pendrive Bootável



Introdução

MultiBoot significa ter disponível à sua escolha mais de um sistema na hora de inicializá-lo. O Proposito deste artigo é ensinar como tornar seu pendrive bootável e disponibilizar várias opções de instalação de distros.

Motivação

Obter uma distribuição  GNU/Linux no site do desenvolvedor tornou-se hoje em dia uma tarefa rotineira e fácil. Pois as distribuições GNU/Linux vêm, cada vez mais, tornando-se populares e usadas devido à vários fatores; segurança e estabilidade são alguns dos fatores.

Porém, as distribuições GNU/Linux sofrem constantes atualizações, com isso, torna-se inviável gravar em mídia, uma distro a cada atualização ou só ter apenas uma distro na mídia quando a necessidade (principalmente em ambiente corporativo) é ter disponível vários sistemas à escolha para instalar.

Para este artigo, utilizarei um pendrive da Kingston de 16GB e configurarei o mesmo para dá boot pelas seguintes distros:
  • Debian 7.8 CD;
  • CentOS 6.6 DVD;
  • Ubuntu 12.04.5 Desktop LTS;
  • Ubuntu 14.04.1 Desktop LTS;
  • Ubuntu 14.04.1 Server LTS;
  • Kali Linux 1.0.6;
  • Linux Mint Debian 2012-04;
  • Parted Magic 2012-10-10;
  • Fedora 17 LiveCD.

Tornando Pendrive Bootável

Para tornar um pendrive bootável, é necessário ter um bootloader gravado no pendrive e bootstrap gravado na MBR do mesmo.

Esclarecimentos:
  1. O sistema de arquivos usado no artigo é ext3. Não testei com sistemas de arquivos ext4.
  2. Para explicar, estarei supondo que o pendrive é o arquivo de dispositivo /dev/sdb, mas é recomendável verificar qual é o arquivo de dispositivo referente ao pendrive que será usado na sua máquina, caso indique o arquivo de dispositivo diferente, poderá perder dados.
  3. Todos os comandos devem ser executados com o usuário root.

Aplicando o sistema de arquivos ext3 no pendrive:

# mke2fs -t ext3 -L multiboot /dev/sdb1

Criando diretório que será usado para montar o pendrive e montando o pendrive:

# mkdir /media/pendrive
# mount /dev/sdb1 /media/pendrive


Gravando o Grub2 no pendrive e gerando o arquivo de configuração do Grub2 (grub.cfg):

# grub-install --force --no-floppy --root-directory=/media/pendrive /dev/sdb
# grub-mkconfig -o /media/pendrive/boot/grub/grub.cfg



Pronto, agora seu pendrive está bootável.

Só falta armazenar os sistemas que deseja instalar pelo pendrive no mesmo.

    Próxima página

Páginas do artigo
   1. Introdução, Motivação e Tornando Pendrive Bootável
   2. Obtendo as Distribuições
   3. Configuração do Grub2 para as distros Ubuntu, Linux Mint Debian, Parted Magic e Debian
   4. Configuração do Grub2 para as distros CentOS e Fedora
Outros artigos deste autor

Apresentando o Btrfs - Nova geração de sistema de arquivos para GNU/Linux

Incron - supervisionando sistemas de arquivos

VPN - usando SSH

Clonezilla - Gerando e restaurando backups completos (Parte I)

Udev - Funcionamento e Regras

Leitura recomendada

Implantação de software livre

O que evoluiu no Linux de hoje?

Instalando programas no Linux - Completo e total

Configurando dispositivo CD-R/CD-RW e gravando CD em modo texto

Asterisk com PostgreSQL e unixodbc

  
Comentários
[1] Comentário enviado por adri3d em 08/11/2011 - 10:56h

na parte do
grub-install –force –no-floppy –root-directory=/media/pendrive /dev/sdb1

é dois tracinho
grub-install --force --no-floppy --root-directory=/media/pendrive /dev/sdb1

[2] Comentário enviado por eabreu em 08/11/2011 - 11:28h

sim adri3d é dois tracinhos, quando digitei não ficou os dois traços é exatamente assim:

grub-install --force --no-floppy --root-directory=/media/pendrive dev/sdb


qualquer dúvida é só postar...


abraços e espero que este artigo ajude várias pessoas.

[3] Comentário enviado por rai3mb em 08/11/2011 - 11:30h

@eabreu, fiz a correção.
Você digitou certo sim, acontece que alguns caracteres podem perder a formatação quando um artigo/dica/etc é enviado para o VOL, e cabe aos moderadores fazerem as devidas adaptações, nesse caso o erro não foi seu ;-), foi meu :-(

Abraços

[4] Comentário enviado por eabreu em 08/11/2011 - 11:43h

Valeu pelo esclarecimento rai3mb, já tinha pensado que poderia ser isso mesmo.


abraço amigo....

[5] Comentário enviado por adri3d em 08/11/2011 - 12:10h

mais uma coisa nessa mesma linha
grub-install --force --no-floppy --root-directory=/media/pendrive /dev/sdb1

não devria ser
grub-install --force --no-floppy --root-directory=/media/pendrive /dev/sdb

para instalar na mbr do pen e não na primeira partição, fiz primeiro com sdb1 e ficava apenas um cursor piscando na tela de boot, depois executei o grub-intall em sdb e funcionou.

[6] Comentário enviado por eabreu em 08/11/2011 - 12:19h

É isso mesmo adri3d, desculpe por esse erro pequeno mais de essencial importância para conseguir fazer o pendrive bootavel funcionar.

é:
# grub-install --force --no-floppy --root-directory=/media/pendrive /dev/sdb

e não:
# grub-install --force --no-floppy --root-directory=/media/pendrive /dev/sdb1

bela observação e obrigado pela colaboração.

Qualquer dica que venha melhorar o artigo será bem aceito para todos...

Obrigado mais uma vez e abraço amigo....

[7] Comentário enviado por medeiros64 em 08/11/2011 - 16:06h

otimo artigo realmente essa é uma grande ferramenta pois pelo pen drive o sistema é instalado muito mais rapido.


agora desculpe minha ignorancia tem como fazer um pen drive com o instalador de rwindows tbm?

é como da p/ colocar o grub caregando uma iso se for usado uma iso do windows daria certo fiquei com uma duvida

no meu caso tenho um pen com instalador do ubuntu e outro com windows juntar os 2 me sobraria um pen drive rs


exemplo

debian
ubuntu
slackware
Rwindows ?

[8] Comentário enviado por eabreu em 08/11/2011 - 16:23h

Amigo medeiros64 nunca fiz com windows, porém acredito que há possibilidade ai mesmo pelo grub2,porém nunca tentei.

Mas te passarei a dica como fazer isso assim que possivel...

abraço..

[9] Comentário enviado por adri3d em 08/11/2011 - 16:40h

não
não por esse metodo usado aqui. Não da certo porque o grub monta a iso e chama o kernel que esta dentro dela,
por um acaso uma instação do windows tem um kernel linux?

mas
mas eu ainda tenho uma ideia. a uns dias atraz fiz isso:
http://adriano-tmp.blogspot.com/2011/10/windows7-instalavel-pelo-pendrive-via.html

se fosse feita duas partiçoes no pendrive uma com as distros senguindo esse guia e outra partição com o windows seguindo este outro tutorial,

instalando o grub na mbr e o ms-sys na partição 2

algem se abilita a testar meu maior pendrive é 4gb, tinha outros dois de 16gb mas estes pediram arego.

[10] Comentário enviado por adri3d em 08/11/2011 - 17:39h

sobre o grub.cfg segue abaixo o meu por completo,esta bem enchuto e funciona(pelo menos aqui), apenas com um Ubuntu e Trisquel

[code]
set timeout=30
set default=0

menuentry "Ubuntu 11.10 Desktop" {
loopback loop /ubuntu.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso noeject
initrd (loop)/casper/initrd.lz
}
menuentry "trisquel-mini_5.0_amd64" {
loopback loop /trisquel-mini_5.0_amd64.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/trisquel-mini_5.0_amd64.iso noeject
initrd (loop)/casper/initrd
}
[/code]

uma desvantagen dessa abordagem é que não da para defenir o teclado durante o boot, para resolver isso eu deixo esse script no pendrive

[code]
#!/bin/bash
setxkbmap -model abnt2 -layout br
[/code]

[11] Comentário enviado por eabreu em 08/11/2011 - 18:05h

Esclarecimento:

adri3d falei que há possibilidade de dá boot também com windows no pendrive usando o grub2, porém não citei o método que seria usado.

[12] Comentário enviado por izaias em 09/11/2011 - 12:40h

Ótimo trabalho!

É complexo e por isso, suscetível a erros. Mas ainda bem que temos no VOL a melhor estirpe de membros.
A colaboração é mútua.

Parabéns a todos.

[13] Comentário enviado por meinhardt_jgbr em 09/11/2011 - 13:17h

Muito interessante. Possivelmente também seja factível o mesmo tipo de esquema usando um HD externo USB. Logo que tiver tempo vou testar.

Basicamente se funciona com pendrive deve funcionar com HD externo USB.

Nota 10!!

[14] Comentário enviado por filipesantana18 em 25/11/2011 - 13:22h

esse grub2 funcionaria com o Ghost e SystemRescueCd???

[15] Comentário enviado por eabreu em 28/11/2011 - 16:55h

Olá amigo filipe,

Sinceramente nunca testei com os dois, mas provavelmente funcione sim.


[16] Comentário enviado por eabreu em 28/11/2011 - 17:22h

Olá amigo meinharrdt,

Você pode instalar tanto em pendrives quanto em discos rigidos externos como em cartões de memorias.

[17] Comentário enviado por fmj1988 em 02/12/2011 - 14:45h

Estive tentando fazer este artigo durante os ultimos dias e uma das coisas que me deparei foi que:

# grub-install --force --no-floppy --root-directory=/media/pendrive /dev/sdb1

estaria faltando parte de um dos argumentos, e ficando assim:

# grub-install --force-lba --no-floppy --root-directory=/media/pendrive /dev/sdb1

vou repitir a serie de comandos e postar os erros.


[18] Comentário enviado por eabreu em 03/12/2011 - 13:47h

Fala amigo fmj1988,

**** Dessa forma ele instala o grub na partição 1 do pendrive /dev/sdb1

# grub-install --force --no-floppy --root-directory=/media/pendrive /dev/sdb1

troque por :

*** Dessa forma ele instala o grub na mbr do pendrive, assim funfa de boa:

# grub-install --force --no-floppy --root-directory=/media/pendrive /dev/sdb

[19] Comentário enviado por izaias em 03/12/2011 - 14:07h

Corrigido.

Veja se está acordo.

[20] Comentário enviado por eabreu em 03/12/2011 - 15:39h

izaias voce é o cara

[21] Comentário enviado por fmj1988 em 03/12/2011 - 22:13h

Edson, seria interessante criar/atualizar/copiar o topico aqui no vol, uma vez que não é possivel comentar no link mencionado.
obrigado

[22] Comentário enviado por eabreu em 04/12/2011 - 00:24h

Amigo fmj1988,

Primeiramente gostaria de saber se conseguiu resolver o que mencionou no seu post passado depois do meu comentário ?

[23] Comentário enviado por eabreu em 04/12/2011 - 00:33h

Amigo izaias,

poderia por gentileza trocar algumas linhas do artigo que descrevo abaixo:

1º - Parte 4. do artigo

## Linha a ser trocada

# cp -R /mnt/iso2 /media/pendrive/centos

por

# cp -R /mnt/iso2/* /media/pendrive/centos

2º - Parte 3. do artigo

## Linha a ser trocada

# cp local das imagens do kernel e initrd/ imagens /media/pendrive/debian

por

# cp /local das imagens do kernel e initrd/ imagens /media/pendrive/debian

Obrigado...

[24] Comentário enviado por izaias em 04/12/2011 - 01:37h

Corrigido.

[25] Comentário enviado por phantom x em 04/01/2012 - 11:24h

Para a instalação do Windows 7, jogue o conteúdo do disco/imagem no pendrive (creio que deva ser na raiz mesmo) e teste com isso:

chainloader /bootmgr


Nunca testei com o grub2, apenas com o syslinux (método bem diferente, mas funcionou).

[26] Comentário enviado por eabreu em 19/05/2012 - 21:46h

abaixo tem um link com a atualização deste artigo:

http://howtognulinux.blogspot.com.br/2011/11/multiboot-instalando-varias-distros.html

abraço...

[27] Comentário enviado por (xinelo) em 28/05/2012 - 22:29h

Olá pessoal, alguém já tentou fazer esse procedimento através do lilo ao invés do grub? Alguém sabe se é possível, se dá certo. abraços.

[28] Comentário enviado por eabreu em 18/06/2012 - 10:13h

Sinceramente amigo xinelo, não.

[29] Comentário enviado por eabreu em 27/10/2012 - 23:59h

Escrevi este comentário para informar que este artigo foi atualizado a uma semana.

[30] Comentário enviado por josueleite em 12/01/2013 - 01:06h


[9] Comentário enviado por adri3d em 08/11/2011 - 16:40h:

não
não por esse metodo usado aqui. Não da certo porque o grub monta a iso e chama o kernel que esta dentro dela,
por um acaso uma instação do windows tem um kernel linux?

mas
mas eu ainda tenho uma ideia. a uns dias atraz fiz isso:
http://adriano-tmp.blogspot.com/2011/10/windows7-instalavel-pelo-pendrive-via.html

se fosse feita duas partiçoes no pendrive uma com as distros senguindo esse guia e outra partição com o windows seguindo este outro tutorial,

instalando o grub na mbr e o ms-sys na partição 2

algem se abilita a testar meu maior pendrive é 4gb, tinha outros dois de 16gb mas estes pediram arego.


e pro xp tem alguma forma?

[31] Comentário enviado por fernando-sales em 25/03/2013 - 13:22h

Ei pessoal, eu gostaria de saber como eu compartilho a pasta "/home" apara varias distros no pendrive. Isso é possível ?

[32] Comentário enviado por geowany em 08/04/2013 - 10:42h


[31] Comentário enviado por fernandosales95 em 25/03/2013 - 13:22h:

Ei pessoal, eu gostaria de saber como eu compartilho a pasta "/home" apara varias distros no pendrive. Isso é possível ?


Fernando, acredito ser possível fazer isso criando outra partição para a /home e definindo no fstab da inicialização de cada distro. Mas, teoricamente, eu não recomendaria fazer nada do tipo já que um usb stick com multiboot que possua várias distros consequentemente possuirá várias versões de arquivos de configurações pessoais dos mais diversos aplicativos. Então, os aplicativos podem apresentar comportamentos estranhos quando se submeterem a utilizar a configurações pessoais compartilhadas.

[33] Comentário enviado por macks em 17/04/2013 - 18:16h


[30] Comentário enviado por josueleite em 12/01/2013 - 01:06h:


[9] Comentário enviado por adri3d em 08/11/2011 - 16:40h:

não
não por esse metodo usado aqui. Não da certo porque o grub monta a iso e chama o kernel que esta dentro dela,
por um acaso uma instação do windows tem um kernel linux?

mas
mas eu ainda tenho uma ideia. a uns dias atraz fiz isso:
http://adriano-tmp.blogspot.com/2011/10/windows7-instalavel-pelo-pendrive-via.html

se fosse feita duas partiçoes no pendrive uma com as distros senguindo esse guia e outra partição com o windows seguindo este outro tutorial,

instalando o grub na mbr e o ms-sys na partição 2

algem se abilita a testar meu maior pendrive é 4gb, tinha outros dois de 16gb mas estes pediram arego.

e pro xp tem alguma forma?


josueleite, creio que se colocar chainloader /ntldr você consiga chamar o XP.

[34] Comentário enviado por thiagomatos em 14/08/2013 - 12:29h

eabreu, boa tarde!
Pergunta de um usuário leigo, gostaria de saber como faço para copiar a imagem de Kernel e do initrd, Pois desconheço a localização desses dois arquivos e sem eles o procedimento não funciona por completo.
Grato pela ajuda.

[35] Comentário enviado por eabreu em 14/08/2013 - 19:05h

Nas distros ubuntu, linux mint debian e parted magic não precisa extrair a imagem do kernel e initrd. mas no debian você precisa baixar o kernel e a imagem do initrd do site do debian como mostrado no artigo.

[36] Comentário enviado por rodrigoj em 07/09/2013 - 14:03h

Parabens pelo artigo, favoritei por ser o único que trata bem do assunto e explica detalhe por detalhe.

[37] Comentário enviado por felixcorreia em 20/11/2014 - 14:29h

Desculpem, gente: Favor desconsiderar. Por burrice minha eu tinha colocado ~/media/sdb, quando o correto era sem o til na frente...
Problema solucionado...

Boa tarde:

Estou com um problema:

root@roberto-Lenovo-G450:/home/roberto/Downloads# mke2fs -t ext3 -L multiboot /dev/sdb
mke2fs 1.42.10 (18-May-2014)
/dev/sdb contains a udf file system labelled 'Sims3'
Continuar mesmo assim? (y,n) y
Creating filesystem with 3784704 4k blocks and 946560 inodes
Filesystem UUID: 455ad519-f0ce-44a0-8f1f-8b1511493e01
Cópias de segurança de superblocos gravadas em blocos:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: pronto
Gravando tabelas inode: pronto
Creating journal (32768 blocks): concluído
Escrevendo superblocos e informações de contabilidade de sistema de arquivos: concluído

root@roberto-Lenovo-G450:/home/roberto/Downloads# mount /dev/sdb /media/pendriveroot@roberto-Lenovo-G450:/home/roberto/Downloads# grub-install --force --no-floppy --root-directory=~/media/pendrive /dev/sdb
Installing for i386-pc platform.
grub-install: aviso: Sistema de arquivos `ext2' não suporta incorporação.
grub-install: erro: não é possível incorporar, m mas isso é necessário para instalar o cross-disk.

Pode me dizer o que eu fiz de errado, pois criei o diretório, montei o pendrive, formatei e ao tentar transferir o gub ele diz que o sistema é ext2, mas na formatação tava como ext3, não é?

[38] Comentário enviado por sysmatck em 12/01/2015 - 10:45h

Este método do GRUB2 é top...

Eu consigo carregar o grub4DOS através dele também... Daí dá pra usar o Hiren's BootCD e outras ferramentas. Parece que dá pra carregar também o syslinux, ainda não tentei...

De qualquer forma, acho que é a maneira mais robusta de se fazer este tipo de ferramenta. Quem tiver dificuldade de seguir o passa-a-passo escrito, pode conferir o vídeo que eu fiz sobre isso: https://www.youtube.com/watch?v=Uh_MCYHCUF4

[39] Comentário enviado por eabreu em 15/02/2015 - 23:07h

Artigo atualizado hoje dia 15/02/2015.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts