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: 108.985 ]

Por: Perfil removido em 08/11/2011


Configuração do Grub2 para as distros CentOS e Fedora



Criando diretórios, montado as imagens ISO do Fedora e CentOS e copiando o conteúdo das imagens ISO para os diretórios criados.

1. Criando diretórios para armazenamento dos arquivos das imagens ISO.

# mkdir /media/pendrive/centos
# mkdir /media/pendrive/fedora
# mkdir /mnt/iso
# mkdir /mnt/iso2


2 Montando as imagens ISO e copiando seu conteúdo.

# mount -o loop /local da imagem iso do fedora/imagem do fedora.iso /mnt/iso
# mount -o loop /local da imagem iso do centOS/imagem do centOS.iso /mnt/iso2


# cp -R /mnt/iso/* /media/pendrive/fedora
# cp /local da imagem iso do centos/CentOS-6.6-x86_64-bin-DVD1.iso /media/pendrive/centos
# cp -R /mnt/iso2/{images,isolinux} /media/pendrive/centos


3. Desmontando as imagens ISO.

# umount /mnt/iso
# umount /mnt/iso2


4. Adicionando entrada para as distros Fedora e CentOS:

# vim /media/pendrive/boot/grub/grub.cfg

menuentry 'CentOS 6.6 Enterprise 64 bits'{
         insmod part_msdos
         insmod ext2
         set bootoptions='repo=hd:UUID=62404d73-c42d-449f-acab-984e3014da05:/centos ro quiet rhgb'
         echo    'Loading Kernel Image...'
         linux    /centos/isolinux/vmlinuz $bootoptions
         echo    'Loading Initrd Image...'
         initrd   /centos/isolinux/initrd.img
}

menuentry "Fedora 17 Live CD 64 bits" {
         insmod part_msdos
         insmod ext2
         set root'(hd0,msdos1)'
         search --no-floppy --fs-uuid --set 62404d73-c42d-449f-acab-984e3014da05
         echo    'Loading Kernel Image...'
         linux   /fedora/isolinux/vmlinuz0 root=UUID=62404d73-c42d-449f-acab-984e3014da05 rootfstype=auto liveimg live_dir=/fedora/LiveOS ro quiet rhgb
         echo    'Loading Intrd Image...'
         initrd   /fedora/isolinux/initrd0.img

}


Explicação

Explicação dos principais parâmetros passados para o kernel:
  • O Parâmetro root=UUID=" uuid do seu dispositivo" contém o local onde o sistema será montado para obter os arquivos que serão usados pelo sistema na instalação.
  • O Parâmetro live_dir= " localização do arquivo com sistema de arquivos squash" que é o arquivo que contém quase todo o sistema.
  • Os Parâmetros quiet e rhgb são usados para não imprimir massagens de boot e mostrar imagem de fundo.

Conclusão

Pronto, agora você tem um pendrive multiboot.

Podendo adicionar quantas distros você quiser e/ou atualizar as imagens das mesmas, bastando configurar o arquivo "grub.cfg" do Grub2 e copiar as imagens para o pendrive.

Para criar pendrives bootáveis das dsitros openSUSE, Slackware e Archlinux usando o mesmo metodo e/ou similar ao apresentado no artigo, acesse os links abaixo:

Página anterior    

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

Criando uma aplicação que mostra os processos em execução

Network Mapper - Nmap

Relato I Fórum da Revista Espírito Livre

Resumo do documentário Revolution OS

Removendo dependências desnecessárias no Debian

Leitura recomendada

Compilação distribuída usando o distcc

Instalação automatizada de servidores com Kickstart (parte 2)

Monitorando a temperatura do computador com lm_sensors + MRTG

Instalando o VMWare no Slackware

Como acessar outras máquinas Linux remotamente

  
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 removido 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 removido 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 removido 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 removido 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 removido 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 removido em 28/11/2011 - 16:55h

Olá amigo filipe,

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


[16] Comentário enviado por removido 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 removido 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 removido 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 removido 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 removido 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 removido 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 removido em 18/06/2012 - 10:13h

Sinceramente amigo xinelo, não.

[29] Comentário enviado por removido 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 removido 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:

[email protected]:/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

[email protected]:/home/roberto/Downloads# mount /dev/sdb /media/[email protected]:/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 removido em 15/02/2015 - 23:07h

Artigo atualizado hoje dia 15/02/2015.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts