Czy partycja / boot jest zawsze konieczna?

30

Czy powinienem tworzyć /bootpartycję za każdym razem, gdy instaluję dystrybucję Linuksa?

Czy istnieje różnica między posiadaniem /bootpartycji a jej /uruchamianiem?

użytkownik1301428
źródło
Myślę, że bezpieczniej jest trzymać osobną partycję / boot, aby uniknąć pomyłkowego zastąpienia bootloadera. Jeśli się nie mylę, moduł ładujący powinien znajdować się w pierwszych cylindrach dysku, aby upewnić się, że proces rozruchu będzie działał poprawnie, ponieważ BIOS zawsze ładuje pierwsze bajty z dysku, zakładając, że istnieje kod, który mógłby obsłużyć dalszą kontrolę i jest w stanie aby załadować system operacyjny.
mnmnc
1
Z pewnością nie jest to konieczność, ale jak powiedziano w powyższym komentarzu, jest to dobra praktyka.
Hamed Momeni,

Odpowiedzi:

29

Aby odpowiedzieć na bezpośrednie pytanie: nie , oddzielna przegroda na /bootpewno nie jest konieczna w każdym przypadku.

Jednakże , nawet jeśli nie podzielić nic innego, zaleca się zwykle mieć osobne partycje dla /, /booti zamieniać. Chciałbym również silnie sugerują umieszczenie /homena osobnej partycji, jak również, nawet jeśli nie podzielić hierarchii systemu plików dalej.

Powodem umieszczenia / boot na partycji innej niż zwykły główny system plików jest to, że można zmniejszyć złożoność systemu plików na dysku, co zmniejsza wymagania programu ładującego rozruchu, aby ładować jądro i początkowy dysk RAM. Staje się to szczególnie interesujące, jeśli korzystasz z nietrywialnej konfiguracji - być może korzystasz z RAID lub nietypowego systemu plików, takiego jak ZFS na partycji głównej lub zaszyfrowanej partycji głównej. Partycja dla / boot może być sformatowana przy użyciu np. Zwykłego ext2fs. Ponieważ partycja musi być tylko niewielka (kilkaset megabajtów to dużo; / boot w moim obecnym systemie ma 100 MB i nie czuję żadnych ograniczeń z tego powodu), wady nieopartowanego na systemie plików, takiego jak ext2, wymagają nie bądź taki świetny, ponieważ i tak kontrole są tak szybkie, względna prostota systemu plików, a także jego duża statyczność, mogą sprawić, że niewykryte uszkodzenie będzie mniej prawdopodobne. Kolejną zaletą jest to, że moduł ładujący nie musi natywnie rozumieć egzotycznego systemu plików lub konfiguracji dysku.

Powodem umieszczenia / home na oddzielnej partycji jest to, że nawet jeśli coś pójdzie nieuczciwie i zacznie się zapełniać (lub jeśli zrobisz to sam), nigdy nie ryzykujesz, że spowoduje to problemy dla procesów innych niż użytkownik (rzadko kiedy kończy się / home) lub sam proces uruchamiania. Ponadto znacznie łatwiej jest ponownie zainstalować system operacyjny lub zmienić dystrybucję, jeśli możesz po prostu powiedzieć instalatorowi, aby opuścił / home w obecnej postaci i sformatować, /aby wypełnić go własnymi plikami. Jako ostatnia szansa na odzyskanie systemu, jeśli coś naprawdę pójdzie nie tak z punktu widzenia oprogramowania, może to mieć poważny wpływ.

Uruchamianie pliku wymiany nie jest zalecaną instalacją w systemie Linux, a nawet nie jestem pewien, czy obsługuje on podstawowe jądra większości dystrybucji(lub zezwalaj) na wymianę pliku. Jest tego wiele przyczyn, jednym z głównych powodów jest wydajność (głównie ze względu na ryzyko fragmentacji). Zamiana jest już strasznie powolna w porównaniu z pamięcią RAM (jest to raczej miara zatrzymania niż poprawka), więc nie ma powodu, aby ją spowalniać, ryzykując fragmentację. Partycja wymiany może być bezpiecznie współużytkowana między dystrybucjami Linuksa w środowisku z wieloma systemami; być może nie jest to rozważanie ogólne, ale z pewnością dla niektórych. Partycję wymiany można również umieścić na osobnym dysku fizycznym o różnych właściwościach; może w dzisiejszych czasach dysk SSD lub dysk 10krpm z osobnego kanału kontrolera (to ostatnie jest mniej ważne w dzisiejszych czasach, gdy każdy dysk SATA jest na osobnym kanale, ale może mieć znaczenie w czasach PATA).

