GNU/Linux >> Linux Esercitazione >  >> Panels >> Webmin

Caricatore di avvio GRUB

In questa pagina il processo di avvio di Linux e il caricatore di avvio GRUB sono coperti. Spiega come eseguire diversi sistemi operativi o caricare diversi kernel all'avvio.

Contenuti

Introduzione ai caricatori di avvio

Quando viene avviato un sistema Linux in esecuzione su hardware PC, il primo codice da eseguire è il BIOS (Basic Input Output System) che viene caricato dalla ROM. Dopo aver terminato il test della memoria del sistema e aver scoperto quale hardware è installato, tenta di passare il controllo a un caricatore di avvio del sistema operativo per continuare il processo di avvio. Il boot loader è un piccolo programma che potrebbe richiedere all'utente di scegliere quale sistema operativo eseguire, quindi caricare il resto del kernel del sistema operativo da un disco rigido, un floppy disk o un'altra fonte.

In un sistema normale, il boot loader viene caricato dal BIOS dal primo blocco sul disco rigido primario, chiamato record di avvio principale o MBR. Tuttavia, il BIOS può (a seconda della sua configurazione) controllare prima l'unità floppy o il CD-ROM per un caricatore di avvio, in modo che il sistema possa essere avviato da un disco rimovibile. Questo di solito viene fatto solo quando si installa un nuovo sistema operativo:per il normale uso quotidiano, quasi tutti i sistemi si avviano dal disco rigido.

Ci sono diversi boot loader disponibili per Linux, ma i due più comuni ei due che verranno trattati in questo capitolo sono LILO e GRUB. Entrambi funzionano solo su hardware PC compatibile con x86, quindi se stai usando Linux su un sistema Apple, SPARC o Alpha, questo capitolo non ti sarà di grande utilità. Ogni piattaforma hardware non PC ha il proprio boot loader Linux specializzato, progettato per far fronte alle particolarità e ai requisiti della piattaforma.

Altri sistemi operativi (come Windows, FreeBSD e Solaris) hanno i propri boot loader, che fanno sostanzialmente la stessa cosa di LILO o GRUB, ma sono progettati per caricare invece il kernel di un sistema operativo diverso. Webmin non supporta la configurazione di alcun boot loader non Linux, quindi se stai eseguendo una versione diversa di Unix questo capitolo può essere saltato.

Su un sistema Linux, la responsabilità principale del boot loader è il caricamento del kernel. Una volta che il kernel è stato caricato in memoria e il controllo è stato trasferito ad esso, il lavoro del boot loader è terminato. Il kernel quindi monta il filesystem di root, i driver inizializzati e infine esegue il programma init per continuare il processo di avvio come spiegato nel capitolo 9.

Il caricatore di avvio può anche avviare il processo di caricamento di un sistema operativo completamente diverso su sistemi che ne hanno più di uno installato. Lo fa caricando il caricatore di avvio dell'altro sistema operativo dal primo blocco di una partizione o di un altro disco rigido e quindi trasferendo il controllo su di esso. L'altro sistema operativo viene quindi caricato esattamente come farebbe se il suo caricatore di avvio fosse eseguito direttamente dal BIOS. Essere in grado di decidere quale sistema operativo caricare all'avvio rende pratico averne due o più installati sullo stesso sistema, come Windows e Linux.

Sia LILO che GRUB possono essere configurati per visualizzare un menu di opzioni di avvio quando vengono caricati, consentendo all'utente di selezionare quale particolare kernel caricare o altro sistema operativo da caricare. Essere in grado di scegliere tra diversi kernel può essere particolarmente utile quando ne hai installato uno nuovo e vuoi avere la possibilità di avviare sia il nuovo che il vecchio. È anche possibile avere diverse opzioni di avvio che caricano tutte la stessa versione del kernel, ma con diverse opzioni della riga di comando.

Tutte le distribuzioni Linux ti daranno la possibilità di configurare automaticamente un boot loader al momento dell'installazione. Di solito puoi scegliere di avviare anche altri sistemi operativi installati, ad esempio se stai aggiungendo Linux a un sistema con Windows già installato su una partizione diversa. Se questa configurazione predefinita funziona per te, fai molta attenzione quando modifichi la configurazione di LILO o GRUB manualmente o tramite Webmin. Un singolo errore potrebbe rendere non avviabile il sistema e richiedere l'uso di un disco di ripristino per il ripristino.

