GPT
GPT – система разделов, которая устраняет многие ограничения MBR. Практических ограничений на размер диска нет, а максимальное количество разделов ограничено только самой ОС. Чаще встречается на более современных ПК, использующих UEFI вместо старого BIOS.
При выполнении задач системного администрирования весьма вероятно, что будут встречаться обе схемы хранения данных, поэтому важно знать, как использовать инструменты для создания, удаления или изменения разделов применительно к каждой из них.
Управление разделами GPT
Утилита gdisk является эквивалентом fdisk при работе с дисками с разделами GPT.
Интерфейс смоделирован аналогично fdisk с интерактивной командной строкой и теми же (или очень похожими) командами.
Таблица разделов
Команда p используется для печати текущей таблицы разделов. Результат примерно такой:
Command (? for help): p
Disk /dev/sdb: 3903578 sectors, 1.9 GiB
Model: DataTraveler 2.0
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): AB41B5AA-A217-4D1E-8200-E062C54285BE
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 3903544
Partitions will be aligned on 2048-sector boundaries
Total free space is 1282071 sectors (626.0 MiB)
Number start (sector) End (sector) Size Code Name
1 2048 2099199 1024.0 MiB 8300 Linux filesystem
2 2623488 3147775 256.0 MiB 8300 Linux filesystem
И сразу же можно заметить некоторые особенности:
- Каждый диск имеет уникальный идентификатор диска (GUID). Это 128-битное шестнадцатеричное число, назначаемое случайным образом при создании таблицы разделов. Поскольку существует (3.4×1038) возможных значений этого числа, вероятность того, что 2 случайных диска имеют один и тот же GUID, довольно мала. GUID можно использовать для определения того, какие ФС монтировать во время загрузки и в каком месте. Таким образом устраняется необходимость использования для этого пути устройства (например,
/dev/sdb). - См. фразу "Partition table holds up to 128 entries". Действительно на GPT-диске может быть до 128 разделов. Из-за этого нет необходимости в первичных и расширенных разделах.
- Свободное место указано в последней строке, поэтому нет необходимости в эквиваленте команды
Fизfdisk.
Создание раздела
Для создания раздела используют команду n, как и в fdisk. Основное отличие заключается в том, что во время создания также можно указать тип раздела, помимо номера раздела, первого и последнего сектора (или размера). Разделы GPT поддерживают гораздо больше типов, чем MBR. Можно проверить список всех поддерживаемых типов с помощью команды l.
Удаление раздела
Чтобы удалить раздел, вводят команду d и номер раздела. В отличие от fdisk первый раздел не будет удален автоматически, если он является единственным на диске.
На GPT-дисках разделы можно легко переупорядочить, чтобы избежать пробелов в последовательной нумерации. Для этого используют команду s. Например, на диске имеется следующая таблица разделов:
Number start (sector) End (sector) Size Code Name
1 2048 2099199 1024.0 MiB 8300 Linux filesystem
2 2099200 2361343 128.0 MiB 8300 Linux filesystem
3 2361344 2623487 128.0 MiB 8300 Linux filesystem
Если удалить второй раздел, таблица изменится:
Number start (sector) End (sector) Size Code Name
1 2048 2099199 1024.0 MiB 8300 Linux filesystem
3 2361344 2623487 128.0 MiB 8300 Linux filesystem
Если использовать команду s, таблица будет выглядеть следующим образом:
Number start (sector) End (sector) Size Code Name
1 2048 2099199 1024.0 MiB 8300 Linux filesystem
2 2361344 2623487 128.0 MiB 8300 Linux filesystem
Следует обратить внимание, что третий раздел стал вторым.
Примечание – В отличие от MBR-дисков, при создании раздела на GPT-дисках можно задавать размер, используя все доступное нераспределенное пространство, независимо от месторасположения на диске.
Варианты восстановления
На GPT-дисках хранятся резервные копии заголовка GPT и таблицы разделов, что упрощает восстановление дисков в случае повреждения этих данных. В gdisk для доступа к функциям восстановления диска используют команду r (recovery).
Возможно восстановить поврежденный главный заголовок GPT или таблицу разделов с помощью команд b и c соответственно. Кроме того, используют главный заголовок и таблицу разделов для восстановления резервной копии с помощью команд d и e.
Также можно преобразовать MBR в GPT с помощью f и наоборот – g.
Чтобы получить список всех доступных команд восстановления и описания их действий, используют ? в режиме восстановления.
Работа с дисками
Установленного в системе жесткого диска может быть недостаточно и иногда встает вопрос о добавлении дополнительного носителя. Далее рассматривается монтирование диска на физическую или виртуальную машину.
Подготовка
Перед началом работы следует убедиться существует ли диск в Системе. Иногда наличие устройства в BIOS может быть недостаточным. Доступные накопители проверяем командой:
sudo fdisk -l
Разметка
Для разметки диска запускают утилиту fdisk с указанием пути до диска:
fdisk /dev/sdb
При нажатии "m" и подтверждении ввода клавишей Enter, программа предоставит страницу доступных команд:
Справка:
DOS (MBR)
a переключить флаг загрузочного раздела
b редактировать вложенную BSD метку диска
c переключить флаг совместимости с DOS
Общие
d удалить раздел
F показать свободное неразмеченное пространство
l список известных типов разделов
n добавить новый раздел
p показать таблицу разделов
t изменить тип раздела
v проверить таблицу разделов
i вывести информацию о разделе
Разное
m показать это меню
u изменить единицы отображения/ввода
x дополнительные функции (только для экспертов)
Script
I загрузить разметку диска из файла сценария sfdisk
O сохранить разметку диска в файл сценария sfdisk
Сохранить и выйти
w сохранить таблицу на диск и выйти
q выйти без сохранения изменений
Создать новую метку
g создать новую пустую таблицу разделов GPT
G создать новую пустую таблицу разделов SGI (IRIX)
o создать новую пустую таблицу разделов DOS
s создать новую пустую таблицу разделов Sun
Так как предполагается создавать простой раздел (не загрузочный) и используется все дисковое пространство, следует нажать клавишу "n" и Enter.
Система запросит тип раздела выбрать p(primary) – первичный.
Номер раздела – 1.
На вопрос о первом и последнем секторе нажать клавишу Enter.
Следует обратить внимание, что если требуется создать несколько логических дисков, то в ответе на последний сектор следует указать размер в kilo-, mega-, giga-, tera-, petabytes. Соответственно, если раздел нужен размером в 2 гигабайта, то нужно указать 2G.
Далее нужно сохранить изменения нажатием "w" и подтвердить выбор с помощью клавиши Enter.
Форматирование
После выполнения операции, описанной выше, в Системе будет создано устройство /dev/sdb1 по своей сути это и есть раздел на диске.
ОС предлагает на выбор несколько вариантов ФС. Создание ФС происходит выполнением команды mkfs с указанием ключей либо выполнением одной из программ:
mkfs.bfs
mkfs.btrfs
mkfs.cramfs
mkfs.ext2
mkfs.ext3
mkfs.ext4
mkfs.ext4dev
mkfs.fat
mkfs.minix
mkfs.msdos
mkfs.ntfs
mkfs.vfat
mkfs.xfs
Форматирование выполняется командой:
sudo mkfs.ext4 /dev/sdb1
Диск готов к работе. Остается только смонтировать его.
Монтирование
В ОС существует возможность монтировать диск (либо иное блочное устройство) в любую из директорий, которая должна быть пустой:
- создать каталог в директории /mnt:
sudo mkdir /mnt/1
- изменить права доступа к каталогу; всем разрешаем всё:
sudo chmod -R 0777 /mnt/1
- монтировать:
sudo mount /dev/sdb1 /mnt/1
Для монтирования диска автоматически при загрузке Системы необходимо редактировать файл /etc/fstab с помощью любого текстового редактора, например nano:
sudo nano /etc/fstab
Далее в самый конец файла вставить строку и сохранить файл:
/dev/sdb1 /mnt/1 ext4 defaults 0 0
Образы дисков
Создание
Чтобы записать информацию на чистый диск, нужно сначала создать образ записываемого диска. Есть несколько способов сделать это.
Первый способ применим в случае, если требуется скопировать существующий диск; для этого нужно поместить диск в привод, смонтировать диск, перейти в каталог размещения образа и выполнить команду, например:
$ dd if=/dev/cdrom of=mycd.iso
где:
dd– стандартная программа, которая копирует содержимое одного файла в другой; можно использовать для создания образов любых дисков от дискет до DVD и записи на соответствующие носители;if– входной файл (input file);of– выходной файл (output file);/dev/cdrom– стандартная ссылка на устройство CD/DVD-привода; вместо нее можно подставить и настоящее имя устройства (например, /dev/hdd);mycd.iso– имя файла образа, который будет создан из помещенного в привод диска.
Примечание – Расширение iso дань традиции. По умолчанию dd читает с устройства блоками по 512 байт. Это значение можно изменить параметром bs (например, bs=1024). Для принудительного копирования даже после ошибок чтения можно добавить ключ noerror. Создание копии при помощи dd может не сработать при использовании двухслойных DVD. В остальных случаях обычно работает.
В результате на выходе получается точная копия диска. Но таким образом не получится скопировать ни аудиодиск, ни какой-нибудь другой защищенный диск с игрой (последний перепишется, но распознаваться как "правильный", лицензионный не будет). Кроме того, dd не показывает данные о процессе выполняемого копирования для этого можно лишь наблюдать за работой привода или проверять изменения в размере записываемого файла-образа.
Второй способ создания образа диска актуален для случаев, когда нужно записать на диск каталог с файлами или множество таких каталогов. Для этого используется программа genisoimage, которая умеет делать образ диска из директории таким образом:
$ genisoimage -f -v -J -o mycd.iso /mnt/somedisk/temp
В этом примере в текущем каталоге создается образ каталога /mnt/somedisk/temp и записывается в файл mycd.iso. Параметр -v указывает, что genisoimage должна информировать о ходе процесса в консоль, -J задает формат файловой системы (Joliet), а -f указывает genisoimage следовать по символическим ссылкам, помещенным в копируемый каталог.
Итак, чтобы сделать "виртуальный проект" диска, нужно создать некий временный каталог и поместить в него символические ссылки на директории или файлы, которые требуются в проекте. В консоли это делать неудобно, поэтому можно воспользоваться для создания этих ссылок консольным файловым менеджером Midnight Commander:
- запустить
mc; - на одной панели перейти в каталог для создания диска, а на другой панели в каталог расположения файла или папки, символическую ссылку на который требуется добавить в проект;
- поместить курсор на этот файл или каталог, нажать Ctrl+X;
- нажать клавишу "S"; появится диалоговое окно с уже заполненными полями (на что делать ссылку и куда ее помещать);
- подтвердить нажатием Enter;
- таким же образом добавить в проект другие файлы и каталоги;
- передать каталог проекта утилите genisoimage и создать образ.
Примечание – ОС может плохо считывать с носителя большие видеофайлы, если на диске нет файловой системы UDF (Universal Disc Format). На съемном носителе могут соседствовать разные файловые системы: по умолчанию ISO-9660, также Joliet надстройка над ISO-9660, разрешающая длинные имена файлов, причем даже в юникоде; Linux и Windows хорошо понимают Joliet.
Поддержку UDF надо обязательно включать, если записываетcя стандартный DVD с видео, т.е. с четкой структурой каталогов VIDEO_TS (с фильмом, состоящем из VOB-файлов) и иногда AUDIO_TS. Есть два способа включить UDF для образа диска: первый – использовать ключ -udf, а второй – это "ориентированный" на DVD Video параметр -dvd-video. В последнем случае нужно, чтобы имена файлов и каталогов (VIDEO_TS и прочих) были в верхнем регистре. При создании образа файлы (их содержимое) будут отсортированы и расположены в образе диска. Сортировка не произойдет, если все названия фигурируют не в верхнем регистре.
Другое расширение к ISO-9660 – это Rock Ridge. Оно по умолчанию включено в k3b и дает возможность использовать более длинные, чем в Joliet, имена файлов, а также большую глубину вложенности каталогов и атрибуты файлов UNIX (следует обратить на это особое внимание). Rock Ridge включается параметром -r.
Запись
После подготовки образа его нужно записать на диск. В этом поможет программа wodim.
В простейшем случае ее запуск может выглядеть так:
wodim dev=/dev/hdc -eject -v mycd.iso
Вместо /dev/hdc можно использовать другое устройство, а mycd.iso – это название файла с образом. Параметр -eject выдвигает каретку привода после окончания записи. У wodim есть ряд других интересных параметров:
-dummy– симуляция прожига с выключенным лазером; полезно, чтобы определить время запись;-multi– многосессионный диск;-fix– фиксация диска (без записи);speed=значение– скорость записи;blank=режим– очистка содержимого CD-RW; доступные режимы:all(полная очистка, долго),fast(быстро),session(очистить последнюю сессию);-format– форматирование болванки CD/DVD-RW;-overburn– включение возможности записи больше стандартного объема диска; в этом случае, как правило, необходимо также использовать режим записи SAO (-sao).