Menu de inicialização para escolha do sistema operacional que deseja carregar no computador |
Em um computador com dois (ou mais) sistemas operacionais, o Boot deve levar a um Menu de inicialização, que permita escolher qual sistema deseja carregar.
É o que se chama dual boot — um nome modesto, — pois você pode ter “n” sistemas instalados no seu computador.
Isso é feito pelo Gerenciador de boot, — chamado Grub (“GRand Unified Bootloader”), no Linux.
Índice
- Após instalar um Linux
- Opções avançadas
- Opções de Kernel
- Windows e hardware
- Após instalar um Windows
- Grub-customizer
- Positivo operante 2016
- Splash-image no Grub
- Passando o bastão
- MBR “de reserva”
- Grub rescue na unha
- Edição com o Grub-customizer
- ATENÇÃO.: - Com a instalação de várias outras distros “não-debians”, em 2017, foi necessário rever todos esses conceitos, e ficou claro que em 2012 ignorava inúmeras coisas. Mesmo com a revisão feita em 2016, persistem muitos erros, nesta postagem, mas não seria razoável escrever tudo de novo. Então, ela fica como está, até porque é uma abordagem mais simples para quem precisa lidar apenas com (K)Ubuntu, Mint, Debian e algum Windows antigo. Para distros “não-debian”, vale a pena ver “Escolhendo Grub entre vários Linux”.
Após instalar um Linux
Grub após a instalação do Linux Mint 17.3 Cinnamon, em 18 Jan. 2016 |
Ao se instalar um sistema Linux, o Grub verifica a existência de outros sistemas operacionais e gera a lista que será apresentada no Menu de inicialização, desse dia em diante.
- Naturalmente, o Linux instalado por último se colocará no topo da lista.
Iniciado o Boot, haverá uma pausa nesse Menu, — digamos, 5 ou 10 segundos, — para você escolher outro sistema operacional.
Se não fizer nada no teclado, ele carrega automaticamente o Linux do topo da lista.
Se usar a seta para baixo, — alterando esta seleção automática, — cessa a contagem regressiva, e nada mais acontece, até que você tecle Enter para confirmar uma escolha.
Opções avançadas
Opções avançadas → Modo de recuperação, a partir do Menu do Grub |
Para cada sistema Linux instalado, são apresentadas 2 opções iniciais, — o carregamento normal, e um conjunto de Opções avançadas.
As Opções avançadas incluem o Modo de recuperação (Recovery mode), — que reúne algumas ferramentas de emergência:
- Consertar pacotes quebrados (dpkg);
- Verificar sistemas de arquivos (fsck);
- Atualizar o carregador de inicialização (grub);
- Terminal em modo root (root);
- etc.
A opção de Terminal em modo root foi muito útil, p.ex., quando o sistema ficou sem Administrador.
A opção de Consertar pacotes quebrados (dpkg) já se tornou rotina, após instalar uma nova distribuição Linux, — foi o que bastou, p.ex, quando o Conky teimou em não ficar transparente no KDE Neon.
Mas também já resolveu um problema mais sério, certa vez que futriquei demais nos Temas, Fontes, Ícones etc. do Kubuntu, até cometer uma lambança qualquer, — que não sei qual foi, nem saberia como consertar manualmente.
Se você pretende usar a ferramenta Consertar pacotes quebrados, deve antes Habilitar rede (network), para que seja possível baixar o que estiver faltando.
Tecle “c” no Grub, para executar o comando “reboot” |
Algumas dessas ferramentas “montam” (habilitam) todas as partições em modo de Leitura e Escrita, — e isso impede que, em seguida, sejam usadas algumas das outras ferramentas, — até que seja feito novo Boot.
- Errata - Não é verdade, — ou era, mas deixou de ser?, — que ao sair do Modo de recuperação (Recovery mode) o Grub retorne ao Menu de inicialização. Atualmente, ele retoma o carregamento do sistema escolhido. Não foram guardados registros de que tenha sido diferente, em outras épocas. Por isso, é difícil saber se mudou, ou se foi simples engano.
Lembrando: — Cada sistema Linux detectado e incluído no Menu de inicialização do dual boot tem suas próprias Opções avançadas, — com um “conjunto completo” de ferramentas de recuperação, específicas para ele.
Opções de Kernel
Opções de Kernel anteriores, nas Opções avançadas do KDE Neon |
Outros itens das Configurações avançadas são as “versões anteriores” de cada Kernel, — você instala o Kubuntu 16.04 com o Kernel 4.4.0-21, no dia do lançamento (Abril 2016), — e quatro meses depois (Ago. 2016), o Kernel já está em 4.4.0-34, — mas as versões intermediárias continuam disponíveis, até que você decida removê-las.
Grub em 2009, — dois Linux, e várias opções de Kernel |
Na época em que este relato foi publicado pela primeira vez (2012), essas versões anteriores de cada Linux iam se acumulando na página inicial do Menu de inicialização, — aos pares, cada uma com seu próprio Modo de recuperação, — e a tela ia se entupindo de opções.
Remoção completa de 4 versões anteriores de Kernel do Kubuntu, pelo Synaptic |
Hoje, essas versões anteriores do Kernel ficam escondidas nas Opções avançadas de cada Linux, — por isso, o Menu de inicialização se mantém “enxuto”, e já não exige “limpeza” frequente de um “excesso” de itens.
No entanto, pode ser interessante remover esses Kernel antigos, — eles ocupam espaço na partição do sistema.
- A remoção completa de 4 antigos Kernel do Kubuntu — pelo Synaptic (10 Ago. 2016) — liberou 1,48 GiB de espaço na partição do sistema.
- A remoção completa de 3 antigos Kernel do KDE Neon liberou 1,11 GiB.
Obs.: - É conveniente manter, pelo menos, a última versão anterior do Kernel. Caso a versão mais nova apresente algum problema, você poderá carregar a versão anterior, e remover a mais nova.
De um modo geral, cada nova versão corrige problemas detectados na anterior, — mas, às vezes, podem introduzir algum problema.
Windows e hardware
No caso do Windows, o Grub apresenta apenas uma opção (para cada um).
Ao carregá-lo, você poderá usar a tecla de atalho (F4? F8?) do próprio Windows, para as alternativas de Recuperação / Manutenção que ele ofereça.
Enfim, aparecem 2 opções de Teste da Memória do computador (Memtest). — É uma ferramenta que só usei uma vez, em 10 anos, — mas, nunca se sabe.
Após instalar um Windows
Nada disso acontece, depois de você instalar ou reinstalar o Windows.
Oferecer dual boot para quem usa Linux, não faz parte da "missão" do Windows. — No máximo, dará opção de escolher entre dois (ou mais) Windows que existam na mesma máquina.
Aliás, como o Windows não é capaz de ler HDDs ou partições com outros sistemas de arquivos (filesystem), — exceto os da própria Microsoft; — nem poderia detectar sistemas Linux.
Ao ser instalado, o Windows apaga a “chamada” que o Linux havia gravado na trilha inicial (MBR) do HDD de Boot, — eliminando assim o caminho para o dual boot.
Por isso, quando precisava reinstalar o Windows, programava essa tarefa para coincidir com a reinstalação de um dos Linux.
A sequência é: — (1) Primeiro, reinstalar o Windows; — (2) Depois, reinstalar um dos Linux.
Chegando depois do novo Windows, o novo Linux verifica os sistemas existentes, e torna a gerar um dual boot (atualizado), — gravando então uma nova chamada na trilha inicial do HDD de Boot.
Caso instale um Linux em outro HDD, certifique-se de que o dual boot não seja gravado nele, — mas, sim, no HDD de Boot.
Grub-customizer
Desmarcando e reordenando os itens do Menu de inicialização, no Grub-customizer |
Até Abril de 2012, usava um programa chamado “StartUpManager” para editar o Gerenciador de inicialização, — coisas como:
- Alterar a “entrada padrão”, — qual sistema carregar automaticamente, após alguns segundos, — ou configurar para carregar o último utilizado (escolha manual anterior)
- Alterar a ordem em que as opções são apresentadas
- Jogar para o final as opções que não uso, — mas quero manter disponíveis (visíveis)
- Ocultar ou eliminar opções obsoletas
- Alterar o tempo de espera
Desde o Kubuntu 12.04, o “StartUpManager” foi excluído dos repositórios de softwares.
Uma pesquisa rápida indicou a existência do Grub-customizer, desenvolvido por Daniel Richter, — porém, ele não está nos repositórios oficiais do Ubuntu, — mas apenas em um repositório “PPA” (desenvolvedor pessoal).
Editando a entrada padrão do Boot e o tempo de espera, no Grub-customizer |
Para adicioná-lo à lista dos repositórios onde o Kubuntu deve procurar softwares e atualizações, basta abrir o Terminal, colar esse comando, teclar Enter:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
e fornecer a senha de Administrador, ao pedido do "sudo".
Adicionar PPA e instalar o Grub-customizer pelo Terminal |
Em seguida, no Gerenciador de pacotes Synaptic, clique em Recarregar, — para atualizar a lista de softwares disponíveis nos repositórios, — inclusive o PPA adicionado agora.
Feito isso, o Synaptic já “encontra” o Grub-customizer entre os softwares disponíveis para instalação. — É só Marcar, em seguida Aplicar, para ele ser baixado e instalado.
Se você não usa o Gerenciador de pacotes Synaptic, abra o Terminal, cole e dispare esses 2 comandos, — um após outro, — fornecendo a senha quando solicitado:
sudo apt-get update
sudo apt-get install grub-customizer
O primeiro comando atualiza as informações dos pacotes disponíveis nos repositórios, — acrescentando as do PPA adicionado agora.
O outro instala o grub-customizer, — sem necessidade de Synaptic, Muon, Discover, lojinha, ou qualquer outro programa de gerenciamento de pacotes (softwares).
Fique atento ao momento em que ele pára — e pede para confirmar alguma coisa (Enter), — senão, você vai esperar até o fim dos tempos.
Para mais informações, dúvidas, soluções, bugs etc., visite a página do Grub-customizer.
Alguma coisa do Grub-customizer não funcionou direito por aqui, na primeira vez (6 Mai. 2012), — e encontrei lá a solução.
Três dias depois (9 Mai. 2012), o Synaptic detectou uma atualização (correção) do Grub-customizer, — que tratei de baixar e instalar, — e nunca mais tive problemas com ele, nesses 4 anos.
Positivo operante 2016
Esses 3 comandos foram testados mais uma vez, agora, — no Kubuntu 16.04, no KDE Neon e no Linux Mint 17.3 Cinnamon.
Continuam funcionando perfeitamente, — assim como o Grub-customizer.
- A instalação do Grub-customizer só não foi feita, por enquanto, no Debian testing “Stretch”, — pois repositórios PPA são “invenção” do seu derivado Ubuntu (base do KDE Neon e do Linux Mint).
- Obs.: - Com a instalação de várias outras distros “não-debians”, em 2017, foi necessário rever todos esses conceitos, e ficou claro que em 2012 ignorava inúmeras coisas. Mesmo com a revisão feita em 2016, persistem muitos erros nesta postagem, mas não seria razoável escrever tudo de novo. Então, ela fica como está, até porque é uma abordagem mais simples para quem precisa lidar apenas com (K)Ubuntu, Mint, Debian e algum Windows antigo. Para distros “não-debian”, vale a pena ver “Escolhendo Grub entre vários Linux”.
Splash-image no Grub
Comando “vbeinfo” para verificar a resolução suportada no Grub |
Adornar o Menu de inicialização com uma bela imagem de fundo foi um dos muitos benefícios trazidos, — para o Kubuntu (e o Neon, e o Debian), — pela “longa e trabalhosa configuração do Linux Mint”.
Foi a primeira vez, — desde a precipitada substituição do Kurumin, — que me senti confortável o suficiente, com o Kubuntu, para finalmente me dedicar ao aprendizado mais aprofundado de outra distribuição Linux e outro “ambiente gráfico” (desktop environment), — no caso, o Cinnamon, — o que acabou por revelar muitas coisas sobre o Linux (“família” Debian) e novas descobertas no próprio KDE, até por contraste.
No caso do Grub, esse novo horizonte foi encontrado no mini-tutorial “Howto Embellish the Boot Screen (grub2)”, publicado há uns 3 anos na Comunidade do Linux Mint, e que, — em poucas linhas, — condensa um conjunto de dicas e informações sobre:
- Formatos de imagem e prioridade com que são usadas pelo Grub
- Configuração de cores e fontes de letra
- “grub2-splashimages”, — de onde foi extraída a imagem acima, — e “ttf-unifont”
- “Category:Commons featured desktop backgrounds” e “Category:Commons featured widescreen desktop backgrounds” (Wikimedia)
- Sugestão de pesquisa de tutoriais “grub2 splash image Ubuntu Debian” (comparar as datas)
- etc.
Imagem copiada para /boot/grub/ em Abril, — foi aparecer após uma atualização do Grub no Mint, em Junho |
Cheguei lá no início de Abril, gostei e resolvi testar.
Foi instalado o “grub2-splashimages”, — foi transferida uma das imagens “.tga” para a pasta-padrão “/boot/grub/” (com alteração de nome), — e, por algum motivo, ficou nisso.
Tudo indica que não apliquei o comando “sudo update-grub”, — as anotações indicam que (primeiro) tentei usá-lo no Kubuntu (mesma imagem etc.), — mas, como não deu resultado, o assunto acabou esquecido, em prol de outros mais urgentes.
Em fins de Junho, o Linux Mint 17.3 recebeu uma atualização do Grub, — e a imagem finalmente apareceu, de surpresa, no Menu de inicialização, — quando já nem lembrava dela.
Na verdade, a única coisa que tinha feito, em Abril, foi colocá-la “no caminho”, para ser detectada e usada “automaticamente” pelo Grub, — conforme as “prioridades de imagens”, ensinadas pelo autor do mini-tutorial, — porém, não tinha feito atualização, para “entrar em vigor”.
Passando o bastão
Em Abril, a “chamada” na trilha inicial (MBR) do HDD de Boot apontava para o Grub do Linux Mint, — provavelmente, desde sua instalação, em Janeiro, — e o comando “sudo update-grub”, aplicado no Kubuntu, apenas poderia atualizar seu próprio Grub, que não era chamado, ao ligar o computador.
Para que o Grub do Kubuntu assumisse o controle do processo, teria de regravar a “chamada” na trilha inicial do HDD de Boot, — o que aconteceria, p.ex., se reinstalasse o Grub do Kubuntu, — ou se ele recebesse uma atualização proveniente dos repositórios, — o que também equivale a uma nova instalação / reinstalação: — “sudo apt install --reinstall grub-pc”.
Em resumo, — havendo vários Linux, haverá vários Grub, — e eles se revezam, valendo sempre o último instalado / reinstalado:
• Uma “chamada” é gravada na trilha inicial (MBR) do HDD de Boot, — o HDD onde a Bios do computador está configurada para procurar instruções, ao ser ligado.
• Como o MBR — Master Boot Record — tem apenas 512 bytes, guarda apenas o mínimo indispensável: — o “caminho” para o Grub “ativo”.
• No caso de existirem 4 Linux, cada um tem seu próprio Grub, com suas próprias configurações, imagem de fundo etc.
• A cada vez que um Grub recebe atualização dos repositórios, — ou seja, é reinstalado,
— torna a gravar uma “chamada” no MBR do HDD de Boot, — tornando-se o Grub “ativo”, daí por diante.
Nesse meio tempo, — de 2 Abr. a 22 Jun., — foram instalados:
- 24 Abr. - Kubuntu 16.04
- 29 Mai. - KDE Neon Developer Edition
- 31 Mai. - KDE Neon User Edition
- 2 Jun. - Debian testing “Stretch” — com Swap inadequado
- 11 Jun. - Debian testing “Stretch”
- 19 Jun. - Debian testing “Stretch”
Após uma atualização, o Grub do KDE Neon reassumiu o controle, — e deixou o Mint escondido |
Na instalação do KDE Neon User Edition, o Linux Mint ficou escondido “abaixo da linha do horizonte”, — não percebi que o resto estava abaixo do quadradinho minúsculo, no centro da tela, — e a solução foi reinstalar o Grub (grub-pc) do Kubuntu 16.04, pelo Synaptic.
Esse quadrado minúsculo, — invenção dos avanços tecnológicos, para maior beleza, — presume que você nunca terá mais do que 2 ou 3 sistemas.
Mas você pode ampliar o quadrado, — basta ler um monte de “documentação”, ou encontrar um tutorial decente (ainda não encontrei), — e editar 2 ou 3 arquivos de configuração, espalhados em várias pastas do sistema.
Atualização do Grub no Kubuntu, 10 minutos depois, detectou os 4 sistemas e restabeleceu o Menu completo |
A primeira instalação do Debian testing “Stretch”, — com vários erros, inclusive de Swap (mudança de UUID), — também produziu um Grub com algumas coisas estranhas, e no dia seguinte o Grub do Kubuntu voltou a ser reinstalado, para retomar o controle do Menu de inicialização.
Para testar essas conclusões, em 14 Ago. 2016, — vigorando o Grub do KDE Neon, — foi usado o comando “sudo apt install --reinstall grub-pc” dentro do Linux Mint, — e, de fato, isso fez com que ele reassumisse o comando.
Obs.: - Tudo o que foi dito neste “capítulo” (acima) pressupõe que haja apenas 1 HDD de Boot, — e / ou que todos os sistemas Linux estejam configurados para gravar nele suas “chamadas”. — Neste caso, sim, acontece esse “revezamento”, a cada vez que um Linux volta a tomar posse do controle do Boot. — É o que fica claro a seguir.
MBR “de reserva”
Gravando chamada do Grub também no MBR do segundo HDD |
Por fim, foi gravado um MBR “de reserva”, no segundo HDD, — afinal, qual a utilidade de deixá-lo vazio, — e, em caso de ocorrer algum desastre, depender de um “grub rescue” com cursor piscando?
Para isso, foi escolhido o Grub do Linux Mint, que já estava bem à mão, — e que permanece “intocado” pelo Grub-customizer, sem qualquer configuração manual. — Até agora, apenas “adotou” aquela imagem “Lake_mapourika_NZ.tga”, de 640x480 pixels, colocada em seu caminho, para ser detectada automaticamente.
MBR sem “chamada” para um Grub válido: “grub rescue” |
Como tudo estava funcionando, bastou abrir o Terminal e disparar o comando “sudo grub-install /dev/sdb”. — E agora, no caso de deparar com um “grub rescue” no primeiro HDD, pode ser providencial ter uma alternativa no segundo HDD, no terceiro etc. — Basta entrar no Setup da Bios, mudar a prioridade de Boot para o 2º HDD, salvar, e usar o outro Menu de inicialização.
Naturalmente, foi feito um teste, em seguida, — a Bios foi alterada, para Boot a partir do segundo HDD.
Um novo Menu de inicialização foi exibido, — e a partir dele foi carregada uma sessão do Linux Mint, para mais algumas horas de trabalho.
Quando algum Linux for substituído, será bom lembrar de atualizar também o MBR do segundo HDD.
Obs.: - Ao invés de apenas “instalar” o Grub de um Linux no MBR do segundo HDD, — solução precária, pois ele continuará se reapossando do MBR do primeiro HDD, a cada vez que receber upgrade e/ou for reinstalado, — pode-se reconfigurá-lo para passar a gravar sempre no MBR do segundo HDD.
Grub rescue na unha
Identificando as partições para recuperar o Grub “na unha” (grub rescue) |
Este comando “sudo grub-install /dev/sdb”, na verdade, era apenas o último passo da receita mostrada por Akkiri, — para recuperar o Grub “na unha”, — e que vai registrada abaixo (resumo adaptado), para qualquer eventualidade futura.
En cas de malheur…
“Restaurando GRUB2 sem cd de instalação”
1) Identificar as partições existentes:
- grub rescue> ls
(hd0)
(hd0,msdos11)
(hd0,msdos10)
(hd0,msdos9)
(hd0,msdos8)
(hd0,msdos7)
(hd0,msdos6) ← Linux2 (Mint), em sdb6
(hd0,msdos5)
(hd0,msdos1) ← Linux1 (Kubuntu), em sdb1
(hd1)
(hd1,msdos10)
(hd1,msdos9)
(hd1,msdos8)
(hd1,msdos7)
(hd1,msdos6)
(hd1,msdos5)
(hd1,msdos3) ← Linux3 (Debian), em sda3
(hd1,msdos1) ← Linux4 (KDE Neon), em sda1
Em caso de desastre, sempre é bom ter algumas anotações, — sobre as partições, p.ex. |
* Os HDDs estão invertidos, — porque o Boot foi tentado pelo 2º HDD! — Quem tem 11 partições é o “sdb”!
2) Indique o disco onde se encontram os arquivos de configuração do GRUB.
- grub rescue> set root=(hd0,msdos6)
3) Informe o local onde se encontram os arquivos de boot.
- grub rescue> set prefix=(hd0,msdos6)/boot/grub
4) Carregue o módulo e faça a sua inicialização
- grub rescue> insmod normal
- grub rescue> normal
5) Após entrar no sistema operacional, atualize e reinstale o grub. Entre no terminal e como usuário root digite:
- sudo update-grub
- sudo grub-install /dev/sda
Infelizmente, essa receita de bravura não foi testada, — caso contrário, não poderia testar a outra opção, usando apenas o último comando. — Ou testava um, ou outro.
Edição com o Grub-customizer
Salvar X Gravar MBR, no Grub-customizer |
Observadas essas particularidades, — conforme haja só um Linux, ou vários, — vale notar alguns caminhos, no Grub-customizer:
- Salvar - Apenas salva as configurações localmente, — equivale ao “sudo update grub”, — e pode ser o suficiente, quando existe apenas um Linux, ou quando ele já comanda o Grub.
- Gravar MBR - equivale ao “sudo grub-install /dev/sda”, — permite que um Linux assuma o controle do Grub. — Neste caso, porém, me parece que é uma verdadeira reconfiguração, permanente (ainda não conferi o “efeito permanente”, em condições controladas).
Gravar MBR no Grub-customizer, — escolha do HDD |
Esta última opção também permite que você instale “chamadas” na trilha inicial (MBR) de outros HDD, — do “sdb” em diante, — por precaução.
Em caso de falha, poderá dispor de um MBR “de reserva”, — ou vários.
A conferir se isto, de fato, reconfigura o Grub daquele Linux a sempre gravar no MBR do outro HDD, daí por diante.
________
Publicado originalmente em 13 Mai. 2012.
Revisto e ampliado em 10~14 Ago. 2016.
ERRATA acrescentada em 28 Jun. 2017
— … ≠ • ≠ … —
Ferramentas &tc.
- Konqueror como gerenciador de arquivos
- Substituição da fonte de energia do computador
- Facebook sobrecarrega visitar e compartilhar “Páginas”
- Corrigindo pontos de montagem no Linux Mint 18 KDE
- Política de Kernel do Linux Mint vs. Kubuntu, KDE Neon & Debian
- KDE “light” eliminando o PIM
- Conky - configuração em andamento
- Google Earth sem placa 3D no Xenial
- Linux ficou sem Administrador. Que fazer?
- Particionamento de disco para vários Linux
- Padronizando PrintScreen no Linux (com Shutter) e no Windows
- Montagem automática de partições adicionais (Cinnamon e Gnome)
- Boot com “Live USB” (Pendrive) do Linux Mint Cinnamon
- Repositórios de software Linux e gerenciador de pacotes Synaptic
- Monitorando a temperatura da CPU no Linux e Windows
- Conversão em massa de TIFF em JPEG
- Meu Wi-Fi parou de funcionar. E agora?
- Cópia de artigos da mídia para citação
- Lua, Júpiter e Vênus em ISO 1600
- Como se livrar do SPAM da Claro que te interrompe de 30 em 30 segundos
- Quantas pessoas cabem na Avenida Paulista?
- A batalha da Comunicação no Facebook
- O Aeroporto de Cláudio documentado no Google Earth
- O apagão do Facebook não será noticiado
- Blog, microblog e redes sociais
- Adeus ao Orkut
- Bookmark para encontrar um post “favorito” no Facebook
- Sincronização do Google Chrome
- Fotos em alta resolução no Facebook
- Sincronizando pastas de documentos entre Linux e Windows
- Dual-boot, Linux, Windows e Grub-customizer
- Listas, Grupos, Fóruns, Comunidades
- Mandar fotos por email para Grupos do Facebook
- Limitando emails de notificação do Facebook
- Conexão 3G pelo “chaveirinho” da TIM
Muito obrigado pela informação. Eu não sabia pq não conseguia mais achar o Startup, obrigado mesmo.
ResponderExcluirChegado! Valeu, foi muito explicativo, gostei muito do seu tutorial,.
ResponderExcluirGeralmente não leio todo o tutorial, mas esse eu achei bem interessante e de fácil entendimento... valeu! parabéns!
Se puder me add no face, meu perfil é https://www.facebook.com/Tiago.Franca.Fernandes
Criei essa pagina no Facebook, para assuntos de bits & bytes?
Excluirhttps://www.facebook.com/Byteria/