На жёстком диске любого компьютера хранятся данные, которые используются совершенно по-разному. Одни составляют операционную систему или нужны ей для работы, другие нужны пользователю, он их создаёт сам или откуда-то получает. Некоторые данные нужны временно, например, только на время работы программы, другие предназначены для «вечного» хранения. Есть такие данные, которые может изменить только человек, и такие, которые система сама создаёт или модифицирует в процессе работы. Наконец, есть такие данные, которые могут храниться на одном компьютере, а использоваться на нескольких (например, по локальной сети), и такие, которые предназначены только для данного компьютера.
Надёжность хранения данных и эффективность доступа к ним возрастает, если разделять данные разных типов (различающиеся по характеру использования). Для этого всё доступное пространство на жёстком диске (или дисках) разделяется на независимые области, каждая из которых предназначена для данных определённого типа. Для организации таких областей хорошо подходит технология разделения диска на разделы.
Поскольку разделы не зависят друг от друга, изменение содержимого одного раздела никак не сказывается на других. Одна из выгод такого подхода: в случае физического сбоя повреждения данных будут локализованы внутри того раздела, где произошёл сбой, и не затронут других разделов. Разделы открывают также путь для оптимизации скорости доступа: скорость чтения и записи для большинства дисков выше в середине и ниже к концу и началу диска. В самой быстрой области можно расположить раздел с данными, для которых важна скорость доступа.
Разделение диска на разделы необходимо в том случае, если на одном физическом устройстве должны быть установлены несколько операционных систем. Каждой операционной системе потребуется выделить не менее одного раздела.
Минимальное количество разделов, которые необходимы Linux для работы — два. Первый — для корневой файловой системы, второй — для области подкачки.
Область подкачки (swap space) — это пространство на диске, используемое системой для организации виртуальной памяти. Если какая-то область оперативной памяти долгое время не используется, её содержимое записывается на диск, в область подкачки — тем самым освобождается место в физической памяти для других процессов. Когда же эта область памяти потребуется вновь, ядро подкачает её с диска и разместит в оперативной памяти.
Благодаря этому вполне может сложиться ситуация, когда используется больше оперативной памяти, чем её есть в действительности: если не вся заказанная память используется одновременно, что позволяет системе откачивать некоторые области. В Linux принято размещать область подкачки на отдельном разделе, что позволяет увеличить скорость доступа к данным и уменьшить риск повреждения ценных данных на основных разделах.
Для обеспечения максимальной скорости доступа к данным области подкачки её раздел рекомендуется размещать в начале либо в середине диска. Данные, находящиеся в swap, являются временными и не представляют ценности после перезагрузки компьютера. Поэтому размещение swap-раздела, как и других разделов с неуникальными данными (например, /tmp
и /usr
— о них рассказано ниже), в начале диска предпочтительнее: снижается риск потери важных данных.
Начало диска более подвержено повреждениям в том числе и из-за человеческого фактора. Печально известным примером опечатки, которая ведёт к уничтожению данных в начале диска, может послужить dd of=/dev/hda
вместо dd of=/dev/hda3
. Однако если в начале диска хранятся неуникальные данные, то этот процесс, будучи вовремя остановленным, не успеет добраться до действительно ценной информации в разделах /etc
, /home
или /var
, в то время как восстановление таблицы разделов — задача несложная.
С корневой файловой системы начинает расти всё дерево файлов Linux. Точкой монтирования для корневой файловой системы служит “/
” — корневой каталог. Можно поместить все данные (включая пользовательские файлы) на один раздел — это как раз тот случай, когда для Linux потребуется всего два раздела. Для повышения эффективности и надёжности некоторые ветви дерева файлов можно выносить на другие разделы. Поскольку для файловой системы Linux не важно, каким образом части дерева каталогов расположены на разделах дисков, у вас есть возможность использовать каждый из имеющихся разделов диска под любой каталог файловой системы. В этом случае раздел с корневым каталогом будет служить точкой монтирования для остальных файловых систем.
Смонтированной файловой системе важно указать правильные параметры монтирования. Задавая разделам с разными типами данных подходящие параметры, можно добиться значительного повышения производительности и безопасности. Ниже перечислены наиболее часто используемые общие параметры монтирования.
noatime
nodev
nosuid
noexec
ro
/home
noexec
(в случае невозможности применения — nosuid
)./usr
/usr
. Преимуществом размещения этого каталога в отдельном разделе является то, что при нормальной работе (кроме установки/удаления пакетов) не требуется в него записывать никаких данных, поэтому этот раздел можно монтировать в режиме «только чтение», в том числе по локальной сети. В этом случае несколько машин могут пользоваться одним сетевым разделом /usr
. Размер этого раздела зависит от количества пакетов, которые будут установлены, он колеблется в пределах от 500 Мб для маленькой установки до нескольких гигабайт для полной установки. Вариант на 2–3 Гб (в зависимости от размера диска) скорее всего подойдёт./var
/usr
. К тому же, для повышения производительности и надёжности хранения информации переменные данные разных типов рекомендуется располагать на разных разделах. Файловая система этого раздела должна поддерживать журналирование (Ext3). При монтировании желательно задать параметры noexec
и nosuid
./var/log
noatime
, noexec
, nosuid
./var/tmp
noexec
и nodev
./tmp
/tmp
очищается при каждой загрузке системы. Поскольку запись в этот каталог осуществляется очень часто, а требования к надёжности очень низкие, то есть большой смысл выделить /tmp
в отдельный раздел. В противном случае он окажется частью раздела “/
”, требования к которому по записи и надёжности прямо противоположные (см. ниже). Размер раздела /tmp
в обычном случае должен быть примерно равен размеру swap
. В последнее время раздел /tmp
зачастую размещают в виртуальной файловой системе tmpfs
непосредственно в оперативной памяти./
/usr
, /var
и /home
вынесены на отдельные разделы, то потребность в объёме корневого раздела небольшая, обычно достаточно 500 Мб. Требования: корневой раздел должен быть доступен в процессе загрузки, в процессе работы доступ на запись в этот раздел требуется нечасто, но весьма важна надёжность./boot
Выделение вышеперечисленных разделов направлено прежде всего на повышение эффективности работы системы. Для домашних рабочих станций чаще всего вполне достаточно, помимо необходимых разделов, выделить всего один — для хранения пользовательских данных (/home
). Увеличения гибкости управления разделами, особенно при большом их количестве, можно добиться использованием технологии LVM, которая позволяет создавать, удалять и изменять размер логических устройств без риска потери данных.