GRUB di solito usa il file di configurazione /boot/grub/grub.cfg (in precedenza menu.lst ) e, a differenza di LILO, comprende il formato dei filesystem ext2, ext3, ext4 e vfat e quindi può leggere i file menu.lst e kernel senza la necessità di una mappa a blocchi. Per questo motivo e poiché GRUB può caricare un kernel archiviato ovunque sul disco rigido, è generalmente considerato un boot loader superiore e ha superato LILO sulla maggior parte delle distribuzioni Linux.

GRUB 2

GRUB2 utilizzato in molte (tutte?) distribuzioni più recenti utilizza i file di configurazione in /etc/grub.d/ .La configurazione del modulo potrebbe essere modificata, ma non funziona ancora.

Il modulo Boot Loader di GRUB

Come suggerisce il nome, questo modulo ti consente di configurare GRUB. Come il modulo LILO, quando lo si accede dalla categoria Hardware la pagina principale mostra un elenco di icone, una per ogni opzione di avvio. Questa schermata mostra un esempio.

Il modulo Boot Loader di GRUB

L'icona del modulo apparirà solo se Webmin rileva che GRUB è installato sul tuo sistema. Se non è visibile o se viene visualizzato un errore quando si accede al modulo, GRUB non è installato. Se è così, probabilmente viene utilizzato LILO e quindi dovresti usare il modulo Boot Loader di Linux.

Una particolarità di GRUB è che internamente si riferisce a tutti i dischi rigidi con il loro numero di disco BIOS. hd0 è la prima unità identificata dal BIOS e hd0,0 è la prima partizione su quell'unità. Su un sistema con solo dischi rigidi IDE, questa numerazione è abbastanza semplice:il disco BIOS 0 è il master principale o /dev/hda su Linux. Il disco 2 (chiamato hd1 da GRUB) è lo slave primario e così via. Tuttavia, su un sistema con unità SCSI e IDE, le cose diventano più complesse. I dischi IDE di solito vengono prima di SCSI nell'ordine del BIOS, ma questo potrebbe essere invertito su alcuni sistemi. Fortunatamente, il modulo GRUB nelle versioni recenti di Webmin è in grado di rilevare automaticamente la relazione tra i file del dispositivo Linux ei numeri del disco del BIOS.

Avvio di un nuovo kernel Linux o BSD con GRUB

Se hai appena compilato un nuovo kernel e vuoi essere in grado di usarlo, dovrai aggiungere una nuova opzione di avvio di GRUB.

