Как установить сервер Ubuntu с UEFI и RAID1 + LVM

15

Я использовал для установки своих серверов с LVM поверх программного RAID1, и установил grub на MBR обоих дисков. Теперь у меня есть сервер UEFI, и режим совместимости (BIOS), похоже, не работает.

Так что я пошел по пути установки с UEFI.

Первый тест, установка одного диска работает нормально.

Затем я попытался установить с RAID1 + LVM. Я разделил два своих диска таким же образом:

  • системный раздел EFI, 200 МБ
  • физический раздел RAID

Затем я выполнил настройку: - RAID 1 с использованием обоих дисковых разделов RAID - Группа томов LVM в массиве RAID 1 - Три логических тома: /, / home и swap

Установка продолжилась, но при перезагрузке я получаю grub shell и застрял.

Итак, возможно ли заставить grub2-efi работать на LVM через RAID1? Как это сделать? Существуют ли другие варианты загрузчика (прямая загрузка Linux из EFI ??)? и т.д...

ALCI
источник

Ответы:

11

Хорошо, я нашел решение и могу ответить на свои вопросы.

1) я могу использовать LVM поверх RAID1 на машине с UEFI?

Да, безусловно. И он сможет загрузиться, даже если один из двух дисков выйдет из строя.

2) Как это сделать?

Кажется, это ошибка в установщике, поэтому простое использование установщика приводит к сбою загрузки (оболочка grub).

Вот рабочая процедура:

1) вручную создайте следующие разделы на каждом из двух дисков: - раздел размером 512 МБ с типом UEFI a в начале диска - после этого раздел типа RAID

2) создайте массив RAID 1 с двумя разделами RAID, затем создайте группу томов LVM с этим массивом и вашими логическими томами (я создал один для корневого, один для домашнего и один для подкачки).

3) продолжите установку и перезагрузите компьютер. ОТКАЗ! Вы должны получить ракушку.

4) может быть возможно загрузиться с оболочки grub, но я решил загрузиться с спасательного usb-диска. В режиме восстановления я открыл оболочку на моем целевом корневом сервере fs (то есть на логическом томе root lvm).

5) получить UUID этого целевого корневого раздела с помощью 'blkid'. Запишите это или сделайте снимок на свой телефон, вам понадобится следующий шаг.

6) смонтируйте системный раздел EFI ('mount / boot / efi') и отредактируйте файл grub.cfg: vi /boot/efi/EFI/ubuntu/grub.cfg Здесь замените ошибочный UUID на тот, который вы получили в данный момент 5. Сохранить.

7) чтобы иметь возможность загрузки со второго диска, скопируйте раздел EFI на этот второй диск: dd if = / dev / sda1 of = / dev / sdb1 (измените sda или sdb в соответствии с вашей конфигурацией).

8) Перезагрузка. На экране настроек UEFI установите два раздела EFI в качестве загрузочных и установите порядок загрузки.

Вы сделали. Вы можете протестировать, отключить один или другой диск, он должен работать!

ALCI
источник
Спасибо за подробную процедуру. Пожалуйста, не могли бы вы указать свою Boot-Info? ( help.ubuntu.com/community/Boot-Info )
LovinBuntu
@LovinBuntu Вот вывод Boot-Info, запущенного с USB-ключа: paste.ubuntu.com/6223137
alci
Я получил ошибку, но не смог получить грязную оболочку.
Питер Лоури
4
Я просто потратил пару дней, пытаясь выполнить аналогичную процедуру, в основном из-за моей глупости, но на случай, если это может помочь кому-то еще избежать этой проблемы, я упомяну, что вам нужно обязательно загрузить Live USB с использованием UEFI, а не устаревшего BIOS. (Мой MB, в настройках «auto», предпочитал загружаться в устаревшем режиме. Мне пришлось отключить его - или вручную выбрать вариант EFI - чтобы заставить установку работать.)
Джонатан Y.
1
Используя Ubuntu 16.04.1, это больше не кажется проблемой. Я установил раздел EFI объемом 512 МБ, раздел SWAP и раздел RAID на 490 ГБ для RAID1, и на новом устройстве md я полностью установил сервер Ubuntu 16.04. После перезагрузки она запустила новую систему без нареканий, не нужно связываться с разделом EFI, fstab и т. Д.
nerdoc
4

