Questo tutorial ti mostrerà come avviare il file ISO Debian direttamente dal disco rigido con il boot loader GRUB2 in modo da non dover creare un CD live o una USB live. Al giorno d'oggi è semplicissimo creare una live USB Linux, puoi farlo con uno strumento grafico o dalla riga di comando. Ma cosa succede se non si dispone di un'unità flash USB in giro o si desidera installare Debian sull'unità flash USB?
GRUB in soccorso
Il boot loader GRUB2 è in grado di avviare il file immagine ISO di Linux direttamente dal tuo disco rigido.
- GRUB2 supporta molti file system, inclusi ma non limitati a ext4, HFS+ e NTFS, il che significa che puoi inserire il tuo file ISO su uno qualsiasi di questi file system.
- GRUB 2 può leggere file direttamente da dispositivi LVM e RAID.
- GRUB2 ha anche il supporto di rete. Puoi caricare immagini del sistema operativo da una rete utilizzando TFTP protocollo.
In questo tutorial parleremo solo dell'avvio del file ISO da un disco rigido locale. Per utilizzare questa funzione, devi avere una distribuzione Linux con GRUB2 come boot loader già installato sul tuo computer.
Come avviare il file ISO Debian direttamente dal disco rigido con GRUB2
Innanzitutto, avvia il tuo computer e avvia la tua distribuzione Linux esistente. Scarica Debian ISO. È possibile utilizzare l'ISO di netinstall o l'ISO del CD live. Devi anche scaricare hd-media/initrd.gz
e hd-media/vmlinuz
da questa pagina.
- initrd.gz è il ramdisk iniziale.
- vmlinuz è il kernel Linux.
Se desideri un programma di installazione grafico che ti consenta di utilizzare un mouse per fare clic, scarica hd-media/gtk/initrd.gz
e hd-media/gtk/vmlinuz
invece. Metti questi tre file nella stessa directory. Quindi, apri una finestra di terminale e modifica il /etc/grub.d/40_custom
file con un editor di testo come nano.
sudo nano /etc/grub.d/40_custom
In questo file, possiamo aggiungere voci personalizzate al menu di avvio di GRUB. In questo caso, vogliamo aggiungere una voce per avviare un file ISO Debian. Quello che segue è un esempio.
menuentry "Debian.4 net-install.iso" { insmod ext2 set root='(hd0,2)' linux /linuxbabe/vmlinuz initrd /linuxbabe/initrd.gz }
Spiegazione:
- voce di menu :questa voce verrà visualizzata nel menu di avvio di GRUB2. Puoi nominarlo come preferisci.
- L'insmod comando inserisce un modulo. Poiché questi tre file sono archiviati nella mia partizione home,
ext2
modulo è necessario. Se questi file si trovano su una partizione NTFS, è necessarioinsmod ntfs
invece. - Il set comando imposta la seconda partizione del mio primo disco rigido come directory principale. (La mia partizione home è la seconda partizione del mio primo disco rigido.)
- Il
linux
comando carica un kernel Linux dal percorso specificato.vmlinuz
indica un eseguibile del kernel Linux compresso che supporta la memoria virtuale. La lettera 'z' indica che è compressa. - Il
initrd
comando carica un ramdisk iniziale dal percorso specificato. Può essere utilizzato solo dopolinux
comando è stato eseguito. Il ramdisk iniziale è un file system radice minimo montato sulla RAM.
Nota che GRUB non distinguere IDE da SCSI. In Linux, /dev/hda
si riferisce al primo disco rigido IDE e a /dev/sda
si riferisce al primo disco rigido SCSI o SATA. Se utilizzi un SSD NMVe, potrebbe essere denominato /dev/nvme0n1
, /dev/nvme1n1
e così via. Ma in GRUB, il primo disco rigido viene sempre chiamato hd0
, indipendentemente dal tipo di interfaccia. Nota inoltre che i numeri di partizione in GRUB iniziano da 1, non da 0.
Per controllare il numero della tua partizione, puoi eseguire lsblk
o sudo parted -l
comando nella finestra del terminale. Puoi anche vederlo nell'editor di partizioni Gparted, che può essere installato eseguendo il seguente comando.
sudo apt install gparted
Sul mio computer, vmlinuz
,initrd.gz
e l'immagine ISO di Debian sono archiviate in/home/linuxbabe/
directory, ma ho una partizione home separata ed è impostata come root nel file di configurazione di GRUB, quindi il percorso dovrebbe iniziare con /linuxbabe
, non /home/linuxbabe/
.
Salva e chiudi il file. Quindi aggiorna il menu di avvio di GRUB con il seguente comando:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Su Fedora, il comando da eseguire è:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Sulla distribuzione Linux basata su Debian, puoi utilizzare il seguente comando per aggiornare il menu di avvio di GRUB.
sudo update-grub
Puoi vedere dall'output che GRUB ha aggiunto una nuova voce di menu. (Le versioni più recenti di GRUB non mostrano questo messaggio.)
Ora riavvia il computer. Nel menu di avvio di GRUB, puoi vedere la voce di menu che hai appena aggiunto. Tieni presente che potresti dover premere il tasto Maiusc destro per visualizzare il menu di avvio di GRUB al riavvio del computer.
Selezionalo e premi Invio. Il kernel Linux (vmlinuz
) e il disco RAM iniziale (intird.gz
) verrà caricato in memoria. Quindi verrà caricato un componente aggiuntivo del programma di installazione dall'immagine ISO di Debian.
Evitare la trappola comune
Potresti aver utilizzato il seguente codice per avviare Ubuntu ISO dal disco rigido e ora provi a utilizzare la stessa sintassi per Debian ISO.
menuentry "ubuntu-16.04-desktop-amd64.iso" { set isofile="/home/username/Downloads/ubuntu-16.04-desktop-amd64.iso" loopback loop (hd0,1)/$isofile linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet noeject nopromt spalsh -- initrd (loop)/casper/initrd.lz }
Non funzionerà. Se usi questa sintassi, riceverai il seguente errore dopo aver avviato l'ISO di Debian.
No common CD-ROM drive was detected.
o
No medium found containing a live file system.
Il motivo è che il metodo Ubuntu utilizza il kernel Linux e il ramdisk iniziale all'interno dell'immagine ISO, ma devi usare hd-media/vmlinuz
e hd-media/initrd.gz
per avviare il programma di installazione Debian dal disco rigido. L'immagine ISO di Debian è il CD-ROM/il supporto richiesto dall'installer di Debian.
Alcuni altri suggerimenti
Se i tre file si trovano nella directory di primo livello di una partizione del disco, non tralasciare la barra iniziale quando specifichi il percorso di vmlinuz
e intird.gz
. In altre parole, hai bisogno
linux /vmlinuz initrd /initrd.gz
piuttosto che
linux vmlinuz initrd initrd.gz
Se i tre file si trovano su una partizione estesa del disco MBR, il numero della partizione inizia da 5, invece di 1. Ad esempio, la prima partizione logica all'interno della partizione estesa sarà numerata come 5; la seconda partizione logica all'interno della partizione estesa sarà numerata come 6.
Se hai un disco SATA e un SSD NVMe all'interno del tuo computer, il disco SATA è il primo e l'SSD NVMe è il secondo. Lo stesso vale per un drive USB e un SSD NVMe.
Spero che questo tutorial ti abbia aiutato ad avviare l'immagine ISO Debian dal disco rigido utilizzando il caricatore di avvio GRUB2. Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita per ricevere altri suggerimenti e trucchi.