Un processo simile dovrebbe essere seguito se hai entrambi Linux e FreeBSD, NetBSD o OpenBSD installati sul tuo sistema e vuoi essere in grado di sceglierne uno all'avvio. Per configurarlo, i passaggi da seguire sono:

  1. Per avviare un kernel Linux, dopo la compilazione copia il suo file immagine compresso del kernel (di solito trovato nella directory dei sorgenti in arch/i386/bzImage) nella directory /boot. Normalmente dovrebbe essere rinominato in vmlinuz-_xx.yy.zz_, dove xx.yy.zz è il numero di versione del kernel.
  2. Nella pagina principale del caricatore di avvio GRUB modulo, fai clic su Aggiungi una nuova opzione di avvio collegamento per accedere al modulo di creazione dell'opzione.
  3. Inserisci un nome univoco per il tuo nuovo kernel nel Titolo dell'opzione campo, come linux-xx.yy.zz . Qualunque cosa tu inserisca apparirà nel menu di GRUB all'avvio.
  4. Imposta la partizione dell'immagine di avvio campo su Selezionato e scegli la partizione che contiene il tuo kernel dall'elenco accanto ad essa. Se la partizione non appare nel menu, dovrai scegliere Altro invece e inserisci il disco e la partizione nel campo accanto, nel formato hd_X_,_Y_ usato da GRUB. Ad esempio, hd2,1 sarebbe la seconda partizione sull'unità BIOS 3.
  5. Per avvio del sistema operativo , seleziona kernel Linux e inserisci il percorso del file di immagine compresso del kernel nel campo accanto ad esso. Per passare ulteriori argomenti al kernel, inseriscili nelle Opzioni del kernel campo sottostante. Per FreeBSD, devi anche selezionare kernel Linux e inserisci /boot/loader nel campo. Non sono consentiti argomenti aggiuntivi del kernel. Per NetBSD o OpenBSD, seleziona kernel Linux e inserisci type=netbsd /netbsd-elf .
  6. Se la directory principale del sistema è montata da un dispositivo che non è compilato nel kernel Linux (come un disco SCSI o un controller RAID hardware), sarà necessario creare un disco RAM iniziale contenente i moduli del kernel necessari per accedere al filesystem di root. Il modo più semplice per verificare se ciò è necessario è guardare altre configurazioni del kernel di avvio esistenti. Per creare un file RAM disk iniziale nella directory /boot per la versione del kernel xx.yy.zz , dovrai eseguire un comando come :mkinitrd /boot/initrd-_xx.yy.zz_ xx.yy.zz Quindi imposta il file ramdisk iniziale campo al percorso del file appena creato.
  7. Infine, fai clic su Crea pulsante. Finché non sono stati rilevati errori nel tuo input, verrai riportato alla pagina principale del modulo che ora conterrà un'icona di aggiunta per il nuovo kernel.
  8. Per avviare il nuovo kernel, sarà necessario riavviare il sistema. Quando GRUB viene caricato all'avvio, visualizzerà un menu di opzioni di avvio disponibili, da cui è possibile selezionare il kernel appena aggiunto. Assicurati di guardare l'output di debug e i messaggi di errore visualizzati dal kernel durante l'avvio, in modo che se qualcosa va storto puoi diagnosticare il problema. Se si verifica un problema, potrebbe essere necessario riavviare e selezionare la vecchia opzione del kernel, quindi utilizzare Webmin per correggere la configurazione di GRUB.

Dopo aver creato una nuova opzione di avvio del kernel, puoi modificarla facendo clic sulla sua icona nella pagina principale del modulo. Nel modulo di modifica, è possibile modificare qualsiasi campo e salvare le modifiche facendo clic su Salva oppure è possibile rimuovere il kernel facendo clic su Elimina invece. Fai sempre attenzione a modificare le configurazioni del kernel che non hai creato tu stesso, poiché un errore potrebbe rendere il sistema non avviabile.

Avvio di un altro sistema operativo con GRUB

Se il tuo sistema ha un altro sistema operativo installato su un disco rigido o una partizione diversa, puoi configurare GRUB in modo che possa essere scelto e avviato all'avvio invece di Linux. Se desideri avviare FreeBSD, NetBSD o OpenBSD, consulta la sezione *Avvio di un nuovo kernel Linux o BSD* sopra, ma per Windows, UnixWare o qualsiasi altro sistema operativo i passaggi da seguire sono:

  1. Nella pagina principale del modulo, fai clic su Aggiungi una nuova opzione di avvio per visualizzare il modulo di creazione dell'opzione di avvio.
  2. Inserisci un nome univoco per nel Titolo dell'opzione campo, come Windows.
  3. Imposta la partizione dell'immagine di avvio campo su Selezionato e scegli la partizione che contiene l'altro sistema operativo dall'elenco accanto ad essa. Se la partizione non appare nel menu, dovrai scegliere Altro invece e inserisci il disco e la partizione nel campo accanto, nel formato hd_X_,_Y_ usato da GRUB.
  4. Modificare il Sistema operativo da avviare ad Altri SO .
  5. Normalmente GRUB eseguirà semplicemente il boot loader nel primo settore della partizione scelta. Tuttavia, potrebbe non esserci sempre un caricatore di avvio lì, se ad esempio il sistema operativo normalmente scrive il suo caricatore nel record di avvio principale. Se l'altro sistema operativo è Windows, seleziona *Da file chainloader* e inserisci +1 nel campo accanto. Devi anche controllare l'Azione Eseguire la partizione di root? opzione. Se si avvia SCO UnixWare, è necessario selezionare anche *Da file chainloader* e immettere force +1 nel campo accanto. È necessario selezionare anche l'opzione *Crea partizione di root?*.
  6. Fai clic su Crea pulsante per aggiungere il nuovo sistema operativo. Il tuo browser tornerà alla pagina principale del modulo, che ora includerà un'icona per la tua nuova opzione di avvio.
  7. Per avviare l'altro sistema operativo, riavvia il sistema e selezionalo dal menu di GRUB all'avvio.

