Установка Debian/Создание таблицы разделов

Материал из Викиучебника — открытых книг для открытого мира

Пожалуй, один из наиболее ответственных этапов установки — создание таблицы разделов и, возможно (или же, скорее, — крайне желательно) настройка LVM на целевом носителе.

Возможная схема распределения пространства[править]

Автор предлагает следующую схему распределения пространства:

  • использование таблицы разделов GPT
    1. с одной стороны, это позволяет избавится от некоторых «наследственных болезней» MBR — в т. ч. использования лишенной в настоящее время смысла CHS-адресации, и необходимости т. н. «extended»-разделов;
    2. также, это дает возможность создания до по меньшей мере 128 разделов; (увы, — с поправкой на то, что Linux поддерживает не более 15);
    3. кроме того, использование GPT необходимо для загрузки системы некоторыми из современных BIOS, а также системами, использующих вместо последнего UEFI;
  • порядка 1 MiB выделяется под раздел «BIOS GRUB», в котором хранится «служебная» часть загрузчика GRUB, — отвечающая, в числе прочего, за поддержку файловой системы (в предлагаемом варианте — /boot), на которой, в свою очередь, размещается «основная» часть загрузчика; (при использовании MBR, для этого используется следующая непосредственно за MBR часть нулевого цилиндра, не доступная для распределения);
  • 1% ÷ 5% от общей емкости носителя (но, пожалуй, в пределах 1 GiB ÷ 16 GiB), отводится под swap-раздел; такой раздел является своеобразной «страховкой» на случай, если некие процессы, по какой-либо причине, захотят «присвоить» себе значительные объемы виртуальной памяти — необходимость обращения к swap замедлит процесс выделения памяти и, возможно, даст администратору время для принятия решительных мер; (к сожалению, эвристика OOM Killer изредка дает сбои; автор припоминает случай, когда оный попытался досрочно завершить init-процесс — с очевидными последствиями);
  • порядка 192 MiB ÷ 512 MiB отводится под отдельный /boot, что обеспечивает возможность переустановки загрузчика (GRUB) даже при отсутствии доступа к LVM (например, с использованием системы, отличной от GNU/Linux); для такого раздела можно, при желании, использовать даже «упрощенную» ФС, в т. ч. FAT32;
  • некоторый объем, от порядка 512 MiB, выделяется как «стратегический резерв» — создается неиспользуемый раздел, или же это пространство не распределяется вовсе; такой резерв может быть использован, например, если совершенно необходимо создать отдельную ФС, но LVM использовать по каким-то причинам невозможно (в частности, — по причине сбоя LVM — для сбора на эту ФС критической информации о состоянии LVM), или же для создания временного физического тома LVM при заполненности основных (до переноса данных, или удаления более ненужных), etc.;
  • оставшееся пространство распределяется между двумя или более физическими томами LVM; использование двух томов позволит, при необходимости, выполнить «дефрагментацию» логических томов используя pvmove(8); (возможности переноса данных в пределах одного тома этот инструмент не предоставляет.)

Использование GNU Parted[править]

NB
дальнейшие действия предполагают инициализацию служебных областей некоторого носителя информации (НЖМД, ТТН, etc.) Следует быть предельно внимательным, чтобы выполнить команды в отношении именно целевого носителя (а не, к примеру, носителя, на котором установлена используемая система.) Выяснить имена /dev-файлов, соответствующих носителю (или носителям), используемым основной системой, можно, в частности, следующими командами:
  • # pvs
  • # parted /dev/sdQ unit mib print
  • $ cat -- /proc/mounts /proc/swaps
Ясно, что эти имена ни в коем случае не должны появится в командах, подобных приводимым ниже.

Предлагаемую разметку можно реализовать подобно (предполагая емкость целевого носителя порядка 500 GB и «чистую» таблицу разделов GPT; команду создания таблицы — # parted DEV unit mib print mklabel gpt — выполнить по-необходимости):

# parted /dev/sdX \
      unit mib \
      mkpart biosgrub    0%     1mib  set 1 bios_grub on \
      mkpart boot        1mib 512mib \
      mkpart swap      512mib  11gib  set 3 swap on \
      mkpart res-1      11gib  16gib \
      mkpart small-1    16gib  32gib \
      mkpart medium-1   32gib  64gib \
      mkpart large-2    64gib 128gib \
      mkpart large-3   128gib 192gib \
      mkpart large-4   192gib 256gib \
      mkpart large-5   256gib 320gib \
      mkpart large-6   320gib 384gib \
      mkpart medium-12 384gib 416gib \
      mkpart medium-13 416gib 448gib \
      mkpart tail      448gib 100% 

Отметим, что параметры parted(8), подобные приведенным выше, можно сформировать и тривиальным Shell-кодом.

Проверить корректность созданной таблицы разделов можно используя # parted /dev/sdX unit mib print (или же, как вариант, unit s print — чтобы удостоверится, что границы разделов выровнены по размеру физического блока носителя: 8 «секторов» для современных НЖМД, 2097152 для ТТН, etc.)

Инициализация swap и /boot[править]

Сразу после создания таблицы разделов можно инициализировать swap-раздел и ФС /boot, подобно:

# mkswap /dev/sdX3 
# mke2fs -j -- /dev/sdX2 

Далее, чтобы избежать привязки к конкретному имени файла раздела, несущего swap и ФС /boot, извлечем их UUID:

# blkid -- /dev/sdX[23] 
/dev/sdX2: UUID="7bfad579-8e0f-4ef7-bc58-fad76f5fc83d" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdX3: UUID="d66d7d66-4382-4019-b420-1c47c29f7263" TYPE="swap"
# 

Данные идентификаторы подходят как для «явного» использования в команде # mount -U (# swapon -U), так и для fstab(5). Отметим, однако, что при создании копии ФС на уровне образа (в частности, — используя dd(1), # cp -- /dev/sdX2 /dev/sdYY, и подобные) имеющийся UUID сохраняется, а значит для различения ФС (исходной и ее копии) крайне желательно его переназначить после копирования, подобно:

# tune2fs -U random -- /dev/sdYY .

См. также[править]