Основы разметки диска при установке Linux-дистрибутивов
В материале про установку Linux Mint на виртуальную машину я говорил о том, что нужно выбирать автоматическую разметку диска.
Это действительно удобно при использовании виртуальной машины или когда у вас один диск без других предустановленных систем на нем. Но для понимания сущности работы Linux-дистрибутива нужно познакомиться с ручной разметкой и тем, что лежит в ее основе. Материал ориентирован, в первую очередь, на начинающих и будет касаться основ.
Разделы диска
Люди, привыкшие к Windows, помнят, что при установке системы чаще используется два «диска» C (туда устанавливается операционная система) и D (там хранятся пользовательские файлы и все такое). На самом деле, никаких двух отдельных дисков при установке не создается, используется один физический жесткий диск (HDD или SSD) пространство которого делится на несколько частей (разделов). В Windows это происходит не так очевидно и понятно, Linux-дистрибутивы в этом отношении сразу вводят пользователя в необходимость понимания того, что такое раздел.
Также в Linux существует корневая файловая система, в качестве которой используется выбранный пользователем раздел диска. Уже после в корневой файловой системе создаются подкаталоги, которые являются другими созданными разделами. Если очень упростить, то корневая файловая система словно матрешка содержит в себе другие разделы.
Наиболее известными корневыми файловыми системами Linux являются:
Пользователь может при установке вообще не создавать дополнительных разделов и поместить все в корневую файловую систему. Но это может привести к негативным последствиям, потому рекомендуется выделять отдельные разделы для хранения определенных групп файлов.
Почему нужно иметь несколько разделов диска?
Каждый раздел выполняет определенную функцию и содержит определенные файлы. Для безопасности систему лучше разделы изолировать, так в случае нештатных ситуаций выйдет из строя только раздел, а не вся система.
Например, если в разделе с домашней директорией пользователя закончится свободное место, то корневая файловая система продолжит работу и вы сможете высвободить место, почистив ненужные файлы. Кроме того, раздел с домашней директорией удобен при переустановке Linux-дистрибутива: так если вы в результате экспериментов загубили раздел с корневой файловой системой, то ваши личные файлы никуда не денутся, при переустановке вы просто выберите нужный раздел диска и укажите установщику, что желаете использовать его как раздел /home. Раздел, отвечающий за загрузку системы тоже стоит вынести отдельно, так как если он пострадает, то вся остальная система останется целой и нужно будет только восстановить загрузочный раздел.
Основные разделы Linux
Давайте познакомимся с основными разделами и узнаем за что они отвечают.
- / или корневой раздел (root) — используется для хранения корневой файловой системы, там располагаются все системные файлы, в него же будут примонтированы другие разделы.
- /boot или загрузочный раздел — здесь хранятся файлы, отвечающие за загрузку системы, проверку того, чтобы перед стартом ее все было в норме.
- /home или «хомяк» — раздел для хранения файлов пользователя, в котором хранятся скачанные им файлы, установленные пользователем программы и пр.
- swap или раздел подкачки — здесь размещается неиспользуемая память на случай, если она может понадобится в случае нехватки оперативной, также здесь записывается содержимое памяти, если компьютер уходит в режим сна или гибернации.
Существуют и другие разделы, но в качестве информации для знакомства хватит и тех, про которые написал выше.
Подведем итоги
- Физический диск вашего компьютера при установке Linux нужно разделить на несколько частей, называемых разделами.
- Деление на разделы необходимо для безопасного использования системы, для того чтобы избегать ситуации при которых из-за ошибки все файлы будут потеряны.
- Основными разделами в Linux являются root (/), /boot, /home и swap, каждый из которых предназначен для выполнения конкретной функции.
Повторюсь, что это основа по разделам, более детально эту тему затрону в других материалах на канале. Завтра планирую выпустить пост с наглядной демонстрацией работы с разметкой диска при установке Linux Mint. Надеюсь, что для начинающих изложенная информация оказалась понятной и полезной. Другие посты, посвященные особенностям работы с Linux вы найдете по ссылкам ниже.
Чтобы не пропустить новые посты нужно подписаться на канал, а чтобы заметки чаще попадали в ленту рекомендаций Дзена поставьте лайк!
Разбивка дисков в Linux для самых маленьких
У многих начинающих пользователей линукс возникают сомнения, как правильно разбить жесткий диск. Постараюсь немного облегчить муки выбора нашим коллегам.
У нас в распоряжении есть — физическая разбивка дисков на разделы(fdisk, gparted), соф-RAID (mdadm), менеджер логических дисков (LVM), ширование dm-crypt (остальным не стоит забивать голову).
Пути разбивки дисков неисповедимы, поэтому мы начнем с самого простого.
1. Физическая разбивка дисков
Это самый простой, надежный и совместимый «дедовский» метод. Он позволяет четко очертить границы разделов и их взаимное положение на диске.
При разбивке диска можно учесть его физические особенности и получить некоторый прирост производительности. Дело в том, что ближе к краю диска скорость чтения может быть в несколько раз выше, чем ближе к центру. Соответственно, если расположить например /boot(128 мб), swap (memory * 2 or 2.5), /(root) то мы получаем хорошую скорость загрузки и работы с разделом подкачки. Если есть несколько дисков, то можно расположить swap в начале каждого. Но парится со swap есть смысл, если вы работаете с большими объемами данных — linux не использует swap без крайней нужды. (проверьте free -m). Отказываться от использования swap крайне не рекомендуется, так как linux хорошая система, но чудес не бывает. Открыв файл на 1ГБ можно заблокировать систему намертво без возможности разблокирования.
Разбивка диска на большое количество разделов оправдана только, если это делается для какой-то особой цели. В других случаях — достаточно обойтись простейшим / (root) и swap.
Очень часто пользователи отделяют /home от / (root) — это не имеет никакого практического смысла в однопользовательских системах. Обычно, / (root), /var, /home разделяют на серверах, чтобы пользователи со злым умыслом не заполнили логи или свою домашнюю директорию. Кстати, смонтировать /home с noexec можно и не делая отдельного раздела (man mount).
Если вы пользуетесь парралельно windows то я рекомендую использовать FAT32 для разделов с музыкой/фильмами, к которым вы хотите иметь доступ в обоих системах (и ни в коем случае не делать /home или домашнюю папку в FAT32!!). NTFS хорошо поддерживается, но недостаточно, чтобы ей пользоваться каждый день (чтобы снять unclean shutdown который не дает смонтировать раздел- нужно грузить windows), ошибки в файловой системе могут вызывать подвисания и потерю данных (привет жадному Биллу).
Запомните: черезмерная разбивка — корень всех бед. Разбивать диски «особым» образом нужно только под КОНКРЕТНУЮ задачу.
2. Логическая разбивка дисков
Не бойтесь LVM — он не такой страшный. С его помощью можно переразбивать диски, расширять партиции, добавлять физические устройства и расширяться на них, делать теневое копирование, бекап аналогичный «time machine» появился еще примерно в 2002 году. Не бойтесь, делайте бекап и пользуйтесь гибкостью LVM.
Для работы LVM, MD, DM обязательно нужен физический раздел /boot который позволит загрузчику(grub, Lilo etc) скачать минимальный образ системы (initrd) с необходимыми драйверами и конфигами для старта основной системы.
С логической разбивкой все сложнее. Вложенность разделов может быть произвольная.
Например как делается полное шифрование в ubuntu: /boot DM-CRYPT[LVM[/(root) swap]] — физический раздел /boot, затем физический раздел с dm-crypt, в котором находится LVM в свою очередь в котором два логических раздела /(root) и swap.
С вложенностью шифрования и raid можно играться как угодно.
Пример из жизни параноика:
/boot DM-CRYPT[ LVM[ /root DM-CRYPT-random[/tmp] DM-CRYPT-random[/home] DM-CRYPT-random[/var/log] DM-CRYPT-random[swap] ]]
При каждой загрузке /tmp /home /var/log и swap инициализируются с рандомным ключом. Конечно это ставит жирный крест на hibernate но при каждой загрузке- система абсолютно чистая от логов и временных файлов. Вполне сгодится для студентов или любителей побродить по порносайтам.
3. Советы по оптимизации
/boot можно сделать в файловой системе ext2 — она быстрей, чем ext3 и этого будет достаточно.
На активно использующемся разделе можно отключить access time — флаг noatime. Так часто делают на веб-серверах для уменьшения нагрузки на жесткий диск.
Как показала многолетняя практика, не стоит надеяться на надежность простого либо навороченного решения. Стоит использовать самое удобное и делать регулярный rsync на внешний носитель. В таком случае отпрадают вопросы на счет восстановления данных, которые при любом решении (особенно при шифровании) сильно усложняют жизнь. Например беды на шированной партиции при наличии Luks могут вывести систему из строя без возможности восстановления данных. Шифрованные данные более подвержены сильным повреждениям, чем нешифрованные.
(советуйте, добавлю)
В linux можно сделать абсолютно все, что угодно и это будет работать. Главное, руководствоваться здравым смыслом и не брезговать читать man вместо довольно часто вредных и устаревших howto.
Итак, резюмируем:
Для десктопов и ноутбуков оптимальный метод разбивки — полное отсутствие разбивки.
Для тех, кто не любит бекапиться, использовать «сложные методы» вроде LVM. Может подойти вариант:
swap (memory * 2), / (остальное)
Для юзеров убунты достаточно выбрать: Использовать все свободное место под LVM, тогда у вас останется много возможностей «на вырост».
Если разбивать /, /home то вы рано или поздно столкнетесь с нехваткой места на одном из разделов.