Зачем помещать вещи, отличные от / home, в отдельный раздел?

53

Так недавно инсталлятор Debian 5.0.5 предложил мне иметь отдельные /usr, /home, /varи /tmpразделы (на одном физическом диске).

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

Алекс Б
источник
10
Еще одна веская причина хранить /homeотдельно - это то, что вы можете переустанавливать свою систему и / или свободно переключать дистрибутивы без потери ваших личных файлов.
Дэвид З,
4
@ Дэвид Заславский: Я бы не рекомендовал это для переключения дистрибутивов. поскольку чаще всего скрытые файлы конфигурации в вашем домашнем каталоге будут конфликтовать.
Трубадур
7
@Troubadour: На самом деле я так не думаю. Эти файлы конфигурации размещаются там определенными приложениями и обычно не имеют никакого отношения к тому, в каком дистрибутиве вы находитесь. Так, например, содержимое ~/.mozilla/firefoxможет одинаково хорошо использоваться Firefox в Ubuntu, Fedora или Gentoo. ~/.bashrcвсегда будет иметь одинаковый эффект на Bash, независимо от того, какую систему вы используете. Я сделал много переключений дистрибутивов и никогда не имел проблем с этими файлами конфигурации.
Дэвид З
3
@ Дэвид Заславский: Я мог видеть проблемы, возникающие, если новый дистрибутив использовал более ранние версии приложений, чем предыдущие, так как они могли не знать, как читать эти файлы конфигурации. При этом я сам не пытался делать ничего подобного.
интуитивно
В качестве еще одной причины, если вы используете как жесткий диск, так и ssd, вы можете захотеть иметь основную часть установки на ssd, но хотите поместить, скажем, / home и / var на жесткий диск, чтобы избежать большого числа из пишет в SSD.
Кевин

Ответы:

55
  1. Минимизация потерь: если /usrна отдельном разделе поврежденный /usrне означает, что вы не можете восстановить /etc.
  2. Безопасность: /не всегда может быть ro ( /rootможет потребоваться rw и т. Д.), Но /usrможет. Это может быть использовано, чтобы сделать ро как можно больше.
  3. Использование разных FS: я могу использовать другую систему для /tmp(не надежно, но быстро для многих файлов) и /home(должно быть надежно). Similary /varсодержит данные , а /usrне так , /usrстабильность может быть пожертвовать , но не так много , как /tmp.
  4. Продолжительность fsck: Меньшие разделы означают, что проверка одного происходит быстрее.
  5. Упоминается заполнение разделов, хотя другим методом является квота.
Мацей Печотка
источник
23

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

/varи /tmpмогут быть заполнены пользовательскими программами или демонами. Поэтому может быть безопасным располагать их в отдельных разделах, что предотвратит /заполнение корневого раздела на 100% и нанесет вред вашей системе. Чтобы избежать наличия двух разных разделов для них, нередко можно видеть /tmpсимволическую ссылку на /var/tmp.

Дидье Троссет
источник
Полагаю, я могу понять / var и / tmp, но поскольку программа установки предложила разделить один диск, утилита отдельного /usrограничена?
Алекс Б
Это позволяет вам поделиться /usrчерез NFS с другими системами. Но вы могли бы поделиться им, даже если это не отдельный раздел, это правда ... мыслить вслух ... Достаточно ли причина для чтения только для чтения?
Дидье Троссет
Как вы делаете обновления с такой настройкой? Часто (по крайней мере в Linux) пакеты вносят изменения в файлы в системных локальных каталогах, например в /etc.
интуитивно
+1 для / usr только для чтения. Перед установкой обновлений переустановите его.
LawrenceC
13

Потому что обычные пользователи могут вызывать что-то для записи /varи /tmp, таким образом, потенциально вызывать проблемы для всей системы. Таким образом, пользовательские процессы могут заполняться /varи /tmp, но не корневой фс. Отдельный /usrполезен для /usrболее чем NFS или других удаленных файлов.

(Надеюсь, это понятно, я еще не пил кофе)

KellyClowers
источник
Первое предложение - лучшее объяснение, спасибо.
Гринольдман
11

