Продолжаем сериал с установкой ОС на программное зеркало. Установка и настройка Linux будет приведена на примере Ubuntu 20.04 с GRUB в качестве загрузчика Для подавляющего большинства других актуальных дистрибутивов схема остаётся аналогичной.
Концепция та же, что и для Windows: отдельные разделы ESP, зеркалируются разделы под систему. Но обслуживать систему гораздо проще. Нет двух загрузочных пунктов, конфигурации GRUB и в /etc/fstab используются UUID — ошибиться сложно.
- Установщик Ubuntu позволяет сразу создать зеркало и второй ESP.
- Выбираем Custom storage layout.
- Если диски не пусты, то удаляем все разделы (reformat в контекстном меню).
- Назначаем первый диск в качестве загрузочного (use as boot device), затем второй (set as another boot device). Это приведет к созданию двух разделов ESP. Первый будет монтироваться в /boot/efi
- Создаём на первом и втором диске разделы одинакового размера без файловой системы, выбираем Create software RAID (md).
- Затем поверх массива можно создавать обычные разделы или LVM.
После загрузки смотрим, что получилось:
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 55.4M 1 loop /snap/core18/2128 loop1 7:1 0 70.3M 1 loop /snap/lxd/21029 loop2 7:2 0 32.3M 1 loop /snap/snapd/12704 sda 8:0 0 447.1G 0 disk ├─sda1 8:1 0 1.1G 0 part └─sda2 8:2 0 100G 0 part └─md0 9:0 0 100G 0 raid1 ├─vg0-lv--0 253:0 0 80G 0 lvm / └─vg0-lv--1 253:1 0 20G 0 lvm [SWAP] sdb 8:16 0 447.1G 0 disk ├─sdb1 8:17 0 1.1G 0 part /boot/efi └─sdb2 8:18 0 100G 0 part └─md0 9:0 0 100G 0 raid1 ├─vg0-lv--0 253:0 0 80G 0 lvm / └─vg0-lv--1 253:1 0 20G 0 lvm [SWAP]
Дождемся окончания синхронизации зеркала:
cat /proc/mdstat [sudo] password for nosachev: Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sda2[1] sdb2[0] 104791040 blocks super 1.2 [2/2] [UU]
Теперь нужно смонтировать второй ESP (в данном случае /dev/sda1). Монтировать его, конечно, надо по UUID, который надо найти:
sudo blkid /dev/sdb1: UUID="6153-EE45" TYPE="vfat" PARTUUID="74b52d60-f93f-4d71-be26-08d8051e20a7" /dev/sdb2: UUID="7db4352a-9fe0-f97e-ec52-4054b3f6d0e0" UUID_SUB="d973967c-e57b-be62-22e8-5c42cc1d7690" LABEL="ubuntu-server:0" TYPE="linux_raid_member" PARTUUID="a9266435-ff30-42ff-aa22-0fd7e42f8b9d" /dev/sda1: UUID="6171-3842" TYPE="vfat" PARTUUID="49abd183-99e4-4385-8c5a-f913f49e9d1a" /dev/sda2: UUID="7db4352a-9fe0-f97e-ec52-4054b3f6d0e0" UUID_SUB="41a354a8-01a9-dc8f-e22b-b7c07c737811" LABEL="ubuntu-server:0" TYPE="linux_raid_member" PARTUUID="d43bf558-fb0d-4210-8e9f-ac28cc2e5adc" /dev/md0: UUID="lL90UC-Xxnl-I0MJ-Al0f-1hA1-tfjb-M0vHD0" TYPE="LVM2_member" /dev/mapper/vg0-lv--0: UUID="17f2a56f-6012-42d9-97eb-65384e2455d5" TYPE="ext4" /dev/mapper/vg0-lv--1: UUID="d14c3ff7-b4ae-4a34-aaf1-4adc7e24aa5b" TYPE="swap" /dev/loop0: TYPE="squashfs" /dev/loop1: TYPE="squashfs" /dev/loop2: TYPE="squashfs"
Создаем точку монтирования
sudo mkdir /boot/eficopyПравим /etc/fstab, добавляем строчку:
/dev/disk/by-uuid/6171-3842 /boot/eficopy vfat defaults 0 1Монтируем:
sudo mount /boot/eficopy
В Ubuntu можно воспользоваться
dpkg-reconfigure grub-efi-amd64Получим на всех доступных ESP-разделах GRUB с правильной конфигурацией.
Восстановление. Вытаскиваем диск sdb, меняем на другой. Нужно создать аналогичные разделы на новом диске. Пример для gparted:
unit MiB mklabel gpt mkpart "EFI system partition" fat32 1MiB 1076MiB set 1 esp on mkpart "" 1076MiB 103476MiB
Добавляем новый раздел в массив, начнётся синхронизация:
nosachev@r1test:~$ sudo mdadm --add /dev/md0 /dev/sdb2 mdadm: added /dev/sdb2 nosachev@r1test:~$ sudo cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb2[2] sda2[1] 104791040 blocks super 1.2 [2/1] [_U] [>....................] recovery = 0.1% (166784/104791040) finish=20.9min speed=83392K/sec unused devices:
Меняем в /etc/fstab UUID соотвествующего ESP-раздела, монтируем, запускаем конфигурирование GRUB.
При помощи efibootmgr можно посмотреть, какие пункты загрузки присутствуют в NVRAM и удалить ненужные:
nosachev@r1test:/boot/eficopy/EFI/ubuntu$ sudo efibootmgr -v [sudo] password for nosachev: BootCurrent: 0001 Timeout: 2 seconds BootOrder: 0001,000D,000B,000C,000E,0002,0009 Boot0001* ubuntu HD(1,GPT, 49abd183-99e4-4385-8c5a-f913f49e9d1a,0x800,0x219800)/ File(\EFI\ubuntu\grubx64.efi) Boot0002* UEFI: Built-in EFI Shell VenMedia(5023b95c-db26-429b-a648-bd47664c8012)..BO Boot000B* UEFI OS HD(1,GPT, 49abd183-99e4-4385-8c5a-f913f49e9d1a,0x800,0x219800)/ File(\EFI\BOOT\BOOTX64.EFI)..BO Boot000C* Windows Boot Manager HD(1,GPT, bee52ecc-06c1-4da9-853f-d83d6f47ed95,0x800,0x219800)/ File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)..BO Boot000D* ubuntu HD(1,GPT, bee52ecc-06c1-4da9-853f-d83d6f47ed95,0x800,0x219800)/ File(\EFI\ubuntu\grubx64.efi) Boot000E* UEFI OS HD(1,GPT, bee52ecc-06c1-4da9-853f-d83d6f47ed95,0x800,0x219800)/ File(\EFI\BOOT\BOOTX64.EFI)..BOПроверить очень просто — UUID здесь соотвествуют UUID'ам разделов ESP.
Комментариев нет:
Отправить комментарий