Linux com boot no Pendrive, com todas as facilidades: Smart-USB_Key-Mania, PLOP Boot Manager e outros métodos

O Artigo descreve o Shell Script 'Smart-USB-Key_Mania', que modifiquei e traduzi de sua versão original em Italiano. Ele permite gravar qualquer ISO Linux em um pendrive, obtendo-se um dispositivo portátil com uma Distro 'bootável'.
Nas BIOS que não permitem Boot pelo pendrive, o Boot pode ser tentado a partir do pacote 'PLOP Boot Manager' etc...

[ Hits: 105.071 ]

Por: Alberto Federman Neto. em 12/12/2011 | Blog: https://ciencialivre.blog/


Smart-USB_Key-Mania - Tradução



Script Original

O Script original foi desenvolvido por Omar Semlali, mantenedor do site: Sabayon Mania, especialmente para ser empregado para pendrives destinados a conter Sabayon Linux:
Como usa comandos gerais, teoricamente, pode trabalhar com qualquer distro.

Ele tem interface gráfica, através do Zenity.

Zenity é um pacote para fazer interfaces gráficas simples, a serem usadas em Shell Scripts. O Zenity tem variantes (como o Yad) e até programas para facilitar a sua utilização (Linux Total Programmer, desenvolvido por um colega aqui do VOL, Felipe Gaio):
Há algo no Script original porém, que pode dificultar o uso do 'Smart-USB_Key-Mania', por usuários brasileiros ou internacionais. Ele está escrito em Italiano.

Essa versão original, para quem quiser conhecê-la, pode ser baixada destes sites:

Traduções para Português do Brasil e Inglês

Para facilitar para os usuários brasileiros, como eu já havia feito com os outros aplicativos desenvolvidos pelo Omar (Smart-Packet-Mania e Smart-Download-Mania):

Eu traduzi o 'Smart-USB_Key-Mania' para o Português Brasileiro, e seu uso é o objetivo deste Artigo. A tradução foi feita a partir do Shell Script original, usando o editor Gedit.

Complementando, para maior facilidade da comunidade internacional, fiz também uma outra tradução, para o Inglês. Para quem quiser, ela pode ser baixada de:

Códigos e figuras

Eis os códigos, os Shell Scripts. Pela ordem: Tradução para o Português, tradução para o Inglês e original em Italiano.

A) Tradução para o Português Brasileiro:

#!/bin/bash

#Copy to USB Key Tool Copyright 2009 by Tony Brijeski under the GPL V2.
# By Omar Semlali, Italy 2011.

DIALOG="`which zenity` --width=500 --height=400"
TITLE="--title="
TEXT="--text="
ENTRY="--entry "
ENTRYTEXT="--entry-text "
FILESELECTION="--file-selection "
MENU="--list --column=Pick --column=Info"
YESNO="--question "
MSGBOX="--info "
PASSWORD="--entry --hide-text "
TITLETEXT="Crea una chiavetta Usb con Sabayon"

testroot="`whoami`"

if [ "$testroot" != "root" ]; then
$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"Devi essere root per continuare- exiting"
exit 1
fi

$DIALOG $TITLE"$TITLETEXT" $YESNO $TEXT"\n\nQuesta procedura cancellerà tutti i files dalla tua chiavetta Usb, creando una usb avviabile con Sabayon.\n\nFai molta attenzione se hai dei dati sulla chiavetta.\n\nSei sicuro di continuare?"

if [ $? != 0 ]; then
exit 0
fi

if [ -f /tmp/smart-usb_key-mania ]; then
rm /tmp/smart-usb_key-mania
fi

