Una partizione / boot è sempre necessaria?


30

Devo creare una /bootpartizione ogni volta che installo una distribuzione Linux?

C'è una differenza tra avere una /bootpartizione e renderla /avviabile?


Penso che sia più sicuro mantenere / avviare la partizione separata per evitare di sovrascrivere il bootloader per errore. Se non sbaglio, il caricatore di avvio dovrebbe trovarsi nei primi cilindri del disco per assicurarsi che il processo di avvio funzioni correttamente poiché il BIOS carica sempre i primi byte dal disco supponendo che esista un codice in grado di gestire un ulteriore controllo ed è in grado per caricare il sistema operativo.
mnmnc,

1
Certamente non è una necessità, ma come detto nel commento sopra è una buona pratica.
Hamed Momeni il

Risposte:


29

Per rispondere alla vera domanda: no , una partizione separata per non /bootè certamente necessaria in ogni caso.

Tuttavia , anche se non dividere qualsiasi altra cosa, si raccomanda di fare partizioni separate per /, /boote swap. Suggerirei vivamente anche di mettere /homesu una partizione separata, anche se non si divide ulteriormente la gerarchia del file system.

Il motivo per mettere / avviare una partizione separata dal normale file system root è che è possibile ridurre la complessità del file system su disco, il che riduce le richieste del boot loader di avviare il kernel e il disco RAM iniziale. Questo diventa particolarmente interessante se stai eseguendo un'installazione non banale - forse stai eseguendo RAID, o un file system insolito come ZFS sulla partizione root o una partizione root crittografata. La partizione per / boot può quindi essere formattata usando, ad esempio, ext2fs semplice. Poiché la partizione deve essere solo piccola (poche centinaia di megabyte sono sufficienti; / l'avvio sul mio sistema attuale è di 100 MB e non ne ho alcun vincolo), gli svantaggi di un file system non journaled come ext2 devono non essere eccezionale perché i controlli sono comunque così veloci, e la relativa semplicità del file system, oltre ad essere in gran parte statica, potrebbe rendere meno probabile la corruzione non rilevata. Il fatto che il boot loader non debba comprendere nativamente un file system esotico o l'installazione del disco è un altro possibile vantaggio.

Il motivo per mettere / home su una partizione separata è che, anche se qualcosa va male e inizia a riempirlo (o se lo fai da solo), non rischi mai che causi problemi per i processi non utente (che raramente si esauriscono / home) o il processo di avvio stesso. Inoltre, diventa molto più facile reinstallare il sistema operativo o cambiare le distribuzioni, se puoi semplicemente dire al programma di installazione di lasciare / home così com'è e riformattare /per riempirlo con i suoi file. Come ultimo tentativo di recupero se qualcosa va veramente storto dal punto di vista del software, questo può fare la differenza.

L'esecuzione di un file di scambio non è un'installazione consigliata su Linux e non sono nemmeno sicuro del supporto dei kernel di stock delle distribuzioni più comuni(o consentire) scambio basato su file. Ci sono molte ragioni per questo, una delle quali è la prestazione (in gran parte dovuta al rischio di frammentazione). Lo scambio è già terribilmente lento rispetto alla RAM (è più una misura di stopgap che una correzione), quindi ci sono poche ragioni per renderlo ancora più lento rischiando la frammentazione. E una partizione di swap può essere tranquillamente condivisa tra le distribuzioni Linux in un ambiente multi-boot; forse non una considerazione nel caso generale, ma sicuramente una considerazione per alcuni. Una partizione di swap può anche essere posizionata su un disco fisico separato con caratteristiche diverse; forse un SSD in questi giorni o un'unità a 10krpm in esecuzione su un canale del controller separato (che ultimo è meno una considerazione al giorno d'oggi quando ogni disco SATA si trova su un canale separato, ma potrebbe fare la differenza nei giorni PATA).