Osobiście w dzisiejszych czasach oddzielam /, / boot i wymieniam, przy czym / w moim obecnym systemie to 100 GB (nigdzie nie jestem blisko korzystania z tego wszystkiego; bieżące użycie wynosi 8,9 GB, a to daje mi wszystko, czego potrzebuję pod względem oprogramowanie, a potem trochę). Reszta dysku podstawowego składa się z jednego systemu plików, który zgodnie z osobistą konwencją dmontuję w / da ( isk a). Drugi dysk to / db, następnie / dc i tak dalej. (Wątpię, czy FHS naprawdę zatwierdza ten schemat, ale w praktyce działa on dobrze). Następnie wiążę mount / home do / da, co oznacza, że ​​mogę przenieść katalog fizyczny bez konieczności martwienia się o aktualizację każdej ścieżki lub partycjonowanie tylko dlatego, że zdałem sobie sprawę, że brakuje mi miejsca na dysku dla / home.

CVn
źródło
3
Ponadto oddzielny / boot jest wymagany tylko wtedy, gdy partycja root jest zaszyfrowana (a bootowanie jest oczywiście jasne)
usr-local-ΕΨΗΕΛΩΝ
@djechelon Myślę, że mieści się to w „trywialnej konfiguracji”, ale zredaguję twój konkretny przykład w.
CVn
Patrzę na ZFS i każdy przewodnik wydaje się wskazywać, że kiedy używasz ZFS na rootie, potrzebujesz czegoś takiego jak ext * on / boot.
CMCDragonkai
1
@CMCDragonkai To nie zmienia mojej odpowiedzi, że „nie, osobna partycja dla / boot z pewnością nie jest konieczna w każdym przypadku ”.
CVn
3

Nie sądzę, aby było to już obowiązkowe. W przeszłości było to konieczne z powodu pewnych ograniczeń systemu BIOS. Nie można było mieć partycji rozruchowej po 8 lub 64 Go (nie pamiętam dokładnie). Następnie, jeśli chcesz mieć podwójny rozruch, możesz umieścić pierwszą małą partycję (/ boot), bootowalną partycję Windows, a następnie pozostałe partycje Linux. Dawno nie było w ogóle katalogu / boot. Jądro było bezpośrednio na /.

Thierry Chich
źródło
1
Jądro czasami było przechowywane bezpośrednio w katalogu głównym (niektóre dystrybucje nadal mogą to robić), ale nadal możesz potrzebować innych rzeczy, takich jak initrd, System.map, konfiguracja bootloadera itp., Które preferowały własną hierarchię.
CVn
2

Różnica polega na optymalizacji systemu plików. Zasadniczo każda partycja ma własne tabele dla plików, deskryptorów itp. Możesz zainstalować Linuksa na pojedynczej partycji „/” bez „/ boot”, „/ swap”, / usr ”itp., Ale tabele wewnętrzne tej pojedynczej partycji wkrótce staną się ogromne a niektóre operacje staną się nieco wolne. Tak więc różne partycje są używane do zapewnienia oddzielnych, zoptymalizowanych kontenerów do różnego rodzaju zadań.

grigoryvp
źródło
Pełny zestaw tabel i-węzłów jest rzadko używany poza kontrolą systemu plików. Najczęściej przywoływane są tylko tabele dla określonego katalogu. Nie różnią się one (lub niewiele) rozmiarem na podstawie rozmiaru partycji.
CVn
Rozmiar zależy od partycji usage, a nie od wielkości. inodejest listą, więc więcej inodes = nieco więcej czasu na wyszukiwanie plików, dodawanie itp. Gdzie nie ma dużej różnicy między pustą partycją a partycją z milionami plików, ale dla operacji takich jak boot lub zamiana, każda różnica ma znaczenie.
grigoryvp
Nie rozumiem, jak twój komentarz zaprzecza mojemu. A partycja wymiany nie ma pojęcia i-węzłów, ponieważ nie zajmuje się plikami. Istnieje duża różnica między /swapi swap.
CVn
0

Nie, myślę, że partycja / boot nie jest konieczna z kilku powodów:

  • Możesz chcieć, aby folder / boot nie był zbyt mały i umieścił go w /
  • Utworzenie partycji nie jest konieczne, ponieważ pliki i foldery / boot nie są często aktualizowane i dostępne. To nie jest jak / tmp lub folder / swap. programy nie piszą do / boot.
  • / boot jest używany tylko podczas uruchamiania i aktualizacji jądra, gdy obrazy initramfs są aktualizowane.
  • Możesz dołączyć / boot do / root w jednej macierzy RAID 5 i będzie on działał z GRUB2. Dodaj GRUB2 do MBR dla każdego dysku. Możesz uruchomić z 2., 3. dysku ... dysku, jeśli 1. dysk jest martwy.
  • Mniej wierzchowców = mniej uuidów = większa widoczność = większa prostota
Nicolas Guérinet
źródło