mainmenu () {
CHOICE=`$DIALOG $TITLE"$TITLETEXT" $MENU $TEXT"\nSeleziona un opzione." Exit "Esci" 1°Step "Seleziona la tua chiavetta USB" 2°Step "Seleziona la Iso di Sabayon" 3°Step "Copia l'immagine Iso sulla tua chiavetta USB"`

if [ "$CHOICE" = "1°Step" ]; then
pickusbmenu
elif [ "$CHOICE" = "2°Step" ]; then
picksourcemenu
elif [ "$CHOICE" = "3°Step" ]; then
copymenu
else
rm /tmp/smart-usb_key-mania
exit 0
fi

}

pickusbmenu () {
DEVS=""
DEVS=`find /dev/disk/by-path/ -name "*usb*" | xargs ls -l | grep -v "part" | awk '{print $NF}' | awk -F "/" '{print $NF}'`
for i in $DEVS; do
USBDRIVESIZE=`grep -m 1 "$i" /proc/partitions | awk '{print $3}'`
USBDRIVES="$USBDRIVES $i $USBDRIVESIZE "
done

USBDRIVE=`$DIALOG $TITLE"$TITLETEXT" $MENU $TEXT"\nSeleziona la tua chiavetta usb." Exit "Quit to main menu" $USBDRIVES`

if [ "$USBDRIVE" = "Exit" ]; then
mainmenu
fi
echo "USBDRIVE=\"$USBDRIVE\"" >> /tmp/smart-usb_key-mania
if [ "$USBDRIVE" != "" ]; then
echo "USBDRIVE=\"$USBDRIVE\"" >> /tmp/smart-usb_key-mania
fi
  $DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"\n\nHai selezionato $USBDRIVE.  Clicca per ritornare al menu."

mainmenu
}

picksourcemenu () {
PICKSOURCE=`$DIALOG $TITLE"Seleziona una Iso di Sabayon precedentemente scaricata" $FILESELECTION --file-filter=*.iso`
echo "PICKSOURCE=\"$PICKSOURCE\"" >> /tmp/smart-usb_key-mania
. /tmp/smart-usb_key-mania
  $DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"\n\nHai selezionato $PICKSOURCE come sorgente per la copia. Clicca per ritornare al menu."
mainmenu
}

copymenu () {
. /tmp/smart-usb_key-mania
if [ "$USBDRIVE" = "" ]; then
  $DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"\n\nDevi prima sezionare una chiavetta Usb.  Clicca per ritornare al menu."
mainmenu
fi
if [ "$PICKSOURCE" = "" ]; then
  $DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"\n\nDevi prima selezionare una Iso.  Clicca per ritornare al menu."
mainmenu
fi
$DIALOG $TITLE"$TITLETEXT" $YESNO $TEXT"\n\nQuesta procedura rimpiazzerà tutto il contenuto della tua chiavetta Usb con una Live di Sabayon.\n\nSe hai dei dati importanti, rischi di perderli...Lo so, sono paranoico, però è importante che te lo dica parecchie volte. Non vorrei che le tue foto in mutandoni delle vacanze al mare andassero perse.\n\nVuoi continuare?"

if [ $? != 0 ]; then
mainmenu
fi

umount `mount | grep $USBDRIVE | awk '{print $1}'`

progressbar "Copia in corso di Sabayon \n\nAbbi pazienza e vai a bere un bel caffè! \n" &
#do the copy
dd if=$PICKSOURCE of=/dev/$USBDRIVE bs=1M
sync
killall -KILL tail

echo "COPYDONE=\"YES\"" >> /tmp/smart-usb_key-mania
  $DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"\n\nCopia completata Ora puoi spegnere il tuo pc. Ricordati di selezionare il boot da usb nel bios.  Clicca Ok per ritornare al menu."
mainmenu
}

progressbar () {
tail -f /tmp/smart-usb_key-mania | $DIALOG $TEXT"$@" --progress --pulsate --auto-close
}

mainmenu


Na Figura abaixo, veja a edição dos scripts e suas traduções. Acima, no destaque, Português Brasileiro. Transparentes: à esquerda embaixo, o Original em Italiano e à Direita embaixo, a tradução para o Inglês. Visualizados em Sabayon Linux, ambiente gráfico XFCE, em Editor LeafPad (do LXDE):
Linux: Linux com boot no Pendrive, com todas as facilidades: Smart-USB_Key-Mania, PLOP Boot Manager e outros métodos

