У меня есть машина с BIOS UEFI. Я хочу установить Ubuntu 18.04, настольную версию с RAID 1 (и LVM), таким образом, моя система продолжит работать, даже если один из дисков перестанет работать. Я не нашел ПРАКТИЧЕСКОЕ РУКОВОДСТВО того, как сделать это. Настольный установщик не поддерживает RAID. Ответ на этот вопрос почти работает, но требует, чтобы некоторый GRUB окружил/спас диск USB и волшебство настроек UEFI. Кто-либо знает о процедуре, которая работает без волшебных частей?
С некоторой справкой от того, Как установить сервер Ubuntu с UEFI и RAID1 + LVM, RAID, настроенный в Ubuntu 18.04 и поддержке технологией RAID в Настольном установщике Ubuntu 18.04? и Как избавиться от "сканирования для btrfs файловых систем" при запуске?, мне удалось соединить рабочее ПРАКТИЧЕСКОЕ РУКОВОДСТВО с помощью Linux, управляет только.
btrfs
сценарии начальной загрузки.Install Ubuntu Server
.Partition disks
шаг, выбрать Manual
.Configure the Logical Volume Manager
. Delete logical volume
пока все объемы не были удалены.Delete volume group
пока все группы объема не были удалены.Configure software RAID
. Delete MD device
пока все устройства MD не были удалены.Delete the partition
.EFI System Partition
.Physical Volume for RAID
.Configure software RAID
.Create MD device
, ввести RAID1
, 2 активных диска, 0 резервных дисков и выбор /dev/sda2
и /dev/sdb2
устройства.Configure the Logical Volume Manager
.vg
на /dev/md0
устройство.swap
в 16Groot
в 35Gtmp
в 10Gvar
в 5Ghome
в 200Gswap
раздел, выбрать Use as: swap
.Use as: ext4
с надлежащими точками монтирования (/
, /tmp
, /var
, /home
, соответственно).Finish partitioning and write changes to disk
.Проверьте, какой раздел EFI был смонтирован. Скорее всего, /dev/sda1
.
смонтируйтесь | grep начальная загрузка
Состояние Check RAID. Скорее всего, это синхронизируется.
кошка/proc/mdstat
EFI bootloaded должен был быть установлен на /dev/sda1
. Поскольку тот раздел не зеркально отражается через систему RAID, мы должны клонировать его.
sudo dd if=/dev/sda1 of=/dev/sdb1
Этот шаг не может быть необходимым, с тех пор, если любой диск перестает работать, система должна загрузиться от (идентичных) разделов EFI. Однако кажется благоразумным гарантировать, что мы можем загрузиться от любого диска.
efibootmgr -v
и заметьте имя файла для ubuntu
запись загрузки. На моей установке это было \EFI\ubuntu\shimx64.efi
.sudo efibootmgr -c -d /dev/sdb -p 1 -L "ubuntu2" -l \EFI\ubuntu\shimx64.efi
.Если Вы хотите попытаться удалить/запретить какой-либо диск, необходимо сначала ожидать, пока синхронизация RAID не закончилась! Контролируйте прогресс с cat /proc/mdstat
Однако можно выполнить шаг 8 ниже при ожидании.
Если один диск перестанет работать (после того, как синхронизация будет завершена), система все еще загрузится. Однако последовательность начальной загрузки проведет много времени, ища btrfs файловые системы. Для удаления этого ненужное ожидание работать
sudo apt-get purge btrfs-progs
Это должно удалить btrfs-progs
, btrfs-tools
и ubuntu-server
. Последний пакет является просто meta пакетом, поэтому если больше пакетов не перечислено для удаления, необходимо быть в порядке.
Выполненный sudo apt install ubuntu-desktop
устанавливать настольную версию. После этого синхронизация, вероятно, сделана, и Ваша система настроена и должна пережить отказ диска!
Когда пакет grub-efi-amd64
обновляется, файлы на разделе EFI (смонтированный в /boot/efi
) может измениться. В этом случае обновление должно быть клонировано вручную к зеркальному разделу. К счастью необходимо получить предупреждение от менеджера по обновлению это grub-efi-amd64
собирается быть обновленным, таким образом, Вы не должны проверять после каждого обновления.
Если Вы не перезагрузили после обновления, использовать
mount | grep boot
узнать, какой раздел EFI смонтирован. Тот раздел, обычно /dev/sdb1
, должен использоваться в качестве источника клонирования.
Создайте точки монтирования и смонтируйте оба раздела:
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
Если /dev/sdb1
был источник клонирования:
sudo dd if=/dev/sdb1 of=/dev/sda1
Если /dev/sda1
был источник клонирования:
sudo dd if=/dev/sda1 of=/dev/sdb1
Готово!
Если Вы хотите испытать это в виртуальной машине сначала, существуют некоторые протесты: По-видимому, NVRAM, который содержит информацию UEFI, помнят между перезагрузками, но не между циклами перезапуска завершения работы. В этом случае можно закончить в консоли UEFI Shell. Следующие команды должны загрузить Вас в Вашу машину от /dev/sda1
(используйте FS1:
для /dev/sdb1
):
FS0:
\EFI\ubuntu\grubx64.efi
Первое решение в главном ответе начальной загрузки UEFI в virtualbox - Ubuntu 12.04 могло бы также быть полезным.
Мне удалось пройти около 99% пути благодаря ответу @Niclas Börlin, спасибо!
Я также обратился за помощью к следующему ответы:
/boot
в XFS. Grub2, который поставляется с Ubuntu 18.04LTS, очевидно, не справляется с этим. Хотя это нигде не задокументировано. Я создал отдельный раздел EXT-4 /boot
. Обратите внимание, что это по-прежнему на томе RAID-1 LVM, а не на отдельных разделах, таких как EFI! Многие старые ответы говорят, что это невозможно, но, похоже, сейчас. Я закончил тем, что получил grub, но получил неизвестные ошибки файловой системы (например, Как исправить & quot; ошибку: неизвестная файловая система. Grub rescue > ), которая дала мне подсказку XFS на /boot
в качестве запрета. /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
как подробно.