Разметка диска GPT или MBR Linux
Новый диск не имеет разметки, поэтому сначала необходимо разметить диск (создать таблицу разделов и выбратьфайловую систему - отформатировать), затем уже использовать. В табилце разметки непосредственно хранится информация о файлах и их позиции на диске..
Существует 2 типа таблиц разметки:
- Устаревшая MSDOS (MBR) [часто обозначается как BIOS, Legacy BIOS] - главная загрузочная запись - Master Boot Record, редакторы его могут отображать как dos или msdos.
- И современная UEFI (GPT) - GUID Partition Table.
Диск можно разметить и поделить при установке операционной системы или в случае с многими установочными образами Линукса - операционная система запускается с флешки или с диска и можно в графическом режиме разметить диски. И не только - можно наставить софта, сделать какие-то изменения и все они будут записаны при установке операционной системы (это как вариант). Т.е. под рукой всегда живой образ системы с которого можно загрузиться и что-то сделать..
В графическом режиме доступны утилиты, например Редактор разделов System - PartitionManager, или GParted, кому что больше нравится.. Ниже покажу как это можно сделать из командной строки (консоли Linux).
Смысл делить диск на разделы в Линуксе - чтоб директория /home была в отдельном разделе (директории и настройки пользователей). В случае переустановки операционной системы отформатируем первый (корень) раздел и установим недостающий софт, и вуаля все настройки программ автоматом подцепятся из /home.. Сегодня достаточно 30Гб под корень / и от 10 ГБ под /home. т.е. создаём 2 раздела на диске + EFI раздел если доступен UEFI (GPT)..
Своп (linux-swap - раздел подкачки) я не использую, начиная с Ubuntu 18.04 отказываются от раздела swap (в 2023г. KDE Neon по умолчанию размечает диск с linux-swap, всё не так однозначно :), вместо него будет использоваться файл подкачки (swapfile). Он может понадобиться для режима сна ноутбука или если мало памяти - система менее 1 - 2 Гб памяти использует (в зависимости от сборки).. Для режима сна необходим раздел/файл подкачки = размер памяти + 2 Гб. т.е. просто добавьте запас места в корневом разделе..
Если используете SSD диск - оставляйте 10% (от 10 до 20%) места в конце неразмеченными, это продлит его ресурс, поскольку там будут проходить фоновые операции записи.. (По умолчанию на SSD диске есть скрытая область для этого, эта неразмеченная пойдёт в плюс к ней..) И судя по тестам из интернетов - эта дополнительная область увеличит IOPS - количество операций ввода и вывода, тем самым ускоряя операции с диском.
Просмотр разметки диска и прочей информации в консоли
# Перечислит тома на диске, подробно с точками монтирования и удобным размером df -h # Подробная информация о всех дисках sudo fdisk -l # О конкретном диске sudo fdisk -l /dev/sda # Перечислит диски, тома и размер оных cat /proc/partitions # Только диски fdisk -l # Диски и размер sudo sfdisk -s
Вариантов намного больше, но первых 4-х вполне достаточно..
Диск с таблицей разделов MBR
Где-то в 80-х был создан формат для загрузки диска с таблицей разделов MBR, он имеет ограничение поддержки дисков объёмом до 2.2 Тб и ограничения по количеству(4) первичных (главных - primary) разделов, остальные создаются в расширенном разделе.. Необходимо выставлять флаг с какого раздела грузиться для БИОС-а компьютера, его ещё активным разделом называют.. Запись MBR занимает первые 512 байт в первом секторе на диске..
В консоли создать MBR и поделить можно так (пусть диск будет 30Гб):
sudo fdisk /dev/sda # Создать новую таблицу разделов MBR o # Создаём разделы n: enter (default p), enter (default 1), enter, +20G n: enter (default p), enter (default 2), enter, +7G # Остаток 10% неразмечен для SSD или # n: enter (default p), enter (default 2), enter, enter # Устанавливаем boot flag (флаг загрузочного раздела) у корневого раздела. a: 1 # Применить - записать изменения, q - выйти без изменений w
Дополнения и пояснения:
# - символ комментария.
p - посмотреть разделы.
d - удалить разделы.
b - редактировать метки диска (edit bsd disklabel).
Изменяем тип таблиц на Linux (L введите чтоб уточнить, зависит от версий).
Должно по умолчанию назначаться..
t: 1, 83 (или 20). t: 2, 83. # Отформатировать (создать файловую систему) sudo mkfs.ext4 -L 'mylabel1' /dev/sda1 sudo mkfs.ext4 -L 'mylabel2' /dev/sda5
Скопировать разметку на диск 2, для MBR это делается так (в случае с RAID - полезно):
sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb
Диск с таблицей разделов GPT
Диск с таблицей разделов GPT устроен по иному и имеет ряд преимуществ:
- Размер диска может быть до 9.4 Зеттабайт, для сравнения:
MBR=2,2Тб против GPT=10 093 173 145,6 Тб.
Запас на будущее колоссальный, весь трафик интернета за 2016 примерно 1,1 Зеттабайт. - GPT допускает 264 = 18 446 744 073 709 552 000 основных разделов, но вот Windows допускает не более 128 разделов, хотя в реальной жизни более 3-х не используется..
- GPT хранит копию данных раздела в конце диска и значения контрольной суммы для проверки целостности данных, позволяя восстановить их в случае повреждения основного заголовка GPT. (MBR же такого не умеет и помнится у меня были случаи повреждения этой записи под Windows.)
- Загрузка операционной системы происходит быстрее, с UEFI быстрее инициализируется железо.. (На EFI разделе находятся драйверы аппаратных компонентов, к которым может получать доступ запущенная операционная система и в этом случае загрузка происходит прямо с этого раздела, что быстрее.)
- Нет необходимости в boot флаге разделу.
В биосе должен быть включён режим UEFI или UEFI + Legacy ищите где-то в Boot Options (загрузка итп..), обычно спаренный режим уже включен на новом железе. Естественно грузимся из под UEFI при установке с флешки (F2, F8, F10, F11, бут меню в БИОС-е или иные)..
Если связь между оборудованием и операционной системой (ОС) осуществляется только через режим UEFI (а не Legacy BIOS), использование GPT для разбивки разделов становится практически обязательным, иначе могут быть проблемы совместимости с MBR. Советую из консоли или при помощи редактора разделов GParted итп. установить тип таблицы gpt, при установке операционной системы, установщик может по умолчанию dos поставить..
UEFI имеет собственный загрузчик операционных систем с интегрированными менеджерами их запуска. Для загрузчика UEFI на диске должен быть создан небольшой загрузочный раздел, который называется EFI System Partition, он же ESP, он же EFISYS и имеет тип EF00.
При установке Linux будет возможность обозначить тип - системный раздел EFI.
EFI - Extensible Firmware Interface System Partition - системный раздел расширяемого интерфейса прошивки.
На дисках расширенного формата 4K Native (секторы по 4 Кб, по сути это неминуемо в будущем (сейчас 512кб в ходу), с 2010г операционные системы поддерживают новый формат) EFI должен быть не менее 256 Мб в виду ограничений FAT32, посему я делаю его с запасом = 360 Мб (этого хватит на несколько ОС на 1 диске), но можно и 100 Мб.. В интернете встречаются экспериментаторы советующие делать размер не менее 520 Мб (546 Мб), чтоб любой каприз влез, но Линукс занимает около 4 Мб.
На каждом диске может быть не более одного раздела EFI. По стандартам, раздел должен быть отформатирован в файловой системе FAT32 (для USB HDD, USB Flash могут быть поняты при загрузке более старые FAT12, FAT16 (в том числе и EFI)).
Запись GPT занимает первые 2048 секторов (1 Мб) на диске и включает в себя резерв - отступ для MBR 512 байт.
В консоли создать GPT и поделить можно так (пусть диск будет 30Гб):
Посмотреть разметку диска:
# Перечислит тома на диске, подробно с точками монтирования и удобным размером df -h # Подробная информация о всех дисках sudo fdisk -l sudo gdisk -l /dev/sda # Разметка и флаги sudo parted /dev/sda print
Непосредственно работа с дисками
Тип таблиц на Linux (L введите чтоб уточнить, обозначение зависит от версий)
8200 Linux swap
8300 Linux filesystem
sudo gdisk /dev/sda # p - посмотреть разделы # d - удалить разделы # Создаём новую таблицу GPT o: y # Создаём разделы n: enter (default 1), enter, +260M, ef00 n: enter (default 2), enter, +20G, enter (8300) n: enter (default 3), enter, +7G, enter (8300) # Остаток 10% неразмечен для SSD или #n: enter (default 3), enter, enter, enter (8300) # Сохраняем w: y # Проверям sudo parted /dev/sda print
Копирование разметки диска для GPT (в случае с RAID - полезно):
# sgdisk [от куда] [ключ] [куда] sudo sgdisk /dev/sda -R /dev/sdb
Будьте бдительны! Какому гению в голову пришло в обратном порядке выстраивать диски, точнее применять сразу после ключа -R, --replicate=second_device_filename. Поэтому запись в логичном/привычном порядке sgdisk -R /dev/sda /dev/sdb приведёт к затиранию первого диска sda, в этой форме первым пишется диск на который копируется разметка, а вторым с которого копируют.