Na saída dos comandos vemos as partições e os discos.
Somente veja o conteúdo do arquivo /boot/grub/grub.cfg, não altere.
Dica:
Caso tiver discrepância entre as informações teste a inicialização primeiro com hd0 e depois com hd1, etc, até não dar mais erro de "arquivo não encontrado", pois, às vezes, o Grub se perde na numeração porque o GRUB não distingue IDE de SCSI, por isso para o Grub os dois são hdx,x.
Porém, para o kernel Linux:
/dev/hda refere-se ao primeiro disco rígido IDE;
/dev/sda refere-se ao primeiro disco rígido SCSI ou SATA;
/dev/nvme0n1 refere-se ao primeiro SSD NVMe;
/dev/nvme1n1 refere-se ao segundo SSD NVMe.
Na saída do comando fdisk -l também podemos ver se é gpt ou mbr e podemos ver o identificador do disco, no caso, o UUID, aquele numerozão. Para ser mais específico pode se executar:
$ sudo fdisk -l /dev/sda
$ sudo fdisl -l /dev/sdb
e assim para todos os dispositivos.
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.
No Fedora, CentOS, RHEL, openSUSE, o comando geralmente é:
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
No Debian e derivados (Ubuntu, Linux Mint, Kali, etc) pode usar:
$ sudo update-grub
ou
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
Agora que destrinchamos o processo de elaborar entradas (menuentry) no arquivo /etc/grub.d/40_custom vamos ver as entradas de algumas distribuições.
CONTEÚDO FINAL DO ARQUIVO
Deixo aqui o conteúdo completo de como ficou o arquivo /etc/grub.d/40_custom (você pode colocar somente uma entrada de acordo com a sua distribuição, para reparos, caso dê alguma coisa errada com o sistema... ou você faça besteira, o que é mais provável de acontecer).
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
#probe -u $root --set=rootuuid
#set imgdevpath="/dev/disk/by-uuid/$rootuuid"
menuentry 'Debian 12.10.0 LIVE XFCE RAM' {
insmod ext2
rmmod tpm
set isofile='/debina/Downloads/debian-live-12.10.0-amd64-xfce.iso'
loopback loop (hd1,6)$isofile
echo 'Loading Debian Live xfce RAM ...'
linux (loop)/live/vmlinuz-6.1.0-32-amd64 boot=live findiso=$isofile toram components locales=pt_BR.UTF-8 keyboard-model=pc105 keyboard-layouts=br
echo 'Loading initial ramdisk RAM ...'
initrd (loop)/live/initrd.img-6.1.0-32-amd64
}
menuentry 'Debian 12.10.0 LIVE GNOME RAM' {
insmod ext2
rmmod tpm
set isofile='/debina/Downloads/debian-live-12.10.0-amd64-gnome.iso'
loopback loop (hd1,6)$isofile
echo 'Loading Debian Live gnome RAM ...'
linux (loop)/live/vmlinuz-6.1.0-32-amd64 boot=live findiso=$isofile toram components locales=pt_BR.UTF-8 keyboard-model=pc105 keyboard-layouts=br
echo 'Loading initial ramdisk RAM ...'
initrd (loop)/live/initrd.img-6.1.0-32-amd64
}
menuentry 'Fedora-KDE 41 Live RAM' {
rmmod tpm
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod chain
insmod ext2
# root=live:/dev/sr0 console=ttyS0,9600
set isofile='/debina/Downloads/Fedora-KDE-Live-x86_64-41-1.4.iso'
loopback loop (hd1,6)$isofile
echo 'Loading Fedora Live ...'
linux (loop)/images/pxeboot/vmlinuz root=live:CDLABEL=Fedora-KDE-Live-41-1-4 rd.live.image verbose iso-scan/filename=$isofile #acpi=off noprompt noeject dis_ucode_ldr toram components locales=pt_BR.UTF-8 keyboard-model=pc105 keyboard-layouts=br
echo 'Loading initial ramdisk ...'
initrd (loop)/images/pxeboot/initrd.img
}
menuentry 'Arch Linux-2025 RAM' {
insmod ext2
rmmod tpm
set isofile='/debina/Downloads/archlinux-2025.03.01-x86_64.iso'
loopback loop (hd1,6)$isofile
echo 'Loading Arch Linux-2025 Live ...'
# linux (loop)/arch/boot/x86_64/vmlinuz-linux boot=x86_64 iso-scan/filename=$isofile noprompt noeject dis_ucode_ldr toram components locales=pt_BR.UTF-8 keyboard-model=pc105 keyboard-layouts=br
linux (loop)/arch/boot/x86_64/vmlinuz-linux archisolabel=ARCH_202503 img_dev=/dev/sdb6 img_loop=$isofile earlymodules=loop toram
echo 'Loading initial ramdisk ...'
initrd (loop)/arch/boot/x86_64/initramfs-linux.img
}
menuentry 'OpenSuse Leap' {
rmmod tpm
load_video
set gfxpayload=keep
set gfxmode=auto
insmod gzio
insmod part_gpt
insmod chain
insmod ext2
set isofile='/debina/Downloads/openSUSE-Leap-15.6-DVD-x86_64-Media.iso'
loopback loop (hd1,6)$isofile
echo 'Loading OpenSuse-2025 Live ...'
linux (loop)/boot/x86_64/loader/linux boot=isolinux iso-scan/filename=$isofile toram
echo 'Loading initial ramdisk ...'
initrd (loop)/boot/x86_64/loader/initrd
}
menuentry 'Kali-Linux LIVE RAM' {
insmod ext2
rmmod tpm
set isofile='/debina/Downloads/kali-linux-2024.4-live-amd64.iso'
loopback loop (hd1,6)$isofile
echo 'Loading Kali-Linux Live ...'
linux (loop)/live/vmlinuz-6.11.2-amd64 boot=live findiso=$isofile toram components locales=pt_BR.UTF-8 keyboard-model=pc105 keyboard-layouts=br
echo 'Loading initial ramdisk ...'
initrd (loop)/live/initrd.img-6.11.2-amd64
}
menuentry 'Ubuntu LIVE RAM' {
insmod ext2
rmmod tpm
set isofile='/debina/Downloads/ubuntu-24.04.2-desktop-amd64.iso'
loopback loop (hd1,6)$isofile
echo 'Loading Ubuntu Live ...'
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject toram components locales=pt_BR.UTF-8 keyboard-model=pc105 keyboard-layouts=br
echo 'Loading initial ramdisk ...'
initrd (loop)/casper/initrd
}
menuentry 'Linux Mint LIVE RAM' {
insmod ext2
rmmod tpm
set isofile='/debina/Downloads/linuxmint-22.1-cinnamon-64bit.iso'
loopback loop (hd1,6)$isofile
echo 'Loading Linux Mint Live ...'
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject toram components locales=pt_BR.UTF-8 keyboard-model=pc105 keyboard-layouts=br
echo 'Loading initial ramdisk ...'
initrd (loop)/casper/initrd.lz
}
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.
Estas duas linhas comentadas logo abaixo do início do arquivo:
#probe -u $root --set=rootuuid
#set imgdevpath="/dev/disk/by-uuid/$rootuuid"
servem mais para o Arch como configuração para o Grub encontrar-se pelo UUID do disco, porém, na configuração acima não foi preciso utilizá-las, é somente para o caso de colocar somente uma única entrada para o Arch. O Arch e o openSUSE não tem distribuições LIVE oficiais. Aquelas entradas ali são para instalação das ISOs oficiais desses sistemas. Para colocar na RAM basta acrescentar o parâmetro "toram".
Alguns parâmetros extras em algumas entradas como, por exemplo, do Fedora e/ou do openSUSE
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod chain
você encontra dentro da pasta da imagem ISO descompactada, procure nas pastas pelo arquivo de texto grub.cfg e abra-o com seu editor de texto preferido que você encontrará as entradas (menuentry) padrões das configurações que vem na própria ISO.
Esses parâmetros extras às vezes são necessários para uma boa execução do sistema Live a partir do disco.
Parâmetros obrigatórios como "root=live:CDLABEL=Fedora-KDE-Live-41-1-4 rd.live.image" do Fedora e "archisolabel=ARCH_202503" do Arch você também encontra nesse arquivo grub.cfg dentro da pasta descompactada.
Esses parâmetros são o LABEL que é necessário em algumas distribuições, por isso se faz necessário descompactar a ISO e procurar o arquivo grub.cfg.
A cada nova ISO com uma nova versão da distribuição você deve refazer a entrada no Grub com esses novos parâmetros, pois eles podem mudar a cada nova versão da distribuição.