Para baixar e usar o 'Smart-USB_Key-Mania', em Português Brasileiro, veja a Página 3.
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Smart-USB_Key-Mania - Tradução
   3. Obtendo e preparando o script
   4. Usando o 'Smart-USB_Key-Mania.sh'
   5. Preparando o 'boot' pelo pendrive. "Plop Boot Manager" e outros métodos
   6. Testando o seu pendrive de boot
   7. Resumo e conclusão
Outros artigos deste autor

Otimizando o Sabayon Linux (inclusive o Firefox)

Como Compilar Kernel Novo para o Sabayon Linux

zsh (Z shell) - Uma alternativa ao bash

Use o GAG e nunca mais perca o boot

Emmi Linux - Uma Revisão, Primeiras Impressões e Testes

Leitura recomendada

KDialog com Shell Script - Conversão de slides JPG para projetores com suporte a miniaturas de imagens

Minha caixa de ferramentas no GNU/Linux

Convertendo TXT ou HTML em OGG

NetProfiler - Um solução para quem passeia por várias redes

Ajustando a hora do micro com extrema precisão

  
Comentários
[1] Comentário enviado por removido em 12/12/2011 - 13:02h

ALberto,tu é o cara .Artigos ataulizado,valeu!

[2] Comentário enviado por levi linux em 12/12/2011 - 13:47h

Parabéns. Excelente artigo, bastante didático. Desconhecia o Smart-USB_Key-Mania. Favoritado.

[3] Comentário enviado por iz@bel em 12/12/2011 - 14:44h

Olá Alberto,

Belo artigo em?!
O bom é que além de dar uma solução "Smart-USB_Key-Mania",
É um referencial para todos os atuais métodos de fazer um usb com linux.
Show de Bola!

O melhor de tudo é que acabei entendendo porque não consigo copiar arquivos com mais de 4GB pro meu HD Externo em FAT32, eu não sabia que era por causa do tipo de formatação, achava que era memória... Vou ter que formatá-lo (pelo menos há solução).

Gostaria de saber se tem como criar "aquele arquivo de persistência que o Criador de Disco de Inicialização do Ubuntu cria?"

Parabéns pelo trabalho...

Izabel

[4] Comentário enviado por removido em 12/12/2011 - 14:44h

Mega-artigo!

Ótimo trabalho, Alberto.

<Favoritado>

[5] Comentário enviado por leandro em 12/12/2011 - 18:21h

Além de ser uma ótima ferramenta, tem presença de espírito! rs


+10!

[6] Comentário enviado por julio_hoffimann em 12/12/2011 - 21:24h

Parabéns Alberto!

Abraço!

[7] Comentário enviado por nicolo em 13/12/2011 - 09:45h

Doutor:
Esse artigo está vários andares acima e alguns anos luz à frente, digamos, do padrão vigente.
Vou separar para estudar... quem sabe eu aprendo alguma coisa.


[8] Comentário enviado por albfneto em 13/12/2011 - 21:20h

Vc é modesto, Bakunin, é um grande conhecedor de Linux.

seu nickname é legal. Bakunin é o nome de um poeta e teórico de esquerda russo, não?

de fato, depois de verificar, eu acho smart-usb_key-mania muito prático e o PLOP Manager também.

méritos maiores tem os criadores do script, eu só traduzí, e mudei telas, textos.
o script é "bem bolado".
tenho gravado ISOS no pendrive, com facilidade.

Sôbre persistência: ainda estou mexendo nisso, não consegui persistência em Gentoo e Gentoo like, ainda. No Ubuntu não testei,mas acho que o Ubuntu é persistente.

Sugestão: que usar o script com outras distros, não gentoo, poderiam reportar suas observações.

