Каковы преимущества и недостатки установки различных каталогов на отдельных разделах?

41

При установке Ubuntu с опцией «что-то еще» я обнаружил, что существует множество папок, которые можно монтировать на отдельных разделах, как вы можете видеть на изображении ниже.

многие папки могут быть смонтированы на отдельных разделах

Итак, каковы преимущества и недостатки монтирования этих папок (или каталогов) на отдельных разделах?

В частности, каталоги

  1. /boot
  2. /home
  3. /tmp
  4. /usr
  5. /var
  6. /srv
  7. /opt
  8. /usr/local
зарегистрированный пользователь
источник
Возможный дубликат Как понять структуру файловой системы Ubuntu?
Чарльз Грин
6
@CharlesGreen Этот вопрос описывает использование этих каталогов. Мне интересно знать о преимуществах и недостатках их установки на отдельных перегородках. Так что эти вопросы не совпадают.
Зарегистрированный пользователь

Ответы:

54

Давным-давно...

... Было время, когда люди привыкли устанавливать Linux и настраивать его вручную для своих конкретных нужд. Отчасти это верно и сегодня для серверов. Варианты выбора, которые вы видите, gpartedявляются одними из самых популярных среди тех, у кого совсем другие потребности по сравнению со средними пользователями настольных компьютеров - целевой аудиторией для настольных компьютеров Ubuntu.

Давайте возьмем их по одному. Я пропущу те, о которых я не знаю много.

  1. /bootбыло время, когда файловая система Linux была хрупкой, а жесткие диски были маленькими. Люди боялись, что жесткий диск заполнится или испортится, а Ubuntu не загрузится. Хранение ядер в отдельном разделе помогло системе загрузиться, когда что-то пошло не так. В те дни пользователи Linux собирали собственное ядро ​​и очищали старые. Совсем недавно, в Ubuntu 16.04 LTS , приложение Software Updater установило последнее обновление ядра, но не удалило старые ядра. В результате небольшой /bootраздел заполнился старыми ядрами, и система перестала загружаться, если только он не очищался периодически. Посмотрите, что произошло, если у вас был отдельный /bootраздел, и вы забывали регулярно чистить его: Как освободить больше места в / boot? В Ubuntu 18.04 LTS Software Updater приложение не только держит систему в актуальном состоянии , но также удаляет старые ядра.
  2. С другой стороны, если вы хотите зашифровать /раздел (для защиты секретного программного обеспечения, над которым вы работаете), вам потребуется отдельный (и незашифрованный) /bootраздел. В противном случае система не загрузится. Точно так же, если у вас есть диск RAID, хранение /bootв не-RAID разделе может быть полезным. Многие люди думают, что наличие отдельного /bootраздела - очень хорошая идея по этим и другим причинам.
  3. /homeХранение дома в отдельном разделе все еще имеет смысл. Эта папка / раздел содержит ваши личные файлы, а наличие его в отдельном разделе позволяет форматировать /и переустанавливать Ubuntu, не трогая ваши файлы. Последние версии установочного программного обеспечения Ubuntu включают выбор обновления с DVD / USB. Эта опция остается /homeнеизменной, даже если она не находится на отдельном разделе. Если вам не хватает места на основном диске с /разделом. Вы можете добавить новый диск и создать отдельный /homeраздел на новом диске.
  4. /tmpгде временные файлы идут. Если вы используете сервер, который создает большие временные файлы, они могут заполнить все дисковое пространство и остановить ваш сервер. Хранение его в отдельном разделе только заполнит этот раздел и может остановить процесс, который создавал большие временные файлы, но не остановит остальную часть системы. Мне говорят, что легче заполнить /tmpраздел, чем временную папку в /разделе.
  5. /usr/, /opt/И /usr/localвсе места , где программы и приложения хранятся в различных условиях. Если вы разрабатываете программное обеспечение для Linux, возможно, имеет смысл хранить их в отдельных разделах, чтобы при переустановке Ubuntu вы не удаляли программы, над которыми написали или работали.
  6. Хранение /opt/и /usr/localв отдельном разделе также имеет смысл, если вы устанавливаете программы из исходного кода (свои или из другого места) и хотите использовать их в другом дистрибутиве (скажем, в Red Hat), установленном на том же компьютере в своем собственном разделе. Тогда оба распределения, Ubuntu и Red Hat могут поделиться /optи /usr/localразделами. (Спасибо, Рмано!)
  7. /srvи /varособенно полезны в качестве отдельных разделов, если вы запускаете серверы или разрабатываете веб-страницы. Для обычного пользователя настольного компьютера эти папки не занимают много места и не содержат ничего, что представляет ценность для пользователя. Для веб-разработчика потеря /var/wwwможет означать потерю ее работы.

