Встановіть робочий стіл Ubuntu 18.04 з RAID 1 та LVM на машину за допомогою UEFI BIOS


11

У мене машина з UEFI BIOS. Я хочу встановити Ubuntu 18.04, настільну версію з RAID 1 (і LVM), щоб моя система продовжувала працювати, навіть якщо один з накопичувачів вийшов з ладу. Я не знайшов, як зробити це. Інсталятор на робочому столі не підтримує RAID. Відповідь на це питання майже працює, але вимагає деякої оболонки / рятувального USB-диска GRUB та магії налаштувань UEFI. Хтось знає про процедуру, яка працює без чарівних частин?

Відповіді:


18

За допомогою довідки, як встановити сервер Ubuntu з UEFI та RAID1 + LVM , RAID, налаштований у Ubuntu 18.04 , та підтримку RAID в установщику Ubuntu 18.04 Desktop? і Як позбутися "сканування файлових систем btrfs" при запуску? , Мені вдалося зібрати робочий HOWTO, використовуючи лише команди Linux.

Коротко

  1. Завантажте інсталятор альтернативного сервера.
  2. Встановіть з розділом вручну, EFI + RAID та LVM на RAID-розділі.
  3. Клоніруйте розділ EFI з встановленого розділу на інший диск.
  4. Встановіть другий розділ EFI у ланцюг завантаження UEFI.
  5. Щоб уникнути тривалого очікування під час завантаження, у випадку, коли диск порушився, видаліть btrfsсценарії завантаження.

Детально

1. Завантажте інсталятор

  • Завантажте інсталятор альтернативного сервера з http://cdimage.ubuntu.com/ubuntu/releases/bionic/release/
  • Створіть завантажувальний компакт-диск або 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.
    • На кожному диску створюйте другий розділ розміром "max", використовуйте як : Physical Volume for RAID.
  • Налаштувати RAID
    • Виберіть Configure software RAID.
    • Виберіть Create MD device, введіть RAID12 активні диски, 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.
  • Дозвольте інсталяційну програму закінчити та перезавантажити.

Якщо ви перевстановлюєтесь на диск, який раніше мав конфігурацію RAID, крок створення RAID вище може виявитися невдалим, і ви ніколи не отримаєте mdпристрій. У цьому випадку вам, можливо, доведеться створити USB-накопичувач Ubuntu Live, завантажившись у нього, запустіть, gparted щоб очистити всі таблиці розділів, перш ніж перезапустити цей HOWTO.

3. Огляньте систему

  • Перевірте, який розділ EFI встановлений. Швидше за все /dev/sda1.

    кріплення | греп черевик

  • Перевірте статус RAID. Швидше за все, це синхронізація.

    cat / proc / mdstat

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

Завантажений файл EFI повинен був бути встановлений на /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. Залежно від вашої оболонки, вам, можливо, доведеться уникати нахилу від нахилу.
  • Перевірте з , efibootmgr -vщо у вас є таке ж ім'я файлу для ubuntuі ubuntu2завантаження елементів , і що вони є першими двома у порядку завантаження.
  • Тепер система повинна завантажуватися, навіть якщо один з дисків вийшов з ладу!

7. Зачекайте

Якщо ви хочете спробувати фізично видалити або вимкнути будь-який накопичувач, щоб перевірити вашу установку, спершу потрібно дочекатися завершення синхронізації RAID! Слідкуйте за ходом за допомогою. cat /proc/mdstatОднак, ви можете виконати крок 8 нижче під час очікування.

8. Видаліть BTRFS

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

sudo apt-get purge btrfs-progs

Це слід видалити btrfs-progs, btrfs-toolsі ubuntu-server. Останній пакет - це лише мета-пакет, тому якщо для видалення не вказано більше пакунків, вам слід буде добре.

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. Наступні команди повинні завантажувати вас у вашу машину з /dev/sda1(використовувати FS1:для /dev/sdb1):

FS0:
\EFI\ubuntu\grubx64.efi

Перше рішення у верхній відповіді завантаження UEFI у virtualbox - Ubuntu 12.04 також може бути корисним.


Як би ви не використовували LUKS для зашифрованого набору дзеркал / RAID 1, уникаючи шифрування, що відбувається два рази (наприклад, LUKS сидить під mdadm, так що IO трапляється двічі, але саме шифрування відбувається лише один раз; це фактично не відбувається з деякими налаштуваннями , наприклад, рекомендовані для ZFS, де обсяги шифруються двічі, один раз на пристрій, фактично дублюючи вартість речей із шифрування). Я не зміг знайти останні інструкції щодо цієї настройки.
сойз

2
@soze, на жаль, у мене немає досвіду роботи із зашифрованими розділами Linux. Я б зробив кілька проб і помилок у віртуальній машині, щоб це з'ясувати. Примітка: Я додав вище розділ про отримані віртуальні машини.
Niclas Börlin

Дякую @ NiclasBörlin! Я боровся зі створенням завантажувального розділу під RAID та LVM, і ваша відповідь була чітко зрозумілою. Дуже дякую!
Gui

Свята корова! Приємно!
pileofrogs

Здається, це більше не працює з Focal Fossa, оскільки альтернативного інсталятора вже немає. Інсталятор Focal не має згаданих параметрів розділення і наполягає на пристрої, /bootякщо ви намагаєтесь пройти автоматичний шлях установки рейду.
vjeri

3

RAID-1 + XFS + UEFI

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

Я також звернувся за допомогою до наступних відповідей:

Ось способи я переплутав речі

  1. Наявність BIOS в режимі "Авто", що дозволило завантажувати USB-ключ НЕ в режимі UEFI. Це призвело до неправильного встановлення Grub. Я перейшов у режим лише для UEFI, перезавантажив і видалив усі логічні томи, рейдові групи та розділи і почав заново. Я також спробував знову встановити grub на розділи EFI, що тільки погіршило ситуацію.
  2. Маючи /bootрозділ на XFS. Grub2, що постачається з Ubuntu 18.04LTS, мабуть, не справляється з цим. Хоча це ніде не зафіксовано. Я створив окремий /bootрозділ EXT-4 . Зауважте, що це все ще є на рівні LVM RAID-1, а не окремих розділів, таких як EFI! Багато старих відповідей кажуть, що це неможливо, але, здається, зараз. У результаті я отримав grub, але отримав невідомі помилки файлової системи (наприклад, як виправити "помилка: невідома файлова система. Рятування grub> ), що дало мені підказку на XFS /bootяк недійсний .
  3. Десь в середині цього я закінчив встановлення grub, але пусте підказка grub, без меню grub. (наприклад, https://help.ubuntu.com/community/Grub2/Troubleshooting#Specific_Troubleshooting ). Це було через /bootнедоступність.

Що працювало на мене

Почніть з відповіді @Niclas Börlin і змініть кілька незначних речей.

Таблиця розділів

Я віддаю перевагу одному великому /розділу, тому це відображає цей вибір. Основна зміна - /bootрозділ EXT4 замість 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як детальніше.


дуже корисний! Я зіткнувся з тією ж проблемою з сервером ubuntu 18.04 + UEFI + RAID1 + LVM. Дотримуючись вашої схеми розділів мені дуже допомогло. Дякую!
Лукас Аймаретто
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.