[9] Comentário enviado por albfneto em 14/12/2011 - 01:04h

@Iz@bel, sôbre não gravar nada de tamanho maior que 4 Giga, com eficiência, em FAT32, veja:

CITAÇÂO:
"The problem that many encounter now is one of the limits of FAT32 that's being run into: file size. The original FAT (FAT12) had a maximum file size of 32MB, FAT16 has a maximum file size of 2GB, and despite the much larger hard disk size supported by FAT32, the maximum file size only doubled to 4GB."


texto extraído do link:

http://www.cknow.com/cms/articles/why-cant-i-copy-a-large-file-despite-having-larger-free-space.html

[10] Comentário enviado por JJSantos em 14/12/2011 - 15:21h

Muito bom, seu artigo....

[11] Comentário enviado por meinhardt_jgbr em 16/12/2011 - 21:14h

Alberto,

Parabéns, mais uma vez, "matou a pau"!!!

Sem duvida aumenta em muito a flexibilidade para criar uma distro muito portátil e com certeza com "persistência".

[12] Comentário enviado por iz@bel em 17/12/2011 - 21:06h

Oi Alberto, o pior é que estou com dificuldade de fazer backup de arquivos ISO de 4.4GB que tenho salvo neste HD, sempre dá erro e só tenho nele. Dai, para formatar, terei que abrir mão de alguns DVDs rsrsrsrsrs

[13] Comentário enviado por albfneto em 27/03/2012 - 18:45h

@Iz@bel, se vc esta tendo dificuldade, formate o HDD alvo ou o pendrive, ou o HDD externo alvo,ou mesmo uma partição vazia de sue HDD, com NTFS se o arquivo for para windows e com por ex. ext4, se for para linux.

deve ser o FAT32 que dá o problema, não entendo pq os pendrives ainda vem em fat32,

ou use DVDs mesmo para o Backup

ADENDO AO ARTIGO:

Para outro software similar ao Universal USB Creator, chamado FlashBoot, vejam a resposta número 2, deste Post:

http://www.vivaolinux.com.br/topico/Linux-Avancado/IMAGEM-ISO-EM-PENDRIVE

[14] Comentário enviado por albfneto em 05/09/2012 - 01:14h

COMPLEMENTOS E ATUALIZAÇÃO DO ARTIGO, 31 DE AGOSTO DE 2013.

Observação, nova versão e compilada, veja:

http://gnutwoall.wordpress.com/2013/08/27/smart-usb-key-um-instalador-de-iso-linux-no-pendrive/

1) Mais um jeito de criar pendrive bootável em Windows. Dica do Wolfden, um dos desenvolvedores Sabayon e Gentoo:

http://wolf911.us/wgo/?p=737

2)Outro jeito de usar USB Universal Installer:

http://www.vivaolinux.com.br/dica/Como-instalar-o-Ubuntu-pelo-pendrive

3) outro utilitário para colocar Linux no pendrive:

http://www.vivaolinux.com.br/dica/ImageWriter-Criando-pendrives-bootaveis-no-Sabayon

4) Como colocar vários Linux, num só pendrive:

http://sistemaoperacionalinux.blogspot.com.br/2013/06/criando-um-pendrive-bootavel-com-varias.html

5) Live USB Creator:

http://www.vivaolinux.com.br/artigo/Teste-de-distribuicoes-GNU-Linux-em-pendrive

6) Lembro a todos que o "Smart-USB_KeyMania" está ativo e funciona.

Novos Links para baixar, de minha área no Dropbox, duas versões em pt-BR e as versões em Inglês e Italiano:

https://www.dropbox.com/s/jfn1twytpm8x09h/smart-usb_key-mania-pt_BR-ver2.sh
https://www.dropbox.com/s/1h5zmuxn2vpv9pn/smart-usb_key-mania-pt_BR.sh
https://www.dropbox.com/s/9zqtvtu25fwudwi/smart-usb_key-mania.sh
https://www.dropbox.com/s/zt0lrdpzjuis1fd/smart-usb_key-mania-en.sh

