¿Cómo inicio desde un archivo ISO almacenado en el disco duro?

12

Sé que puedo crear / grabar CD / DVD de arranque o USB en vivo y puedo arrancar / instalar desde él. Pero supongamos que actualmente estoy ejecutando GNU / Linux y tengo un archivo ISO de otro GNU / Linux que quiero instalar en mi disco duro, entonces ¿Puedo arrancar directamente desde ISO desde el disco duro e intentar / instalar ese sistema operativo GNU / Linux? ?

Pandya
fuente

Respuestas:

15

Sí, puede lograr esto agregando una entrada de menú al GRUBmenú del cargador de arranque.

Puede agregar una entrada de menú GRUB personalizada editando /etc/grub.d/40_custom,

Ejemplo de menuentry personalizado :

 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
}

Instrucción y explicación:

  1. El comando setse usa para almacenar la ruta del archivo ISO en una variable, aquí isofile.

  2. loopbackse usa para hacer un dispositivo a partir de una imagen del sistema de archivos. Para hacer eso, es necesario especificar el dispositivo y el archivo de imagen. Aquí utilizamos (hd0,5)$isofileen el que (hd0,5)representa la quinta partición del disco.

    • Puntos a Nota: En (hd0,5),
      1 st dígito representa el número de dispositivo que comienza a partir de 0(aquí: 0 = 1 st dispositivo) y
      2 nd dígito representa el número de partición que se inicia a partir de 1(aquí 5 = 5 º partición).
      Eso significa/dev/sda5
    • Y variable $isofiletiene la ruta del archivo ISO. Entonces, finalmente se convierte (hd0,5)/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso.
    • Para obtener más información, visite: Cómo especificar dispositivos y archivos .

  3. linuxEl comando se utiliza para cargar el kernel de Linux ( vmlinuz ) desde el archivo. Ponga la ruta del kernel de Linux en la ISO.

    • Lea / extraiga el contenido de ISO para obtener la ruta del ejemplo del núcleo:

       $ 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
      

      entonces, /casper/vmlinuzfue usado aquí.

  4. initrd El comando se utiliza para cargar un disco RAM inicial para una imagen del kernel de Linux y establecer los parámetros apropiados en el área de configuración de Linux en la memoria.

    • initrd es un esquema para cargar un sistema de archivos raíz temporal en la memoria. Ponga el camino de initrden el ISO.
    • Lea / extraiga el contenido de ISO para obtener la ruta 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. El parámetro adicional tal como boot=casper iso-scan/filename=$isofile noprompt noejectpuede ser específico para una distribución GNU / Linux y puede variar para otra familia de Linux. Puede encontrar algunas configuraciones para diferentes familias / distribución desde aquí .

    Nota: Algunas distribuciones usan initrd.gzo initrd.lzdependen del algoritmo / compresión utilizado.

Después de editar /etc/grub.d/40_custom, GRUB necesita ser actualizado por update-grub2comando. Al reiniciar, encontrará el menú personalizado que ha agregado en la pantalla GRUB. Y puede usar el entorno Live de una distribución GNU / Linux.

Para realizar la instalación desde ISO, el instalador puede necesitar desmontar cualquier partición montada; es decir, si hay otro sistema montado /isodevice, entonces puede hacerlo umount -l /isodevice.

Pandya
fuente
Wow, estoy impresionado ... Pensé que sería imposible, ya que la instalación de un nuevo sistema operativo a menudo implica volver a formatear las particiones, lo que podría incluir la partición en la que está almacenado su archivo ISO.
Comodín el
Sus muestras usan GRUB2. Centos 6 usa GRUB1 (legado de grub) y los ejemplos anteriores no funcionan.
Ikrom