Como inicializo a partir do arquivo ISO armazenado no disco rígido?

12

Eu sei que posso criar / gravar CD / DVD inicializável ou USB ao vivo e posso inicializar / instalar a partir dele. Mas suponha que eu esteja atualmente executando o GNU / Linux e possua um arquivo ISO de outro GNU / Linux que desejo instalar no meu disco rígido. Posso inicializar diretamente a partir do ISO a partir do disco rígido e tentar / instalar esse sistema operacional GNU / Linux ?

Pandya
fonte

Respostas:

15

Sim, você pode fazer isso adicionando uma entrada de menu ao GRUBmenu 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:

  1. O comando seté usado para armazenar o caminho do arquivo ISO em uma variável, aqui isofile.

  2. 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)$isofileque (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 $isofiletem 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 .

  3. linuxO 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/vmlinuzfoi usado aqui.

  4. 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 initrdno 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
      
  5. O parâmetro adicional, como boot=casper iso-scan/filename=$isofile noprompt noejectpode 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.gzou initrd.lzdependem do algoritmo / compactação usado.

Após a edição /etc/grub.d/40_custom, o GRUB precisa ser atualizado por update-grub2comando. 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.

Pandya
fonte
Uau, estou impressionado ... Eu pensaria que seria impossível, pois a instalação de um novo sistema operacional geralmente envolve a reformatação de partições, o que pode incluir a partição em que seu arquivo ISO está armazenado.
Curinga
Suas amostras usam o GRUB2. O Centos 6 usa o GRUB1 (legado do grub) e os exemplos acima não funcionam.
Ikrom