Я сделал это чуть больше года назад сам, и, хотя у меня были проблемы, не было проблем, перечисленных здесь. Я не уверен, где я нашел совет, который я сделал в то время, поэтому я опубликую то, что я сделал здесь.

1) Создайте разделы efi 128 МБ при запуске (только один из которых будет подключен, в / boot / efi)

2) Создать 1 ГБ / загрузочный массив RAID1, без LVM

3) Создать большой массив RAID1 с помощью LVM

Наличие / boot в отдельном разделе / ​​массиве RAID1 решает проблемы с тем, что раздел efi не может найти подходящие вещи.

А для тех, кто ищет больше деталей, как я был в то время, это, точнее, то, как я выполнил свою настройку:

6x 3TB Drives

Have 4 RAID arrays:
/dev/md0 = 1GB RAID1 across 3 drives
   --> /boot (no LVM)
/dev/md1 = 500GB RAID1 across 3 drives
   LVM:
      --> /     =  40GB
      --> /var  = 100GB
      --> /home = 335GB
      --> /tmp  =  10GB

/dev/md2 = 500GB RAID1 across 3 drives (for VM's/linux containers)
   LVM:
      --> /lxc/container1 =  50GB
      --> /lxc/container2 =  50GB
      --> /lxc/container3 =  50GB
      --> /lxc/container4 =  50GB
      --> /lxc/extra      = 300GB (for more LXC's later)

/dev/md3 = 10TB RAID6 across 6 drives (for media and such)
   --> /mnt/raid6 (no LVM)


Disks are setup thus:

/sda => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdb => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdc => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdd => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)
/sde => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)
/sdf => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)

Обратите внимание, что только один из / boot / efi будет монтироваться, а вторые два являются клонами; Я сделал это, потому что хотел, чтобы машина все еще загружалась при потере любого из 3 дисков в RAID1. Я не возражаю против работы в ухудшенном режиме, если у меня все еще есть полное резервирование, и это дает мне время для замены привода, пока машина еще работает.

Кроме того, если бы у меня не было второго массива RAID1 для размещения контейнеров LXC и в основном всех баз данных и тому подобного, / var был бы НАМНОГО больше. Однако наличие каждого LXC в качестве собственного логического тома было хорошим решением, чтобы одна виртуальная машина / веб-сайт не нарушала работу других из-за неконтролируемых журналов ошибок, например ...

И последнее замечание: я установил Ubuntu Alternate Install USB с 12.04.01 (до выхода 12.04.02), и все работало довольно хорошо. После удара головой об этом в течение 72 часов.

Надеюсь, это кому-нибудь поможет!

jhaagsma
источник
1
grub2 прекрасно справляется с загрузкой lvm на md без раздела / boot и работает по крайней мере несколько лет.
psusi
@psusi Я хотел бы, чтобы вы были правы, моя новая установка не будет загружаться со второго диска сама по себе. Все LVM, в отличие от настройки jhaagsma.
Sjas
2

У меня был такой же пробем, загрузчик efi с двумя дисками и программный рейд

/ DEV / SDA

  • / dev / sda1 - 200 МБ efi-раздел
  • / dev / sda2 - 20G физический для рейда
  • / dev / sda3 - 980G физический для рейда

/ DEV / SDB

  • / dev / sdb1 - 200 МБ efi-раздел
  • / dev / sdb2 - 20G физический для рейда
  • / dev / sdb3 - физический для рейда 980G

Поменяйте местами на / dev / md0 (sda2 & sdb2) Root на / dev / md1 (sda3 & sdb3)

Если вы входите в оболочку grub-rescue, загрузитесь с помощью:

set root=(md/1)
linux /boot/vmlinuz-3.8.0-29-generic root=/dev/md1
initrd /boot/initrd.img-3.8.0-29-generic
boot

После этого загрузите этот файл исправления - https://launchpadlibrarian.net/151342031/grub-install.diff (как описано на https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1229738 ).

cp /usr/sbi/grub-install /usr/sbi/grub-install.backup
patch /usr/sbin/grub-install patch
mount /dev/sda1 /boot/efi
grub-install /dev/sda1
umount /dev/sda1
mount /dev/sdb1 /boot/efi
grub-install /dev/sdb1
reboot
Ljupco
источник