Se preferir não baixar nada, aqui está o Script completo; eis o script, copie e cole num processador de texto e o torne executável:

[code]
#!/bin/bash

# Made from one Copy of "USB Key Tool", from Tony Brijeski,Copyright 2009,
# under the GPL V2 Licence.
# Code modified, for use in Sabayon Linux,by Omar Semlali,Italy.
# Site: SabayonMania, 2011.
# Translated/modified by Alberto Federman Neto, Brazil, 2011.
# Site: fly.to/brasbeto
# <albfneto@fcfrp.usp.br>

DIALOG="`which zenity` --width=500 --height=400"
TITLE="--title="
TEXT="--text="
ENTRY="--entry "
ENTRYTEXT="--entry-text "
FILESELECTION="--file-selection "
MENU="--list --column=Pick --column=Info"
YESNO="--question "
MSGBOX="--info "
MSGBOXTEXT=ENTRY="--entry "
PASSWORD="--entry --hide-text "
TITLETEXT="SMART-USB-KEY-MANIA"

testroot="`whoami`"

if [ "$testroot" != "root" ]; then
$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"O Smart-Usb-Key-Mania só executa como Root, porisso o Aplicativo vai fechar.\n\nReabra-o, como Root ou usando Sudo.\n\n\n\nBaseado no USB Key Tool de Tony Brijeski, 2009, Licença GPL V2.\n\nModificado para uso em Sabayon Linux por Omar Semlali, Itália, Site Sabayon-Mania, 2011.\n\nNova Modificação e Tradução do Italiano por Alberto Federman Neto, Brasil, 2011.\n\nalbfneto@fcfrp.usp.br"
exit 1
fi

$DIALOG $TITLE"$TITLETEXT" $YESNO $TEXT"Este Aplicativo cria uma cópia Bootável de uma Distro Linux em um PenDrive USB.\n\nOBSERVAÇÂO:\n\nTodos os arquivos do seu pendrive serão apagados, criando-se um Linux bootável nele.\n\nPorisso, se tem dados importantes no pendrive, faça backup.\n\nQuer mesmo continuar, por sua conta e risco?\n\n\n\nBaseado no USB Key Tool de Tony Brijeski, 2009, Licença GPL V2.\n\nModificado para uso em Sabayon Linux por Omar Semlali, Itália, Site Sabayon-Mania, 2011.\n\nNova Modificação e Tradução do Italiano por Alberto Federman Neto, Brasil, 2011.\n\nalbfneto@fcfrp.usp.br"

if [ $? != 0 ]; then
exit 0
fi

if [ -f /tmp/smart-usb_key-mania ]; then
rm /tmp/smart-usb_key-mania
fi

mainmenu () {
CHOICE=`$DIALOG $TITLE"$TITLETEXT" $MENU $TEXT"\nSelecione uma opção." Exit "Sair do Aplicativo" 1Etapa "Escolha o seu pendrive USB" 2Etapa "Escolha a ISO Linux que quer gravar" 3Etapa "Grave a ISO como Imagem, no pendrive USB"`

if [ "$CHOICE" = "1Etapa" ]; then
pickusbmenu
elif [ "$CHOICE" = "2Etapa" ]; then
picksourcemenu
elif [ "$CHOICE" = "3Etapa" ]; then
copymenu
else
rm /tmp/smart-usb_key-mania
exit 0
fi

}

