- Основы разметки диска при установке Linux-дистрибутивов
- Разделы диска
- Почему нужно иметь несколько разделов диска?
- Основные разделы Linux
- Подведем итоги
- Создание загрузочной системы EFI⚓︎
- Поиск, или создание системного раздела EFI⚓︎
- Монтирование EFI Variable File System⚓︎
- Настройка⚓︎
- Создание файла конфигурации GRUB⚓︎
- Загрузка вместе с Windows⚓︎
Основы разметки диска при установке 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 вы найдете по ссылкам ниже.
Чтобы не пропустить новые посты нужно подписаться на канал, а чтобы заметки чаще попадали в ленту рекомендаций Дзена поставьте лайк!
Создание загрузочной системы EFI⚓︎
Отключите secure boot ! На данный момент эта технология не поддерживается. Чтобы настроить процесс загрузки с помощью GRUB для UEFI, необходимо отключить её в интерфейсе конфигурации прошивки. Прочтите документацию, предоставленную производителем вашей системы, чтобы узнать, как это сделать.
Убедитесь, что вы не пропустили раздел по настройке ядра, для поддержки EFI.
Поиск, или создание системного раздела EFI⚓︎
В системе на основе EFI загрузчики устанавливаются в специальный раздел FAT32, называемый системным разделом EFI (ESP). Если ваша система поддерживает EFI и предустановлен дистрибутив Linux и (или) Windows, скорее всего, ESP уже создан. Посмотрите все разделы на вашем жёстком диске (замените sda на нужное устройство):
Столбец ESP type должен быть EFI System .
Устр-во начало Конец Секторы Размер Тип /dev/sda1 4096 618495 614400 300M EFI /dev/sda2 618496 268430084 267811589 127,7G Файловая система Linux
Если система или жёсткий диск новые, или если вы впервые устанавливаете ОС, загружаемую через UEFI , ESP может не существовать. В этом случае создайте новый раздел, создайте на нем файловую систему vfat и установите тип раздела EFI system .
Некоторые (старые) реализации UEFI могут требовать, чтобы ESP был первым разделом на диске.
Создайте точку монтирования для ESP и смонтируйте ее (замените sda1 на соответствующий ESP ):
mkdir -pv /boot/efi && mount -v -t vfat /dev/sda1 /boot/efi
Добавьте запись для ESP в /etc/fstab , чтобы он автоматически монтировался во время загрузки системы:
cat >> /etc/fstab /dev/sda1 /boot/efi vfat defaults 0 1 EOF
Монтирование EFI Variable File System⚓︎
Для установки GRUB на UEFI необходимо смонтировать файловую систему EFI Variable, efivarfs . Если она еще не была смонтирована ранее, выполните команду:
mountpoint /sys/firmware/efi/efivars || mount -v -t efivarfs efivarfs /sys/firmware/efi/efivars
Добавьте запись для efivarfs в /etc/fstab , чтобы она автоматически монтировалась во время загрузки системы:
cat >> /etc/fstab efivarfs /sys/firmware/efi/efivars efivarfs defaults 0 0 EOF
Если система не загружается с UEFI, каталог /sys/firmware/efi будет отсутствовать. В этом случае вы должны загрузить систему в режиме UEFI с аварийным загрузочным диском.
Настройка⚓︎
В системах на основе UEFI GRUB работает устанавливая приложение EFI (особый вид исполняемого файла) в /boot/efi/EFI/[id sizes/grubx64.efi , где /boot/efi — точка монтирования ESP , а [id] заменяется идентификатором, указанным в командной строке grub-install . GRUB создаст запись в переменных EFI , содержащую путь EFI/[id]/grubx64.efi , чтобы прошивка EFI могла найти grubx64.efi и загрузить его.
grubx64.efi очень легкий (136 Кб), поэтому он не будет занимать много места в ESP. Типичный размер ESP составляет 100 Мб (для диспетчера загрузки Windows, который использует около 50 Мб в ESP). Как только grubx64.efi загружен прошивкой, он загрузит модули GRUB в загрузочный раздел. Расположение по умолчанию — /boot/grub .
Установите файлы GRUB в /boot/efi/EFI/LFS/grubx64.efi и /boot/grub . Затем настройте загрузочную запись в переменных EFI:
grub-install --bootloader-id=LIN --recheck
Если установка прошла успешно, вывод должен быть:
Installing for x86_64-efi platform. Installation finished. No error reported.
Запустите efibootmgr , чтобы ещё раз проверить конфигурацию загрузки EFI.
BootCurrent: 0000 Timeout: 1 seconds BootOrder: 0005,0000,0002,0001,0003,0004 Boot0000* ARCH Boot0001* UEFI:CD/DVD Drive Boot0002* Windows Boot Manager Boot0003* UEFI:Removable Device Boot0004* UEFI:Network Device Boot0005* LIN
Обратите внимание, что 0005 является первым в BootOrder , а Boot0005 — это LIN . Это означает, что при следующей загрузке системы будет использоваться версия GRUB , установленная в LIN .
Создание файла конфигурации GRUB⚓︎
Создайте /boot/grub/grub.cfg для настройки меню загрузки GRUB:
cat > /boot/grub/grub.cfg # Begin /boot/grub/grub.cfg set default=0 set timeout=5 insmod part_gpt insmod ext2 set root=(hd0,2) if loadfont /boot/grub/fonts/unicode.pf2; then set gfxmode=auto insmod all_video terminal_output gfxterm fi menuentry "GNU/Linux, Linux 5.10.17-lfs-10.1" linux /boot/vmlinuz root=/dev/sda2 ro > menuentry "Firmware Setup" fwsetup > EOF
(hd0,2) , sda2 следует заменить в соответствии с вашей конфигурацией.
Для GRUB файлы используются относительно раздела. Если вы использовали отдельный раздел /boot , удалите /boot из указанных выше путей (к ядру и к unicode.pf2). Вам также нужно будет изменить строку корневого раздела, чтобы она указывала на загрузочный раздел.
Загрузка вместе с Windows⚓︎
Добавьте запись в файл конфигурации grub.cfg :
cat >> /boot/grub/grub.cfg # Begin Windows addition menuentry "Windows 10" insmod fat insmod chain set root=(hd0,1) chainloader /EFI/Microsoft/Boot/bootmgfw.efi > EOF
(hd0,1) следует заменить назначенным GRUB именем для ESP. Директива chainloader может использоваться, чтобы указать GRUB запустить другой исполняемый файл EFI, в данном случае диспетчер загрузки Windows. вы можете поместить больше используемых инструментов в исполняемом формате EFI (например, оболочку EFI) в ESP и создать для них записи GRUB.