Конечно, это не единственные каталоги, которые можно монтировать как разделы. В Linux можно смонтировать раздел как любую папку где угодно. Разделы часто монтируются как подкаталоги /mnt/и /media.

Надеюсь это поможет

user68186
источник
+1, хороший ответ. Вы также можете увидеть мой дубль в askubuntu.com/a/379212/16395 и askubuntu.com/a/379019/16395
Rmano
1
Спасибо @Rmano, я видел твой подробный ответ раньше. Я позаимствую ваш второй ответ и отредактирую мой.
user68186
2
Это нормально (хотя я делаю это, чтобы заставить их пережить полную переустановку - более новые установщики могут сохранять, /homeно нет /usr/local. Кстати, «установка вручную и индивидуально» - это лемма Arch Linux ... так что еще есть (много ) людей, делающих это.
Rmano
2
Историческая причина наличия / boot в качестве отдельного раздела связана с тем, что жесткий диск был больше, чем BIOS мог обработать, поэтому, если ядро ​​находилось в недоступной части диска, его нельзя было загрузить. Поместив раздел / boot первым на диск, было гарантировано, что BIOS всегда сможет получить доступ к ядру, чтобы Linux мог загрузиться.
Турбьерн Равн Андерсен
1
Также обратите внимание, что диски могут быть добавлены, чтобы получить больше места, но в Unix вам нужно где-то монтировать их, а не просто назначать букву диска. Например, если диск был заполнен, был куплен новый диск для хранения / home, и текущее содержимое было перемещено туда.
Турбьерн Равн Андерсен
15

Общие преимущества наличия нескольких разделов:

  1. Вы можете использовать разные диски / LUN и иметь лучшую производительность. Это может повысить производительность баз данных, поскольку у вас может быть журнал транзакций в хранилище и файлы данных в другом. Аналогично для интенсивного использования дискового ввода-вывода
  2. Вы можете использовать различные варианты монтирования (которые повышают безопасность или более детально влияют на производительность или стабильность)
  3. Вы можете иметь разные файловые системы
  4. Вы управляете пространством отдельно. Таким образом, у вас может быть неприятное приложение, которое заполняет пространство, которое не влияет на другие приложения.
  5. Фрагментация одного раздела не зависит от другого.
  6. Вы можете снимать, монтировать, размонтировать, форматировать, дефрагментировать, контролировать производительность этих файловых систем независимо.
  7. Вы можете иметь шифрование на определенных томах.
  8. Вы можете монтировать тома по требованию.

Общие недостатки наличия нескольких разделов:

  1. Это увеличивает накладные расходы администрации.
  2. У вас будет больше шансов потратить больше дискового пространства.
  3. У вас будет больше инцидентов, связанных с заполнением диска.
  4. Сложнее создать согласованный снимок приложения, работающего на разных томах.
  5. Он использует немного больше ресурсов.
  6. В зависимости от типа тома (метка MS-DOS, LVM, btrfs ...) вы не сможете легко выделить место на томе, сжимая другой. Особенно онлайн.

Другой способ разделить вашу систему - использовать LVM, btrfs или zfs для /. Выделите только минимальное пространство для / и при необходимости создайте логические тома или расширьте /. Это оставляет вам возможность разделить объемы на более позднее время и снижает затраты на обслуживание.

Теперь конкретные вещи:

  • / boot хорошо быть отдельным разделом. Файловая система должна поддерживаться вашим загрузчиком (обычно GRUB).
  • Если вы используете EFI / UEFI, необходимо иметь системный раздел EFI.
  • / home это хорошо, чтобы отделить пользовательский материал от ОС и приложений.
  • / tmp можно монтировать с помощью noexec, nodev, nosuid. Это может быть отображенная в память fs, например, tmpfs.
  • / usr может быть смонтирован только для чтения и только для перемонтирования rw для обновлений, он может быть удаленным, как общий ресурс NFS.
  • / srv / opt будет хранить приложение и данные приложения. Если у вас есть приложение с интенсивным вводом-выводом, вы можете использовать лучшую дисковую подсистему (например, SSD)
  • / usr / local используется по умолчанию для приложений, установленных локально на текущем компьютере. Например, у вас есть все остальное на NFS и локальный диск ...

Идеального решения не существует. Если у вас нет четкой причины для создания нового раздела, не делайте этого. Единственный раздел, который вам может понадобиться создать, кроме / is / boot.

Для настольных компьютеров / ноутбуков неплохо иметь / home, чтобы вы могли переустанавливать ОС независимо от ваших данных.

Мирча Вуцовичи
источник
Добро пожаловать. Я не согласен с тем, что неплохо иметь отдельный /bootраздел для обычного пользователя. Старые ядра не очищаются автоматически, а новые добавляются. Тогда это происходит!
user68186
1
Если он заполнится, пользователь не сможет установить более новые ядра, и обновления не будут выполнены. Но система будет функционировать.
Мирча Вутцовичи
1
С другой стороны, если вы используете файловую систему, не поддерживаемую GRUB, или шифруете раздел /, вы должны использовать раздел / boot.
Мирча Вутцовичи
Договорились по обоим пунктам.
user68186
1
Я отредактировал свой ответ, чтобы удалить обязательное требование раздела / boot.
Мирча Вутцовичи
2

Для рабочего стола?

Нет разницы.

Для сервера?

Управление пространством и резервное копирование.

Если в вашей системе много пользователей, вы можете создать дополнительный раздел для / home /, тогда пользователи не будут превышать это пространство и root (/) не будет затронут.

Вы также можете смонтировать NFS, SMB или раздел на других физических дисках в этих папках. Например :

/ dev / sda1 / boot (1 ГБ)

/ dev / sda2 / (60 ГБ)

nfs: // IP / папка / home (X ТБ)

/ dev / sdb1 / var (1 ТБ для / var / www или / var / ftp)

Для ноутбука

/ на м-сата (быстро)

/ var / home / opt / tmp на hdd (медленно)

Przemo
источник
1
Можете ли вы уточнить ваш последний пункт? Еще один пост советовал не размещать эти разделы на отдельном диске из-за создания дополнительной точки отказа: теперь, если любой из дисков выходит из строя, вы остаетесь без работающей системы. Не говоря уже о том, что это замедлит время загрузки, поскольку сейчас / ожидает монтирования разделов жесткого диска.
Хашир
2

Ответ przemo, imo, наиболее близко касается практических вопросов. Вот некоторые дополнительные практические соображения:

Корпоративные среды обычно используют отдельные разделы для / at /, / home, / opt, / var, / boot и дополнительные файловые системы (1 на приложение или группу приложений) в / opt. Это в первую очередь для того, чтобы избежать запуска системы из-за нехватки места из-за того, что домашний каталог кого-то становится массивным (/ home), журналы выходят из-под контроля (/ var) или приложения занимают много места (/ opt, / opt // и т. Д.) и / boot, чтобы другие разделы могли быть встроены в LVM, а также чтобы вы могли получить что-то от оболочки восстановления, если основной системный раздел по какой-то причине станет поврежденным.

Для моего личного не серверного использования я просто сохраняю отдельные разделы /, / boot и / home, чтобы иметь возможность двойной загрузки нескольких ОС Linux / UNIX и использовать для них один и тот же раздел / home.

В случае создания виртуальной машины в Oracle Virtualbox, VMWare Player / Workstation / Fusion и т. Д. Для личного использования, на самом деле нет практической причины иметь несколько разделов с разными точками монтирования из-за хороших возможностей общего доступа к папкам, предоставляемых как минимум VirtualBox и VMWare Player / Рабочая станция / Fusion. Единственное исключение может быть / boot по причине оболочки восстановления, приведенной в моем параграфе «среда предприятия».

MGodby
источник
2

Если что-то пойдет не так во время обновления или обновления основной версии, наличие / home в другом разделе позволяет вам загрузиться с компакт-диска, а затем полностью стереть и переустановить операционную систему без потери ваших данных. Кроме того, это делает возможной множественную загрузку с различными дистрибутивами Linux, некоторым людям нравится оценивать их бок о бок.

h22
источник
Separate / home - одна из моих мыльных коробок, но я все еще недавно сгорел, когда установил saucy в другой раздел только для тестирования на ноутбуке oneiric, и он испортил кучу файлов конфигурации в моей общей папке / home, что сделало oneiric очень несчастным, когда Я перезагрузился в это.
Джо
0

В дополнение к существующим ответам, у вас могут быть нестандартные / общие случаи совместимости и производительности, которые получают преимущества от разных разделов.

Возможно, вы захотите поделиться данными с другой операционной системой, такой как Windows, и вам потребуется использовать файловую систему, которая поддерживает Linux.

У вас могут быть специализированные сценарии использования, которые позволяют вам иметь различные настройки (для файловой системы одного типа, например, раздел EXT4 для большого количества маленьких файлов и раздел EXT4 для нескольких больших файлов (например, виртуальных машин), возможно оптимизировать хранение и производительность для обоих вариантов использования.

NGRhodes
источник