Faça o download da imagem ISO (Live ou não) da sua distribuição preferida, por exemplo, em /home/seu_usuario/Downloads ou outra pasta de sua escolha. Extraia os arquivos clicando com o botão direito na pasta > Extrair aqui ou algo parecido.
Será feita a extração dos arquivos, pois uma imagem iso é, grosso modo, um arquivo compactado.
Imagem iso e sua pasta com os arquivos extraídos.
Entre na pasta, por exemplo, debian-live-12.10.0-amd64-gnome, dentro encontrará a pasta "live". Entre na pasta live. Dentro encontrará os arquivos "vmlinuz-6.1.0-32-amd64" e "initrd.img-6.1.0-32-amd64". O número 6.1.0-32 é a versão do Kernel
Linux da versão 12.10.0 do Debian.
No Ubuntu os arquivos vmlinuz e initrd.img estão na pasta "casper". Isso muda de acordo com a distribuição, então você terá de descompactar a imagem iso e procurar nas pastas os dois arquivos vmlinuz-alguma_versão e initrd.img-alguma_versão.
Até aqui o processo é tranquilo, aliás, veremos que o processo todo é fácil, um pouco trabalhoso, mas é fácil, além disso, você fará uma única vez e durará um bom tempo até você trocar de imagem iso. Depois de estar de posse das informações necessárias pode deletar a pasta descompactada, caso quiser.
De posse dessas informações, vamos começar.
Abra o terminal e atualize o sistema e instale/atualize para o Grub2, caso quiser, senão somente atualize o sistema (aqui é o Debian, você dê os comandos referentes ao teu sistema):
sudo apt update
sudo aptitude safe-upgrade
sudo apt install grub2
Abra o terminal e entre no arquivo /etc/grub.d/40_custom (este arquivo é o arquivo correto a ser alterado). Esse arquivo está presente na esmagadora maioria das distribuições Linux que usam o
Grub. Caso você não encontrar na sua distribuição, procure na internet qual o arquivo equivalente. Esse processo descrito aqui foi feito no Debian.
add_img 40_custom.png]
Entrando no arquivo /etc/grud.d/40_custom
# vim /etc/grub.d/40_custom
ou
# nano /etc/grub.d/40_custom
Para editar no vim pressione a tecla Insert, faça a alteração > Esc > para salvar e sair Shift + :, solte o Shift e digite wq ficando assim no canto inferior esquerdo :wq > Enter. Não pressione a tecla +, é somente a tecla Shift e a tecla : (dois pontos). Para salvar sem sair no vim digite somente w e dê enter.
Para salvar no nano pressione ctrl+o (letra o) e dê Enter; para sair ctrl+x.
Sempre depois de alterar o arquivo /etc/grub.d/40_custom execute:
sudo update-grub
ou o comando equivalente da sua distribuição.
Sem atualizar o
Grub não terão efeito as alterações no arquivo.
Reinicie e teste.
Visão do interior do arquivo sem as configurações.
O arquivo 40_custom é o arquivo indicado para se fazer as entradas que aparecerão no menu do
Grub na inicialização, sendo que depois de atualizar o
Grub com update-grub ou outro comando relativo, essas informações serão gravadas no arquivo /boot/grub/grub.cfg. Junto com o arquivo /etc/default/grub, esses três são os arquivos principais do
Grub, porém, somente faça alterações no /etc/default/grub e no /etc/grub.d/40_custom.
NÃO altere o arquivo /boot/grub/grub.cfg.
Na sequência do artigo tem as configurações do /etc/grub.d/40_custom para usar com várias distribuições. Como exemplo vamos analisar as seguintes linhas acrescentadas no arquivo original após a última linha:
menuentry 'Debian 12.10.0 LIVE RAM' {
insmod ext2
set isofile='/debina/Downloads/debian-live-12.10.0-amd64-xfce.iso'
rmmod tpm
loopback loop (hd1,6)$isofile
echo 'Loading Linux Live ...'
linux (loop)/live/vmlinuz-6.1.0-32-amd64 boot=live findiso=$isofile components locales=pt_BR.UTF-8 keyboard-model=pc105 keyboard-layouts=br toram
echo 'Loading initial ramdisk ...'
initrd (loop)/live/initrd.img-6.1.0-32-amd64
}
Abaixo o conteúdo está numerado como exemplo para maiores explicações.
1- menuentry 'Debian 12.10.0 LIVE' {
2- insmod ext2
3- set isofile='/debina/Downloads/debian-live-12.10.0-amd64-xfce.iso'
4- rmmod tpm
5- loopback loop (hd1,6)$isofile
6- echo 'Loading Linux Live ...'
7- linux (loop)/live/vmlinuz-6.1.0-32-amd64 boot=live findiso=$isofile components locales=pt_BR.UTF-8 keyboard-model=pc105 keyboard-layouts=br toram
8- echo 'Loading initial ramdisk ...'
9- initrd (loop)/live/initrd.img-6.1.0-32-amd64
10- }
Na linha 1, menuentry, você pode colocar o que quiser entre as aspas, e abrimos a chave. Pode colocar aspas duplas ou simples, escolha uma e padronize no arquivo todo, sugiro aspas simples.
Na segunda linha (linha 2) não altere, pois estamos carregando o módulo do sistema ext2 que é o sistema de arquivos temporário. Não se preocupe, esse ext2 tem nada a ver com os sistemas que você escolhe quando particiona um Linux. Ele é somente para carregar o sistema de arquivos provisório, aliás, ele é o sistema de arquivos temporário.
Na linha 3 estamos setando a variável "isofile" com o caminho para a imagem iso. No caminho coloque somente a partir do nome do usuário, não acrescente /home no começo. Não aconselho a colocar a iso na partição /boot, pois ocupa um espaço desnecessário, além do que a partição /boot não é própria para isso, coloque onde tenha espaço para isso.
Na linha 4 chamamos o módulo "rmmod" para desabilitar o famigerado tpm do BIOS, caso tiver. Lembram, no começo, que o initrd chama os módulos quando acionado na inicialização.
Na linha 5 fazemos um "loopback loop" (loop de retorno) que nada mais é do que fazer o dispositivo chamado "device" corresponder ao conteúdo da imagem do sistema de arquivos no arquivo, ou seja, lê a imagem indicada no caminho, descompacta e carrega ela passando-a como ramDisk para o Kernel. "Dispositivo" (device) aqui pode ser qualquer coisa relacionada ao computador, seja hardware (dispositivo físico) ou software (dispositivo virtual).
Veja tirado das páginas do manual do
Grub (links ao final):
"No entanto, o próprio SO deve ser capaz de encontrar sua raiz. Isso geralmente envolve a execução de um programa de espaço do usuário antes que a raiz real seja descoberta. Isso é obtido pelo GRUB carregando uma pequena imagem especialmente feita e passando-a como ramdisk para o kernel."
"'device' é uma unidade especificada na sintaxe GRUB (consulte Sintaxe do dispositivo ) e 'file' é um arquivo do sistema operacional, que normalmente é um arquivo de dispositivo."
A parte (hd1,6) da linha 5 veremos adiante o que você tem de colocar ali.
A parte $isofile da linha 5 chama a variável isofile onde armazenamos o caminho para a imagem iso. Caso quiser pode chamar de $fileiso, $arquiviso, etc.
Na linha 6 damos um "echo", ou seja, é um comando presente em várias linguagens de programação que exibe uma mensagem que você verá no
Grub durante a inicialização do sistema.
Na linha 7 chamamos o vmlinuz desejado, no caso, o live, e configuramos alguns parâmetros opcionais como o locale para fins de horário e o layout do teclado para fins de podermos digitar sem ter de adivinhar onde foi parar a barra, o ponto de interrogação, etc. Esses parâmetros são opcionais, algumas distribuições em suas imagens ISOs Live já oferecem essas opções ao inicializar a iso Live.
IMPORTANTE:
O parâmetro "toram" ao final da linha 7 indica que é para carregar a imagem live na memória ram.
Mais adiante veremos que é interessante colocar duas entradas iguais, uma sem o parâmetro toram (to ram - para a ram) ao final e outra com o parâmetro, assim podemos escolher no menu do
Grub.
Colocando na RAM o carregamento e a execução, o sistema live tem um desempenho melhor, porém, caso você tiver pouca RAM física não é aconselhável, então faça as duas entradas iguais, somente uma sem toram e a outra com, pois não custa nada e você pode testar qual fica melhor e eliminar uma depois.
Na linha 8 damos outro "echo".
Na linha 9 chamamos o initrd. Na linha 10 fechamos as chaves com chave de ouro!
O número de linhas para cada entrada (menuentry) pode ser diferente, esse número de 10 linhas não é fixo, vai de acordo com cada distribuição e configurações, mas é tranquilo.
Sempre depois de alterar o arquivo /etc/grub.d/40_custom execute:
sudo update-grub
ou o comando equivalente da sua distribuição.
Sem atualizar o
Grub não terão efeito as alterações no arquivo. Reinicie e teste.