Перевод статьи: 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.