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

10

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 eu tenho um arquivo ISO de outro GNU / Linux que eu quero instalar no meu disco rígido, então eu posso inicializar diretamente do ISO do disco rígido e tentar / instalar esse sistema operacional GNU / Linux ?

    
por Pandya 23.12.2015 / 08:31

1 resposta

13

Sim, você pode fazer isso adicionando uma entrada de menu ao menu do carregador de inicialização GRUB .

Você pode adicionar uma entrada de menu do GRUB personalizada editando /etc/grub.d/40_custom ,

Exemplo de menus personalizados :

 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 & Explicação:

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

  2. loopback é usado para fazer uma dispositivo a partir de uma imagem do sistema de arquivos. Para fazer isso, é necessário especificar o dispositivo e o arquivo de imagem. Aqui usamos (hd0,5)$isofile em que (hd0,5) representa a quinta partição do disco.

    • Pontos a serem observados: Em (hd0,5) , o dígito st representa o número do dispositivo que começa com 0 (aqui: 0 = 1 st device ) e
      2 nd digit representa o número da partição que começa a partir de 1 (aqui 5 = 5 th partição).
      Isso significa /dev/sda5
    • A 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 obter mais informações, visite: Como especificar dispositivos e arquivos .

  3. O comando

    linux é usado para carregar Kernel Linux ( vmlinuz ) do arquivo. Coloque o caminho do kernel Linux no ISO.

    • Leia / extraia o conteúdo do 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.

  4. O comando

    initrd é usado para carregar um ramdisk inicial para uma imagem do kernel do Linux e defina os parâmetros apropriados na área de configuração do Linux na memória.

    • O initrd é um esquema para carregar um sistema de arquivos raiz temporário na memória. Coloque o caminho de initrd no ISO.
    • Leia / extraia o conteúdo do 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 noeject , pode ser específico de uma distribuição GNU / Linux e variar para outra família de Linux. Você pode encontrar algumas configurações para diferentes famílias / distribuições em aqui .

    Nota: Algumas distribuições usam initrd.gz ou initrd.lz dependendo do algoritmo / compactação usado.

Após editar /etc/grub.d/40_custom , o GRUB precisa ser atualizado pelo comando update-grub2 . Após a reinicialização, você encontrará a lista personalizada do menu que você adicionou na tela do GRUB. E você pode usar o ambiente Live de uma distribuição GNU / Linux.

Para realizar a instalação a partir do ISO, o instalador pode precisar desmontar quaisquer partições montadas; ou seja, digamos que outro sistema esteja montado em /isodevice , então você pode umount -l /isodevice .

Espero que isso ajude.

    
por 23.12.2015 / 08:31