LINUX.ORG.RU

Перенос машины с Mint 20 на mdraid 1 c UEFI

 , ,


0

1

Всем доброго дня! Сломал весь мозг, задача стоит следующая:

  1. Есть машина, на ней Linux Mint 20 Mate с загрузкой через EUFI и swap в файле. На диске должно быть 2 раздела /boot/uefi и корень
  2. Есть 2 диск такого же размера, на нем создаём degraded mdraid 1
  3. Грузимся с любого DVD, копируем наш sda2 (на котором корень Минта) на рейд md0, проверяем, что система грузится из рейда
  4. sda диск добавляем в RAID вместо missing
  5. смотрим, что ось грузится с обоих дисков, если их выдернуть из машины.

Пробовал делать так (с вариациями)

boot from DVD
apt install mdadm
mdadm -C /dev/md0 --metadata=1.0 -l 1 -n 2 missing /dev/sdb2
mkfs.ext4 /dev/md0
mkdir /mnt/md0
mkdir /mnt/sda2
mount /dev/md0 /mnt/md0
mount /dev/sda2 /mnt/sda2
cp -r /mnt/sda2/* /mnt/md0/

reboot
sudo su -
apt install mdadm
mdadm --create /dev/md0 --metadata=1.0 --name=0 -l 1 -n 2 missing /dev/sdb2
update-initramfs -u

если после перезагрузки рейд улетел в md127
nano /etc/mdadm/mdadm.conf - комментируем строчку со старым рейдом
mdadm -S /dev/md127
mdadm --assemble --update=name --metadata=1.0 --name=0 /dev/md0 missing /dev/sdb2
update-initramfs -u

меняем в /etc/fstab UUID на ID рейда на обоих дисках (!)
mount /dev/md0 /mnt/
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /var /mnt/var
mount --bind /run /mnt/run
mount --bind /sys /mnt/sys
chroot /mnt
mount /dev/sda1 /boot/efi/

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

grub-install --recheck /dev/sda
grub-install --recheck /dev/sdb
update-grub

efibootmgr --create -d /dev/sdb -p 1 -L "2 disk" -l "\EFI\ubuntu\shimx64.efi"
efibootmgr --create -d /dev/sda -p 1 -L "1 disk" -l "\EFI\ubuntu\shimx64.efi"

Завис на пункте 3, система упорно грузится с sda2 с любого из дисков, какой бы я ни выбирал в UEFI

Ткните носом, пожалуйста, где я какое плохое зло сделал?

У вас initrd как корень монтирует? Через uuid, переданный в командной строке ядра, или он в неё вшит на момент создания update-initramfs. То есть нужно или прописать uuid в конфиг груба или делать update-initramfs из chroot'а с активным raid...

mky ★★★★★ ()

Насколько я понимаю - предыдущий товарищ имел в виду UUID корневого раздела, который передаётся ядру в параметре root.

То, что вы редактируете fstab - это дело десятое.

То, что

система упорно грузится с sda2 с любого из дисков, какой бы я ни выбирал в UEFI

она так и должна себя вести. Какую из записей в EFI вы выбираете - совершенно никакой роли не играет, если обе они передают один и тот же root.

Toxo2 ()

На всякий случай, если кто наткнётся на эту тему в интернетах.

Потренировался - вполне работает вся схема, если вручную на загрузке grub указать root=/dev/md0, потом добавить sda2 в зеркало, потом обновить update-grub.

Важно: не надо cp -r. Надо любой другой способ с сохранением прав доступа. Хоть cp -a.

Toxo2 ()