Всегда ли нужен раздел / boot?


31

Должен ли я создавать /bootраздел каждый раз, когда устанавливаю дистрибутив Linux?

Есть ли разница между /bootразделом и /загрузочным разделом?


Я думаю, что безопаснее разделить / boot раздел, чтобы избежать случайной перезаписи загрузчика. Если я не ошибаюсь, загрузчик должен быть в первых цилиндрах диска, чтобы убедиться, что процесс загрузки будет работать должным образом, так как BIOS всегда загружает первые байты с диска, предполагая, что есть код, который может обрабатывать дальнейшее управление и способен загрузить операционную систему.
mnmnc

1
Это, конечно, не является необходимостью, но, как сказано в комментарии выше, это хорошая практика.
Хамед Момени

Ответы:


30

Чтобы ответить на прямой вопрос: нет , отдельный раздел для /boot, безусловно, не требуется в каждом случае.

Тем не менее , даже если вы ничего не расщепляется еще, как правило , рекомендуется иметь отдельные разделы для /, /bootи своп. Я хотел бы также настоятельно рекомендуем положить /homeна отдельный раздел , а также, даже если вы не расщепляются иерархии файловой системы дальше.

Причина размещения / boot в разделе, отличном от обычной корневой файловой системы, заключается в том, что вы можете уменьшить сложность файловой системы на диске, что снижает требования к загрузчику для начальной загрузки ядра и исходного RAM-диска. Это становится особенно интересным, если вы используете нетривиальную установку - возможно, вы используете RAID, или необычную файловую систему, такую ​​как ZFS в корневом разделе, или зашифрованный корневой раздел. Раздел для / boot затем можно отформатировать, используя, например, обычный ext2fs. Поскольку раздел должен быть небольшим (несколько сотен мегабайт достаточно; / boot в моей нынешней системе составляет 100 МБ, и я не чувствую никаких ограничений от этого), недостаткам файловой системы без журналирования, такой как ext2, требуется не так уж и здорово, потому что чеки все так быстро, и относительная простота файловой системы, а также то, что она в значительной степени статична, может снизить вероятность необнаруженного повреждения. То, что загрузчику не нужно изначально понимать экзотическую файловую систему или настройку диска, является еще одним возможным преимуществом.

Причина помещения / home в отдельный раздел заключается в том, что даже если что-то пошло не так и начинает заполнять его (или если вы делаете это самостоятельно), вы никогда не рискуете вызвать проблемы для не пользовательских процессов (которые редко заканчиваются из / домой) или сам процесс загрузки. Кроме того, становится намного проще переустанавливать ОС или переключать дистрибутивы, если вы можете просто сказать установщику оставить / home как есть и переформатировать, /чтобы заполнить его собственными файлами. В качестве последней попытки восстановления, если что-то пойдет не так с точки зрения программного обеспечения, это может иметь большое значение.

Запуск файла подкачки не рекомендуется в Linux, и я даже не уверен, что поддержка стандартных ядер большинства распространенных дистрибутивов(или разрешить) файловый обмен. Для этого есть несколько причин, одной из которых является производительность (в основном из-за риска фрагментации). Своп уже ужасно медленный по сравнению с оперативной памятью (это скорее показатель временной задержки, чем исправление), поэтому нет оснований делать его еще медленнее, рискуя фрагментацией. И раздел подкачки можно безопасно разделить между дистрибутивами Linux в мультизагрузочной среде; возможно, не рассмотрение в общем случае, но, безусловно, рассмотрение для некоторых. Раздел подкачки также может быть размещен на отдельном физическом диске с различными характеристиками; может быть, SSD в наши дни, или диск 10krpm, работающий по отдельному каналу контроллера (это последнее менее важно в наше время, когда каждый диск SATA находится на отдельном канале, но может иметь значение в дни PATA).

