Установите рабочий стол Ubuntu 18.04 с RAID 1 и LVM на машине с BIOS UEFI

У меня есть машина с BIOS UEFI. Я хочу установить Ubuntu 18.04, настольную версию с RAID 1 (и LVM), таким образом, моя система продолжит работать, даже если один из дисков перестанет работать. Я не нашел ПРАКТИЧЕСКОЕ РУКОВОДСТВО того, как сделать это. Настольный установщик не поддерживает RAID. Ответ на этот вопрос почти работает, но требует, чтобы некоторый GRUB окружил/спас диск USB и волшебство настроек UEFI. Кто-либо знает о процедуре, которая работает без волшебных частей?

9
задан 22 May 2019 в 11:17

2 ответа

С некоторой справкой от того, Как установить сервер Ubuntu с UEFI и RAID1 + LVM, RAID, настроенный в Ubuntu 18.04 и поддержке технологией RAID в Настольном установщике Ubuntu 18.04? и Как избавиться от "сканирования для btrfs файловых систем" при запуске?, мне удалось соединить рабочее ПРАКТИЧЕСКОЕ РУКОВОДСТВО с помощью Linux, управляет только.

Короче говоря

  1. Загрузите альтернативный установщик сервера.
  2. Установка с ручным разделением, EFI + RAID и LVM на разделе RAID.
  3. Клонируйте раздел EFI с установленного раздела на другой диск.
  4. Установите второй раздел EFI в цепочку начальной загрузки UEFI.
  5. Для предотвращения длительного ожидания во время начальной загрузки в случае, если диск повреждается удалите btrfs сценарии начальной загрузки.

Подробно

1. Загрузите установщик

  • Загрузите альтернативный установщик сервера с http://cdimage.ubuntu.com/ubuntu/releases/bionic/release/
  • Создайте загрузочный CD или USB и загрузите новую машину от него.
  • Выбрать Install Ubuntu Server.

2. Установка с ручным разделением

  • Во время установки, в Partition disks шаг, выбрать Manual.
  • Если диски содержат какие-либо разделы, удаляют их.
    • Если какие-либо логические тома присутствуют на Ваших дисках, выбрать Configure the Logical Volume Manager.
      • Выбрать Delete logical volume пока все объемы не были удалены.
      • Выбрать Delete volume group пока все группы объема не были удалены.
    • Если какое-либо устройство RAID присутствует, выбрать Configure software RAID.
      • Выбрать Delete MD device пока все устройства MD не были удалены.
    • Удалите каждый раздел на физических дисках путем выбора их и выбора Delete the partition.
  • Создайте физические разделы
    • На каждом диске создайте раздел 512 МБ (я видел, что другие используют 128 МБ), в начале диска, Использование как: EFI System Partition.
    • На каждом диске создайте второй раздел с 'макс.' размером, Использование как: Physical Volume for RAID.
  • Настройте RAID
    • Выбрать Configure software RAID.
    • Выбрать Create MD device, ввести RAID1, 2 активных диска, 0 резервных дисков и выбор /dev/sda2 и /dev/sdb2 устройства.
  • Настроенный LVM
    • Выбрать Configure the Logical Volume Manager.
    • Создайте группу объема vg на /dev/md0 устройство.
    • Создайте логические тома, например.
      • swap в 16G
      • root в 35G
      • tmp в 10G
      • var в 5G
      • home в 200G
  • Настроенный, как использовать логические разделы
    • Для swap раздел, выбрать Use as: swap.
    • Для других разделов выбрать Use as: ext4 с надлежащими точками монтирования (/, /tmp, /var, /home, соответственно).
  • Выбрать Finish partitioning and write changes to disk.
  • Позвольте программе установки заканчивать и перезагружать.

3. Осмотрите систему

  • Проверьте, какой раздел EFI был смонтирован. Скорее всего, /dev/sda1.

    смонтируйтесь | grep начальная загрузка

  • Состояние Check RAID. Скорее всего, это синхронизируется.

    кошка/proc/mdstat

4. Клонируйте раздел EFI

EFI bootloaded должен был быть установлен на /dev/sda1. Поскольку тот раздел не зеркально отражается через систему RAID, мы должны клонировать его.

sudo dd if=/dev/sda1 of=/dev/sdb1

5. Вставьте второй диск в цепочку начальной загрузки

Этот шаг не может быть необходимым, с тех пор, если любой диск перестает работать, система должна загрузиться от (идентичных) разделов EFI. Однако кажется благоразумным гарантировать, что мы можем загрузиться от любого диска.

  • Выполненный efibootmgr -v и заметьте имя файла для ubuntu запись загрузки. На моей установке это было \EFI\ubuntu\shimx64.efi.
  • Выполненный sudo efibootmgr -c -d /dev/sdb -p 1 -L "ubuntu2" -l \EFI\ubuntu\shimx64.efi.
  • Теперь система должна загрузиться, даже если любой из дисков перестал работать!

7. Ожидать

Если Вы хотите попытаться удалить/запретить какой-либо диск, необходимо сначала ожидать, пока синхронизация RAID не закончилась! Контролируйте прогресс с cat /proc/mdstat Однако можно выполнить шаг 8 ниже при ожидании.

8. Удалите BTRFS

Если один диск перестанет работать (после того, как синхронизация будет завершена), система все еще загрузится. Однако последовательность начальной загрузки проведет много времени, ища btrfs файловые системы. Для удаления этого ненужное ожидание работать

sudo apt-get purge btrfs-progs