Personalmente in questi giorni, separo /, / boot, e scambio, con / sul mio sistema attuale di 100 GB (non sono affatto vicino a tutto ciò; l'utilizzo attuale è 8,9 GB e questo mi dà tutto ciò di cui ho bisogno in termini di software e poi alcuni). Il resto del disco primario è costituito da un singolo file system, che per convenzione personale monto su / da ( disk a). Un secondo disco sarebbe / db, quindi / dc e così via. (Dubito che l'FHS approvi davvero questo schema, ma in pratica funziona bene per me.) Quindi lego-mount / home in / da, il che significa che posso spostare la directory fisica senza doversi preoccupare di aggiornare ogni singolo percorso di riferimento o ripartizionamento solo perché mi sono reso conto che sto esaurendo un po 'di spazio su disco per / home.


3
Inoltre, separate / boot è richiesto solo se la partizione di root è crittografata (e l'avvio è ovviamente in chiaro)
usr-local-ΕΨΗΕΛΩΝ

@djechelon Penso che rientri in "un'installazione non banale", ma modificherò il tuo esempio particolare in.
un CVn il

Sto esaminando ZFS e ogni guida sembra indicare che quando si utilizza ZFS su root, è necessario qualcosa come ext * on / boot.
CMCDragonkai,

1
@CMCDragonkai Questo non cambia la mia risposta secondo cui "no, una partizione separata per / boot non è certamente necessaria in ogni caso ".
un CVn

3

Non penso che sia più obbligatorio. In passato, era necessario a causa di alcune limitazioni con il BIOS. Era impossibile avere una partizione avviabile dopo 8 o 64 Go (non ricordo esattamente). Quindi, se si desidera avere un doppio avvio, è possibile inserire una prima piccola partizione (/ boot) e la partizione di Windows avviabile e, successivamente, le altre partizioni Linux. C'è molto tempo, non esiste alcuna directory / boot. Il kernel era direttamente su /.


1
Il kernel a volte veniva archiviato direttamente nel root (alcune distribuzioni potrebbero ancora farlo), ma potresti aver ancora bisogno di altre cose come initrd, System.map, configurazione del bootloader ecc., Che preferivano una loro gerarchia.
un CVn il

2

La differenza è l'ottimizzazione del filesystem. Generalmente ogni partizione ha le proprie tabelle per file, descrittori ecc. È possibile installare Linux su una singola '/' partizione senza '/ boot', '/ swap', / usr 'ecc., Ma queste tabelle interne a singola partizione diventeranno presto enormi e alcune operazioni diventeranno un po 'lente. Pertanto vengono utilizzate partizioni diverse per fornire contenitori separati e ottimizzati per diversi tipi di attività.


Il set completo di tabelle di inode viene utilizzato raramente al di fuori dei controlli del file system. Molto spesso, viene fatto riferimento solo alle tabelle per una determinata directory. Queste non sono (o poco) di dimensioni diverse in base alla dimensione della partizione.
un CVn il

La dimensione si basa sulla partizione usage, non sulla dimensione. inodeEcco un elenco, quindi più inodes = leggermente più tempo per la ricerca dei file, aggiungere ecc. Dove non c'è una grande differenza tra partizione vuota e partizione con milioni di file, ma per operazioni come l'avvio o lo scambio qualsiasi differenza conta.
grigoryvp,

Non vedo come il tuo commento contraddica il mio. E una partizione di swap non ha il concetto di inode, perché non tratta i file. C'è una grande differenza tra /swape swap.
un CVn il

0

No, penso che una partizione / boot non sia necessaria per diversi motivi:

  • La cartella / boot potrebbe non essere troppo piccola e includerla in /
  • Non è necessario creare una partizione perché i file e le cartelle di / boot non sono spesso aggiornati e accessibili. Non è come una cartella / tmp o / / swap. i programmi non scrivono su / boot.
  • / boot viene utilizzato solo durante l'avvio e gli aggiornamenti del kernel quando le immagini di initramfs vengono aggiornate.
  • Puoi includere / boot in / root in un array RAID 5 e funzionerà con GRUB2. Aggiungi GRUB2 a MBR per ogni unità. È possibile eseguire l'avvio dalla seconda, terza unità ... se la prima unità è morta.
  • Meno supporti = meno uuidi = maggiore visibilità = più semplicità
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.