Ist eine / boot-Partition immer notwendig?

30

Soll ich bei /bootjeder Installation einer Linux-Distribution eine Partition erstellen ?

Gibt es einen Unterschied zwischen einer /bootPartition und dem Booten der /Partition?

user1301428
quelle
Ich halte es für sicherer, die / boot-Partition getrennt zu halten, um ein versehentliches Überschreiben des Bootloaders zu vermeiden. Wenn ich mich nicht irre, sollte sich der Bootloader in den ersten Zylindern der Festplatte befinden, um sicherzustellen, dass der Bootvorgang ordnungsgemäß funktioniert, da das BIOS immer die ersten Bytes von der Festplatte lädt, vorausgesetzt, es gibt einen Code, der die weitere Steuerung übernehmen kann und in der Lage ist um das Betriebssystem zu laden.
mnmnc
1
Es ist sicherlich keine Notwendigkeit, aber wie oben erwähnt, ist es eine gute Praxis.
Hamed Momeni

Antworten:

29

Zur vollständigen Beantwortung der Frage: Nein , eine separate Partition für /bootist sicherlich nicht in jedem Fall erforderlich.

Allerdings , auch wenn Sie nichts anderes geteilt, ist es im Allgemeinen haben separate Partitionen für empfohlen /, /bootund Swap. Ich würde auch dringend empfehlen , /homeeine separate Partition zu erstellen, auch wenn Sie die Dateisystemhierarchie nicht weiter aufteilen.

Der Grund für das Platzieren / Booten auf einer Partition, die vom normalen Root-Dateisystem getrennt ist, besteht darin, dass Sie die Komplexität des Dateisystems auf der Festplatte reduzieren können, wodurch die Anforderungen an den Bootloader zum Bootstrap des Kernels und der anfänglichen RAM-Festplatte verringert werden. Dies ist besonders interessant, wenn Sie ein nicht triviales Setup ausführen - möglicherweise verwenden Sie RAID oder ein ungewöhnliches Dateisystem wie ZFS auf der Root-Partition oder eine verschlüsselte Root-Partition. Die Partition für / boot kann dann zB mit plain ext2fs formatiert werden. Da die Partition nur klein sein muss (ein paar Hundert Megabyte sind ausreichend; / boot auf meinem aktuellen System ist 100 MB groß, und ich habe keine Einschränkungen), müssen die Nachteile eines nicht journalisierten Dateisystems wie ext2 berücksichtigt werden nicht so toll sein, weil Schecks sowieso so schnell sind, und die relative Einfachheit des Dateisystems sowie die Tatsache, dass es weitgehend statisch ist, können die Wahrscheinlichkeit einer unerkannten Beschädigung verringern. Ein weiterer möglicher Vorteil besteht darin, dass der Bootloader ein exotisches Dateisystem oder ein Festplatten-Setup nicht von Haus aus verstehen muss.

Der Grund für das Verschieben von / home auf eine separate Partition besteht darin, dass Sie selbst dann, wenn etwas nicht mehr funktioniert und anfängt, es zu füllen (oder wenn Sie dies selbst tun), niemals das Risiko eingehen, dass es Probleme für Nichtbenutzerprozesse verursacht (denen / selten ausgeht). home) oder der Bootvorgang selbst. Außerdem wird es viel einfacher, das Betriebssystem neu zu installieren oder die Distributionen zu wechseln, wenn Sie dem Installationsprogramm einfach anweisen, / home so zu lassen, wie es ist, und es neu /zu formatieren , um es mit seinen eigenen Dateien zu füllen. Als letzte Rettungsmaßnahme kann dies einen großen Unterschied bedeuten, wenn in Bezug auf die Software wirklich etwas schief geht.

Das Ausführen einer Auslagerungsdatei wird unter Linux nicht empfohlen, und ich bin mir nicht einmal sicher, ob die meisten gängigen Distributionen die Standardkernel unterstützenDateibasiertes Auslagern (oder zulassen). Hierfür gibt es mehrere Gründe. Ein wichtiger Grund ist die Leistung (hauptsächlich aufgrund des Risikos einer Fragmentierung). Swap ist im Vergleich zum RAM bereits sehr langsam (es ist eher eine Notlösung als eine Korrektur), sodass es kaum einen Grund gibt, es durch das Risiko einer Fragmentierung noch langsamer zu machen. Und eine Swap-Partition kann sicher von Linux-Distributionen in einer Multi-Boot-Umgebung gemeinsam genutzt werden. vielleicht keine Überlegung im allgemeinen Fall, aber sicherlich eine Überlegung für einige. Eine Auslagerungspartition kann auch auf einer separaten physischen Festplatte mit unterschiedlichen Merkmalen platziert werden. Vielleicht heutzutage eine SSD oder eine 10-krpm-Festplatte, die von einem separaten Controllerkanal betrieben wird (dies ist heutzutage weniger wichtig, wenn sich jede SATA-Festplatte auf einem separaten Kanal befindet, kann aber in den PATA-Tagen einen Unterschied bewirken).