Проблема в том, что полный root fs делает систему linux неработоспособной до такой степени, что даже администратор исправляет ее без CD восстановления или подобного. Когда /tmpи, /varв частности, /homeнаходятся в отдельном разделе, root fs никогда не сможет заполниться, если этого не сделает администратор. Примите /usrво внимание тот факт, что все обычные установки будут размещены, и даже установка нового программного обеспечения не может вызвать эту проблему.

txwikinger
источник
Если это не устанавливается в /opt:)
Troubadour
1
Что ж. Вы также можете создать для этого другой раздел или создать ссылку, так чтобы / opt действительно находился в разделе / ​​usr. Принцип все тот же.
txwikinger
10

Как правило, аргументы для наличия отдельных разделов:

  1. Безопасность: вы можете, например, смонтировать раздел только для чтения, чтобы злоумышленники (или процессы) не могли перезаписывать или заменять двоичные файлы там троянами. Поэтому, если ваш двоичный файл ssh находится в / usr / local / bin, а / usr / local смонтирован только для чтения, заменить этот двоичный файл будет непросто.

  2. Гибкость / удобство: например, если вы настроили / var на свой собственный раздел, и он заполнен на 80%, вы можете изменить его размер или даже перенести его на другой диск, если это необходимо. Я бы предпочел сделать это, чем иметь дело с системой, у которой '/' заполнена на 100%, потому что журналы в / var в некотором роде потеряли свою актуальность. Разные разделы могут также иметь разные файловые системы, что позволяет вашей операционной системе использовать ext3 (например) и вашей базе данных использовать ext4, или вашему хранилищу объектов для использования XFS, или вашему пользовательскому приложению для использования ... необработанных устройств!

Джоунси
источник
Какой обычный способ обработки обновлений системы в первом случае?
интуитивно
6

Традиционно это было сделано из-за особенностей аппаратного обеспечения DEC, на котором оно было разработано. Было выгоднее купить маленький быстрый диск для root и swap и больший, более медленный диск для пользовательских данных ( /usr). В некоторых отношениях конвенция просто застряла.

Однако есть еще несколько причин для этого. Несколько общих из них:

  • Помещение / boot на отдельный небольшой раздел рядом с началом диска. Более старая микропрограмма BIOS загружалась только с первых 1024 дорожек диска. Это менее вероятно, будет проблемой с современным оборудованием.

  • Размещение занятых разделов, таких как /varили /tmpна отдельных дисках, чтобы устранить узкие места в доступе к пользовательским данным.

  • Разные файловые системы на разных разделах. Например, вы можете использовать журналируемую файловую систему для, /usrно не для разделов, в которых размещаются файлы для СУБД, такой как Oracle - СУБД выполняет собственные журналирование, а файловая система журналирования может налагать значительные накладные расходы.

  • Наличие пользовательских данных на отдельном диске или разделе позволяет легко перенести их на большой диск без каких-либо серьезных операций на компьютере.

  • Вы можете подключить общие данные, такие как домашние каталоги или двоичные файлы приложений, по NFS.

  • fsckзанимает много времени на больших объемах для определенных типов файловой системы. Вы можете захотеть иметь разные графики обслуживания файловой системы для системных областей (часто) и пользовательских областей (менее часто).

ConcernedOfTunbridgeWells
источник
5

Форматирование файловой системы также может быть быстрее, чем rm -rf'ing. Особенно, если вам нужно стереть тысячи маленьких файлов. Кеш Squid, который вы хотите полностью воссоздать ... тонны файлов изображений, которые вам нужны для обработки, но которые можно выбросить после создания конечного результата. файлы .obj из огромных компиляций ... и т. д.

Гейб.
источник
4

Папка, которую я иногда помещаю в отдельный раздел /usr/local/, позволяет любому программному обеспечению, которое я создал и установил отдельно от диспетчера пакетов моего дистрибутива, возможно, использовать повторно, если я изменяю / обновляю свой дистрибутив или другой, установленный рядом с ним. Очевидно, что не гарантируется работа со всеми возможными комбинациями, но это не вредит.

трубадур
источник
2

Я положил /tmpна tmpfs, так что содержимое хранится в оперативной памяти, а не на диске. Это не было бы полезно для /etcили /usrоднако.

Но возможность размещать разные каталоги в разных файловых системах может быть полезной; то есть /homeна быстрой / экспериментальной файловой системе, такой как ext4, против стабильной / надежной файловой системы, такой как ext2 для /etc.

jonescb
источник