Come si avvia dal file ISO archiviato sul disco rigido?


12

So che posso creare / masterizzare CD / DVD di avvio o USB dal vivo e posso avviare / installare da esso. Ma supponiamo che attualmente stia eseguendo GNU / Linux e che abbia un file ISO di un altro GNU / Linux che voglio installare sul mio disco rigido, quindi posso avviare direttamente da ISO dal disco rigido e provare / installare quel sistema operativo GNU / Linux ?

Risposte:


15

Sì, puoi farlo aggiungendo una voce di menu al GRUBmenu del caricatore di avvio.

Puoi aggiungere una voce di menu GRUB personalizzata modificando /etc/grub.d/40_custom,

Esempio di menu personalizzati :

 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
}

Istruzioni e spiegazioni:

  1. Il comando setviene utilizzato per archiviare il percorso del file ISO in una variabile, qui isofile.

  2. loopbackviene utilizzato per creare un dispositivo da un'immagine del file system. Per fare ciò, è necessario specificare il dispositivo e il file di immagine. Qui abbiamo usato (hd0,5)$isofilein cui (hd0,5)rappresenta la quinta partizione del disco.

    • Punti di nota: In (hd0,5),
      1 ° cifra rappresenta il numero di dispositivo che inizia da 0(qui: 0 = 1 ° dispositivo) e
      2 ° cifra rappresenta il numero di partizione che parte da 1(qui 5 = 5 ° partizione).
      Questo significa/dev/sda5
    • E la variabile $isofileha il percorso del file ISO. Quindi, finalmente lo diventa (hd0,5)/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso.
    • Per ulteriori informazioni, visitare: Come specificare dispositivi e file .

  3. linuxIl comando viene utilizzato per caricare il kernel Linux ( vmlinuz ) dal file. Inserisci il percorso del kernel Linux nell'ISO.

    • Leggi / estrai il contenuto di ISO per ottenere il percorso dell'esempio del 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
      

      quindi, è /casper/vmlinuzstato usato qui.

  4. initrd Il comando viene utilizzato per caricare un ramdisk iniziale per un'immagine del kernel Linux e impostare i parametri appropriati nell'area di configurazione di Linux in memoria.

    • initrd è uno schema per il caricamento in memoria di un file system radice temporaneo. Inserisci il percorso initrddell'ISO.
    • Leggi / estrai il contenuto di ISO per ottenere il percorso di 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. Il parametro aggiuntivo come boot=casper iso-scan/filename=$isofile noprompt noejectpotrebbe essere specifico per una distribuzione GNU / Linux e variare per un'altra famiglia di Linux. Puoi trovare alcune configurazioni per diverse famiglie / distribuzioni da qui .

    Nota: alcune distribuzioni utilizzano initrd.gzo in initrd.lzbase all'algoritmo / compressione utilizzati.

Dopo la modifica /etc/grub.d/40_custom, GRUB deve essere aggiornato tramite update-grub2comando. Al riavvio, troverai la voce di menu personalizzata che hai aggiunto nella schermata di GRUB. E puoi usare l'ambiente Live di una distribuzione GNU / Linux.

Per eseguire l'installazione da ISO, l'installatore potrebbe aver bisogno di smontare eventuali partizioni montate; cioè dire che un altro sistema è montato su /isodevice, quindi è possibile umount -l /isodevice.


Wow, sono impressionato ... Avrei pensato che sarebbe stato impossibile, poiché l'installazione di un nuovo sistema operativo comporta spesso la riformattazione delle partizioni, che potrebbe includere la partizione in cui è archiviato il file ISO.
Wildcard il

I tuoi campioni usano GRUB2. Centos 6 utilizza GRUB1 (grub legacy) e gli esempi precedenti non funzionano.
Ikrom,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.