Come con le opzioni di avvio per i kernel Linux, puoi modificare o eliminare l'opzione per un altro sistema operativo facendo clic sulla sua icona nella pagina principale del modulo. Eventuali modifiche avranno effetto immediato, da utilizzare al successivo riavvio del sistema.

Modifica delle opzioni globali di GRUB

GRUB ha diverse opzioni che si applicano a tutti i kernel e sistemi operativi avviabili. Per modificare queste opzioni globali, i passaggi da seguire sono:

  1. Fai clic su Modifica opzioni globali pulsante nella pagina principale del modulo, che ti porterà al modulo delle opzioni.
  2. Per controllare quale kernel viene avviato automaticamente se l'utente non ne sceglie uno dal menu di GRUB entro il limite di tempo configurato, cambia l'Opzione di avvio predefinita campo. Se l'opzione che hai scelto non può essere caricata, GRUB tornerà a ciò che è selezionato nell'Opzione di avvio di riserva campo.
  3. Per modificare la quantità di tempo che GRUB attenderà affinché l'utente scelga un'opzione di avvio prima che utilizzi invece quella predefinita, modificare il campo *Timeout prima di utilizzare il campo * predefinito.
  4. Il menu di avvio di GRUB consente agli utenti di eseguire operazioni come modificare i parametri del kernel e leggere file arbitrari su filesystem Linux. Per evitarlo, inserisci una password nella Password di avvio campo. Ciò limiterà gli utenti alle opzioni di avvio disponibili a meno che non venga immessa la password. Inoltre, le opzioni di avvio in cui la password è bloccata? campo è stato impostato non sarà nemmeno selezionabile.
  5. Al termine, fai clic su Salva pulsante e verrai riportato alla pagina principale del modulo.
Aggiungi opzione di avvio

Installazione di GRUB

Se hai utilizzato il boot loader LILO e desideri passare a GRUB, dovrai installarlo sullo stesso record di avvio principale o sulla stessa partizione che LILO sta attualmente utilizzando. Questo deve essere fatto solo una volta, a differenza di LILO che deve essere efficacemente reinstallato ogni volta che viene modificata la sua configurazione.

Per installare GRUB, i passaggi da seguire sono:

  1. Nella pagina principale del modulo, fai clic su Modifica opzioni globali pulsante.
  2. Da Installa GRUB su disco/partitone menu, seleziona il disco o la partizione su cui desideri installare GRUB. Questo sarà in genere il primo disco rigido del tuo sistema.
  3. Fai clic su Salva pulsante per tornare alla pagina principale del modulo.
  4. Fai clic su Installa GRUB per scriverlo sull'unità o sulla partizione scelta nel passaggio 2.
  5. Affinché il tuo sistema possa essere avviato in Linux d'ora in poi, crea tutte le opzioni di avvio del kernel necessarie come spiegato nella sezione *Avvio di un nuovo kernel Linux o BSD*. Se riavvii prima di farlo, sarà impossibile riavviare Linux!

Webmin
  1. Ubuntu 14.04 non avvia il prompt di Grub?

  2. Come saltare il menu Grub su un sistema dual-boot??

  3. Grub Uefi Windows Boot fallito?

  4. CentOS / RHEL 5,6:come reinstallare il caricatore GRUB dalla modalità di ripristino

  5. Soluzione per l'errore di avvio di Ubuntu "Nessuna partizione del genere"

Riparazione dell'avvio di Ubuntu

Come riparare il tuo Grub 2 su Ubuntu

Come installare il caricatore di avvio BURG in Ubuntu

Come installare Grub Customizer su Ubuntu

Risolto il problema con Grub che non veniva visualizzato per il sistema di avvio doppio di Windows e Linux

CentOS / RHEL 7:processo di avvio