Это должно удалить btrfs-progs, btrfs-tools и ubuntu-server. Последний пакет является просто meta пакетом, поэтому если больше пакетов не перечислено для удаления, необходимо быть в порядке.

9. Установите настольную версию

Выполненный sudo apt install ubuntu-desktop устанавливать настольную версию. После этого синхронизация, вероятно, сделана, и Ваша система настроена и должна пережить отказ диска!

10. Обновите раздел EFI после grub-efi-amd64 обновление

Когда пакет grub-efi-amd64 обновляется, файлы на разделе EFI (смонтированный в /boot/efi) может измениться. В этом случае обновление должно быть клонировано вручную к зеркальному разделу. К счастью необходимо получить предупреждение от менеджера по обновлению это grub-efi-amd64 собирается быть обновленным, таким образом, Вы не должны проверять после каждого обновления.

10.1 Узнайте источник клонирования, быстрый путь

Если Вы не перезагрузили после обновления, использовать

mount | grep boot

узнать, какой раздел EFI смонтирован. Тот раздел, обычно /dev/sdb1, должен использоваться в качестве источника клонирования.

10.2 Узнайте источник клонирования, параноидальный путь

Создайте точки монтирования и смонтируйте оба раздела:

sudo mkdir /tmp/sda1 /tmp/sdb1
sudo mount /dev/sda1 /tmp/sda1
sudo mount /dev/sdb1 /tmp/sdb1

Найдите метку времени новейшего файла в каждом дереве

sudo find /tmp/sda1 -type f -printf '%T+ %p\n' | sort | tail -n 1 > /tmp/newest.sda1
sudo find /tmp/sdb1 -type f -printf '%T+ %p\n' | sort | tail -n 1 > /tmp/newest.sdb1

Сравните метки времени

cat /tmp/newest.sd* | sort | tail -n 1 | perl -ne 'm,/tmp/(sd[ab]1)/, && print "/dev/$1 is newest.\n"'

Должен распечатать /dev/sdb1 is newest (скорее всего), или /dev/sda1 is newest. Тот раздел должен использоваться в качестве источника клонирования.

Размонтируйте разделы перед клонированием для предотвращения несоответствия кэша/раздела.

sudo umount /tmp/sda1 /tmp/sdb1

10.3 Клон

Если /dev/sdb1 был источник клонирования:

sudo dd if=/dev/sdb1 of=/dev/sda1

Если /dev/sda1 был источник клонирования:

sudo dd if=/dev/sda1 of=/dev/sdb1

Готово!

11. Глюки виртуальной машины

Если Вы хотите испытать это в виртуальной машине сначала, существуют некоторые протесты: По-видимому, NVRAM, который содержит информацию UEFI, помнят между перезагрузками, но не между циклами перезапуска завершения работы. В этом случае можно закончить в консоли UEFI Shell. Следующие команды должны загрузить Вас в Вашу машину от /dev/sda1 (используйте FS1: для /dev/sdb1):

FS0:
\EFI\ubuntu\grubx64.efi

Первое решение в главном ответе начальной загрузки UEFI в virtualbox - Ubuntu 12.04 могло бы также быть полезным.

12
ответ дан 23 November 2019 в 04:55

RAID-1 + XFS + UEFI

Мне удалось пройти около 99% пути благодаря ответу @Niclas Börlin, спасибо!

Я также обратился за помощью к следующему ответы:

Вот способы, которыми я все испортил

  1. Наличие BIOS в режиме «Авто», что позволило загружать USB-ключ НЕ в режиме UEFI , Это привело к неправильной установке Grub. Я переключил режим на UEFI-only, перезагрузил и удалил все логические тома, рейд-группы и разделы и начал заново. Далее я попытался переустановить grub на разделы EFI, что только ухудшило ситуацию.
  2. Наличие раздела /boot в XFS. Grub2, который поставляется с Ubuntu 18.04LTS, очевидно, не справляется с этим. Хотя это нигде не задокументировано. Я создал отдельный раздел EXT-4 /boot. Обратите внимание, что это по-прежнему на томе RAID-1 LVM, а не на отдельных разделах, таких как EFI! Многие старые ответы говорят, что это невозможно, но, похоже, сейчас. Я закончил тем, что получил grub, но получил неизвестные ошибки файловой системы (например, Как исправить & quot; ошибку: неизвестная файловая система. Grub rescue > ), которая дала мне подсказку XFS на /boot в качестве запрета.
  3. Где-то в середине этого я закончил с установленным grub, но пустым приглашением grub, без меню grub. (например, https://help.ubuntu.com/community/Grub2/Troubility#Specific_Trou устранение проблем ). Это произошло из-за недоступности /boot.

Что сработало для меня

Начните с ответа @Niclas Börlin и измените несколько незначительных вещей.

Таблица разделов

Я предпочитаю один большой / раздел, так что это отражает этот выбор. Основным изменением является раздел EXT4 /boot вместо раздела XFS.

sda/
          GPT     1M (auto-added)
   sda1 - EFI - 512M
   sda2 - MD0 - 3.5G

sdb/
          GPT     1M (auto-added)
   sdb1 - EFI - 512M
   sdb2 - MD0 - 3.5G

md0/
   vg/
     boot - 1G   - EXT4 /boot
     swap - 16G  - SWAP 
     root - rest - XFS  /

После завершенной установки я смог dd содержимое sda1 - sdb2, как подробно описано в другом ответе. Я также смог добавить второй диск в загрузочную цепочку, используя efibootmgr как подробно.

3
ответ дан 23 November 2019 в 04:55

Другие вопросы по тегам:

Похожие вопросы: