Перевод статьи: Get expert_recipe, mdraid, LVM, GPT and grub2 Playing Together on Ubuntu Lucid and Debian Squeeze
Автор: Эндрю Гамильтон (Andrew Hamilton)
Жёсткие диски растут и растут. Теперь можно взять жёсткие диски на 3 терабайта и получить по огромному хранилищу на каждом сервере. Но тогда можно заметить, что текущие файлы автоматизации установки не работают, завершаясь аварийно на попытке установить GRUB2. Если нажать "Alt-F4", чтобы проверить журнал ошибок, то можно увидеть ошибки о том, что GRUB2 невозможно встроить в диск GPT.
Когда размер диска достигает 2 терабайт, установщик Debian и менеджер разделов partman по умолчанию используют разбивку разделов по схеме GPT. К несчастью старые версии partman неправильно настраивают GPT, если диски являются частью программного RAID-массива. К счастью, исправить это не так сложно, нужно только добавить несколько директив (или, возможно, поменять их, если некоторые из них уже используются в вашем файле автоматизации установки).
Что нам нужно - это добавить раздел, который не создают подобающим образом старые версии менеджера разделов partman. Этот раздел имеет тип bios_grub и должен иметь размер 1 мегабайт. Этот раздел позволяет GRUB2 найти место для размещения всего загрузчика и позволяет BIOS найти загрузочную информацию GRUB для загрузки загрузчика. Более подробную информацию о загрузочном разделе BIOS можно найти в Wikipedia – BIOS Boot Partition (Загрузочный раздел BIOS).
Чтобы добавить раздел bios_grub в файл автоматизации установки при помощи менеджера разделов partman, мы добавим к нашему рецепту expert_recipe следующее:
1 1 1 free \
$iflabel{ gpt } \
method{ biosgrub } \
. \
Эти настройки добавят раздел размером 1 мегабайт с высшим приоритетом. Если метка диска имеет значение "GPT", то раздел будет создан методом biosgrub.
Поскольку мы добавили к диску ещё один раздел, также нужно будет увеличить на единицу номера всех разделов, используемых в RAID-массивах. Например, если сначала в файле автоматизации установки использовались следующие настройки RAID:
d-i partman-auto-raid/recipe string \
1 2 0 ext3 /boot /dev/sda1#/dev/sdb1 \
. \
1 2 0 lvm - /dev/sda2#/dev/sdb2 \
.
То теперь нам нужно отредактировать эту запись и увеличить номера разделов на единицу:
d-i partman-auto-raid/recipe string \
1 2 0 ext3 /boot /dev/sda2#/dev/sdb2 \
. \
1 2 0 lvm - /dev/sda3#/dev/sdb3 \
.
Полностью настройки диска в новом файле автоматизации установки будут выглядеть следующим образом:
d-i partman-auto/disk string /dev/sda /dev/sdb
d-i partman-auto/method string raid
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-auto/purge_lvm_from_device boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-md/confirm_nochanges boolean true
d-i partman-lvm/confirm boolean true
d-i partman-auto/choose_recipe select boot-root
d-i partman-auto-lvm/new_vg_name string vg01
d-i partman-auto-lvm/guided_size string 100%
d-i partman-auto-raid/recipe string \
1 2 0 ext3 /boot /dev/sda2#/dev/sdb2 \
. \
1 2 0 lvm - /dev/sda3#/dev/sdb3 \
.
d-i partman-auto/expert_recipe string \
boot-root :: \
1 1 1 free \
$iflabel{ gpt } \
method{ biosgrub } \
. \
256 10 256 raid \
$lvmignore{ } \
$primary{ } \
method{ raid } \
. \
1000 20 1000000 raid \
$lvmignore{ } \
$primary{ } \
method{ raid } \
. \
150% 30 150% swap \
$defaultignore{ } \
$lvmok{ } \
lv_name{ lv_swap } \
method{ swap } \
format{ } \
. \
20480 40 20480 ext4 \
$defaultignore{ } \
$lvmok{ } \
lv_name{ lv_root } \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ ext4 } \
mountpoint{ / } \
. \
1 50 -1 ext4 \
$defaultignore{ } \
$lvmok{ } \
lv_name{ lv_dummy } \
.
d-i mdadm/boot_degraded boolean true
d-i partman-md/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select Finish partitioning and write changes to disk
d-i partman/confirm boolean true
d-i partman-md/confirm_nooverwrite boolean true
d-i partman/confirm_nooverwrite boolean true
Ищете подробности об использовании expert_recipe в файлах автоматизации установки? Посмотрите другую статью в моём блоге, где описано больше подробностей - Заметки по использованию expert_recipe в файлах автоматизации установки Debian/Ubuntu.