Лично в эти дни я разделяю /, / boot и swap, где / на моей нынешней системе 100 ГБ (я совсем не использую все это; текущее использование составляет 8,9 ГБ, и это дает мне все, что мне нужно с точки зрения программное обеспечение, а затем некоторые). Остальная часть основного диска состоит из одной файловой системы, которую по личному соглашению я монтирую в / da ( disk a). Второй диск будет / db, затем / dc и так далее. (Я сомневаюсь, что FHS действительно одобряет эту схему, но на практике она хорошо работает для меня.) Затем я связываю / mount / home в / da, что означает, что я могу перемещать физический каталог, не беспокоясь об обновлении каждого отдельного пути, ссылающегося на это или перераспределение только потому, что я понял, что мне не хватает места на диске для / home.


3
Кроме того, разделение / boot требуется только в том случае, если корневой раздел зашифрован (и загрузка, очевидно, ясна)
usr-local-ΕΨΗΕΛΩΝ

@djechelon Я думаю, что это подпадает под «нетривиальные настройки», но я отредактирую ваш конкретный пример в.
CVn

Я смотрю на ZFS, и каждое руководство, кажется, указывает, что при использовании ZFS на root, вам нужно что-то вроде ext * on / boot.
CMCDragonkai

1
@CMCDragonkai Это не меняет моего ответа, что «нет, отдельный раздел для / boot определенно не нужен в каждом случае ».
CVn

3

Я не думаю, что это больше обязательно. В прошлом это было необходимо из-за некоторых ограничений в BIOS. После 8 или 64 Go невозможно было создать загрузочный раздел (точно не помню). Затем, если вы хотите иметь двойную загрузку, вы можете поместить первый небольшой раздел (/ boot) и загрузочный раздел Windows, а затем и другие разделы Linux. Давно, директории / boot вообще не было. Ядро было прямо на /.


1
Ядро иногда хранилось непосредственно в корне (некоторые дистрибутивы все еще могут это делать), но вам все равно могут понадобиться другие вещи, такие как initrd, System.map, конфигурация загрузчика и т. Д., Которые предпочитают собственную иерархию.
CVN

2

Разница заключается в оптимизации файловой системы. Как правило, каждый раздел имеет свои собственные таблицы для файлов, дескрипторов и т. Д. Вы можете установить Linux на один раздел / / без '/ boot', '/ swap', / usr 'и т. Д., Но внутренние таблицы этого единственного раздела скоро вырастут огромными и некоторые операции станут немного медленными. Таким образом, различные разделы используются для предоставления отдельных оптимизированных контейнеров для различных задач.


Полный набор таблиц inode редко используется вне проверок файловой системы. Чаще всего упоминаются только таблицы для определенного каталога. Они не отличаются (или мало) отличаются по размеру в зависимости от размера раздела.
CVN

Размер основан на разделе usage, а не на размере. inodeЭто список, так что больше inodes = немного больше времени для поиска файлов, добавления и т. д. Где нет большого различия между пустым разделом и разделом с миллионами файлов, но для таких операций, как загрузка или замена, любая разница имеет значение.
Григорьев

Я не понимаю, как ваш комментарий противоречит моему. И раздел подкачки не имеет понятия inode, потому что он не работает с файлами. Существует большая разница между /swapи swap.
CVN

0

Нет, я думаю, что раздел / boot не нужен по нескольким причинам:

  • Возможно, вы захотите, чтобы папка / boot не была слишком маленькой и включила ее в /
  • Нет необходимости создавать раздел, потому что файлы и папки / boot не часто обновляются и к ним обращаются. Это не похоже на папку / tmp или / swap. программы не пишут в / boot.
  • / boot используется только во время запуска и обновлений ядра при обновлении образов initramfs.
  • Вы можете включить / boot в / root в один массив RAID 5, и он будет работать с GRUB2. Добавьте GRUB2 в MBR для каждого диска. Вы можете загрузиться со 2-го, 3-го диска ... диска, если 1-й диск не работает.
  • Меньше креплений = меньше uuid = больше видимости = больше простоты
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.