Persönlich trenne ich in diesen Tagen /, / boot und tausche mit / auf meinem aktuellen System 100 GB aus (ich bin weit davon entfernt, all das zu nutzen; die aktuelle Nutzung beträgt 8,9 GB, und das gibt mir alles, was ich in Bezug auf benötige Software und dann einige). Der Rest der primären Festplatte besteht aus einem einzelnen Dateisystem, das ich gemäß persönlicher Konvention unter / da ( disk a) einhänge . Eine zweite Festplatte wäre / db, dann / dc und so weiter. (Ich bezweifle, dass das FHS dieses Schema wirklich gutheißt, aber es funktioniert in der Praxis gut.) Dann binde ich mount / home in / da, was bedeutet, dass ich das physische Verzeichnis verschieben kann, ohne mich um die Aktualisierung jeder einzelnen Pfadreferenzierung kümmern zu müssen es oder Neupartitionierung, nur weil ich festgestellt habe, dass mir der Speicherplatz für / home ein wenig ausgeht.

ein CVn
quelle
3
Außerdem ist separate / boot nur erforderlich, wenn die Root-Partition verschlüsselt ist (und das Booten offensichtlich klar ist)
usr-local-ΕΨΗΕΛΩΝ
@djechelon Ich denke, das fällt unter "ein nicht triviales Setup", aber ich werde Ihr spezielles Beispiel in bearbeiten.
ein CVn
Ich beschäftige mich mit ZFS, und jede Anleitung scheint darauf hinzudeuten, dass Sie bei der Verwendung von ZFS unter root so etwas wie ext * on / boot benötigen.
CMCDragonkai
1
@CMCDragonkai Das ändert nichts an meiner Antwort, dass "nein, eine separate Partition für / boot ist sicherlich nicht in jedem Fall notwendig . "
ein CVn
3

Ich denke nicht, dass es mehr obligatorisch ist. In der Vergangenheit war dies aufgrund einiger Einschränkungen im BIOS erforderlich. Es war unmöglich, nach 8 oder 64 Go eine bootfähige Partition zu haben (ich erinnere mich nicht genau). Wenn Sie dann einen doppelten Start wünschen, können Sie eine erste kleine Partition (/ boot) und die bootfähige Windows-Partition und danach die anderen Linux-Partitionen einfügen. Es ist lange her, es gab überhaupt kein / boot-Verzeichnis. Kernel war direkt am /.

Thierry Chich
quelle
1
Der Kernel wurde manchmal direkt im Root gespeichert (einige Distributionen tun dies möglicherweise noch), aber Sie benötigen möglicherweise noch andere Dinge wie initrd, System.map, Bootloader-Konfiguration usw. usw., die eine eigene Hierarchie bevorzugen.
ein Lebenslauf vom
2

Der Unterschied liegt in der Dateisystemoptimierung. Im Allgemeinen hat jede Partition ihre eigenen Tabellen für Dateien, Deskriptoren usw. Sie können Linux auf einer einzelnen '/' Partition ohne '/ boot', '/ swap', / usr 'usw. installieren, aber diese interne Tabelle für eine einzelne Partition wird bald riesig und einige Operationen werden etwas langsam. So werden unterschiedliche Partitionen verwendet, um getrennte, optimierte Container für unterschiedliche Arten von Aufgaben bereitzustellen.

grigoryvp
quelle
Der vollständige Satz von Inode-Tabellen wird außerhalb von Dateisystemprüfungen selten verwendet. Am häufigsten wird nur auf die Tabellen für ein bestimmtes Verzeichnis verwiesen. Diese unterscheiden sich in der Größe nicht (oder nur geringfügig) von der Partitionsgröße.
ein Lebenslauf vom
Die Größe basiert auf der Partition usageund nicht auf der Größe. inode's ist eine Liste, also mehr inodes = etwas mehr Zeit für das Nachschlagen, Hinzufügen usw. Wo ist nicht ein großer Unterschied zwischen leerer Partition und Partition mit Millionen Dateien, aber für Operationen wie Booten oder Tauschen ist jeder Unterschied wichtig.
Grigoryvp
Ich verstehe nicht, wie Ihr Kommentar meinem widerspricht. Und eine Swap-Partition kennt keine Inodes, weil sie sich nicht mit Dateien befasst. Es gibt einen großen Unterschied zwischen /swapund swap.
ein Lebenslauf vom
0

Nein, ich denke, eine / boot-Partition ist aus mehreren Gründen nicht erforderlich:

  • Möglicherweise möchten Sie, dass der Ordner / boot nicht zu klein ist, und fügen ihn in / ein.
  • Es ist nicht erforderlich, eine Partition zu erstellen, da Dateien und Ordner von / boot nicht häufig aktualisiert werden und auf sie nicht zugegriffen werden kann. Es ist nicht wie ein / tmp- oder ein / swap-Ordner. Programme schreiben nicht nach / boot.
  • / boot wird nur beim Start und bei Kernel-Updates verwendet, wenn initramfs-Images aktualisiert werden.
  • Sie können / boot to / root in ein RAID 5-Array einbinden und es funktioniert mit GRUB2. Fügen Sie für jedes Laufwerk GRUB2 zu MBR hinzu. Sie können vom 2., 3. ... Laufwerk booten, wenn das 1. Laufwerk nicht mehr funktioniert.
  • Weniger Reittiere = weniger Benutzer = mehr Sichtbarkeit = mehr Einfachheit
Nicolas Guérinet
quelle