Sim, você pode fazer isso adicionando uma entrada de menu ao GRUB
menu do carregador de inicialização.
Você pode adicionar uma entrada de menu GRUB personalizada editando /etc/grub.d/40_custom
,
Exemplo de entrada de menu personalizada :
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.
menuentry "Trisquel ISO" {
set isofile="/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso"
loopback loop (hd0,5)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash
initrd (loop)/casper/initrd
}
Instrução e explicação:
O comando set
é usado para armazenar o caminho do arquivo ISO em uma variável, aqui isofile
.
loopback
é usado para criar um dispositivo a partir de uma imagem do sistema de arquivos. Para isso, é necessário especificar o dispositivo e o arquivo de imagem. Aqui usamos o (hd0,5)$isofile
que (hd0,5)
representa a quinta partição do disco.
- Pontos a nota: Em
(hd0,5)
,
1 r dígitos representa o número de dispositivo que começa a partir de 0
(aqui: 0 = 1 r dispositivo) e
2 nd dígitos representa o número de partição que se inicia a partir de 1
(aqui cinco = 5 th partição).
Que significa/dev/sda5
- E variável
$isofile
tem o caminho do arquivo ISO. Então, finalmente, torna-se (hd0,5)/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso
.
- Para mais informações, visite: Como especificar dispositivos e arquivos .
linux
O comando é usado para carregar o kernel do Linux ( vmlinuz ) do arquivo. Coloque o caminho do kernel do Linux na ISO.
Leia / extraia o conteúdo da ISO para obter o caminho do exemplo do kernel:
$ 7z l trisquel_7.0_i686.iso | grep vmlinu
2014-10-29 21:41:43 ..... 5841680 5841680 casper/vmlinuz
2014-11-03 00:45:09 ..... 5844176 5844176 casper/vmlinuz.netinst
então, /casper/vmlinuz
foi usado aqui.
initrd
O comando é usado para carregar um ramdisk inicial para uma imagem do kernel do Linux e definir os parâmetros apropriados na área de configuração do Linux na memória.
- initrd é um esquema para carregar um sistema de arquivos raiz temporário na memória. Coloque o caminho
initrd
no ISO.
Leia / extraia o conteúdo da ISO para obter o caminho de initrd
:
$ 7z l trisquel_7.0_i686.iso | grep initrd
2014-11-03 00:45:19 ..... 16851900 16851900 casper/initrd
2014-11-03 00:45:09 ..... 9398592 9398592 casper/initrd.netinst
O parâmetro adicional, como boot=casper iso-scan/filename=$isofile noprompt noeject
pode ser específico para uma distribuição GNU / Linux e variar para outra família de Linux. Você pode encontrar algumas configurações para diferentes famílias / distribuição aqui .
Nota: Algumas distribuições usam initrd.gz
ou initrd.lz
dependem do algoritmo / compactação usado.
Após a edição /etc/grub.d/40_custom
, o GRUB precisa ser atualizado por update-grub2
comando. Após a reinicialização, você encontrará a entrada de menu personalizada adicionada na tela do GRUB. E você pode usar o ambiente Live de uma distribuição GNU / Linux.
Para executar a instalação da ISO, o instalador pode precisar desmontar as partições montadas; ou seja, digamos que outro sistema esteja montado /isodevice
, então você pode umount -l /isodevice
.