pickusbmenu () {
DEVS=""
DEVS=`find /dev/disk/by-path/ -name "*usb*" | xargs ls -l | grep -v "part" | awk '{print $NF}' | awk -F "/" '{print $NF}'`
for i in $DEVS; do
USBDRIVESIZE=`grep -m 1 "$i" /proc/partitions | awk '{print $3}'`
USBDRIVES="$USBDRIVES $i $USBDRIVESIZE "
done

USBDRIVE=`$DIALOG $TITLE"$TITLETEXT" $MENU $TEXT"\nSeleciona o pendrive USB." Exit "Volta ao Menu principal" $USBDRIVES`

if [ "$USBDRIVE" = "Exit" ]; then
mainmenu
fi
echo "USBDRIVE=\"$USBDRIVE\"" >> /tmp/smart-usb_key-mania
if [ "$USBDRIVE" != "" ]; then
echo "USBDRIVE=\"$USBDRIVE\"" >> /tmp/smart-usb_key-mania
fi
$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"\n\nVocê selecionou $USBDRIVE. Clique para retornar ao Menu."

mainmenu
}


picksourcemenu () {
PICKSOURCE=`$DIALOG $TITLE"Selecione uma ISO Linux" $FILESELECTION --file-filter=*.iso`
echo "PICKSOURCE=\"$PICKSOURCE\"" >> /tmp/smart-usb_key-mania
. /tmp/smart-usb_key-mania
$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"\n\nVocê escolheu usar a $PICKSOURCE como ISO Origem para a cópia. Clique para retornar ao Menu."
mainmenu
}


copymenu () {
. /tmp/smart-usb_key-mania
if [ "$USBDRIVE" = "" ]; then
$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"\n\nPrimeiro precisa selecionar um PenDrive. Clique para retornar ao Menu."
mainmenu
fi
if [ "$PICKSOURCE" = "" ]; then
$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"\n\nDeve primeiro selecionar uma ISO. Clique para retornar ao Menu."
mainmenu
fi
$DIALOG $TITLE"$TITLETEXT" $YESNO $TEXT"\n\nEsse procedimento vai apagar todo o seu pendrive, instalando o Linux nele.\n\nSe tem dados importantes,Bau-Bau..., Adeus! Porisso é importante te avisar. Copie seu pendrive antes.\n\nPor sua conta e risco, vai continuar?"

if [ $? != 0 ]; then
mainmenu
fi

umount `mount | grep $USBDRIVE | awk '{print $1}'`

progressbar "Estou copiando... Calma! \n\nTenha paciência, vai tomar banho... rsrs! \n" &
#do the copy
dd if=$PICKSOURCE of=/dev/$USBDRIVE bs=1M
sync
killall -KILL tail

echo "COPYDONE=\"YES\"" >> /tmp/smart-usb_key-mania
$DIALOG $TITLE"$TITLETEXT" $MSGBOX $TEXT"\n\nCopia completa! Agora pode desligar o PC e ir tomar cerveja!. Rs! Lembre de colocar o Boot da USB como primeiro da BIOS. Clique OK para voltar ao Menu."
mainmenu
}


progressbar () {
tail -f /tmp/smart-usb_key-mania | $DIALOG $TEXT"$@" --progress --pulsate --auto-close
}

mainmenu

[/code]




[15] Comentário enviado por felipebreda em 22/03/2013 - 23:00h

Albfneto, muito obrigado, estou revirando tutoriais há dias, e o seu foi o único que realmente funcionou sem frescuras, ou correções.

Obrigadoooooooooooooo!!!!!!!!!!!!!!!!!!!!!

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

Uma dúvida:

Eu estou executando o script da versão 2 no Ubuntu 14.10 32 bits.
Ao mandar executar o mesmo eu tenho a primeira tela (como já estou com o pendrive espetado a que aparece é a advertência perguntando se eu quero continuar) e daí aparecem os botões (não) (sim).
Se eu clicar em qualquer dos dois, não acontece nada. A tela fecha e não aparece mais nenhuma. Tem idéia do que possa ser?
Pela olhada que eu dei no script, deveria me mostrar o pendrive que eu espetei (só de curioso, pois eu não sei escrever scripts, apenas entendo de Delphi e VB), mas pela lógica do que eu vi, deveria aparecer outra tela e não aparece. Já aconteceu isso com alguém?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts