RAID 1 раздела /boot/efi в Debian

Чтобы сопоставить любую не -пустую строку символов, не содержащую ], используйте [^]]+.

Использование [^\]]*будет соответствовать не -\, за которым следует ноль или более ]. Вот почему вам удалось разобрать 1и 2, но не другие строки.

Переменная IFSне используется в вашем первом фрагменте кода. Переменные внутри [[... ]]не нуждаются в двойных кавычках.

Чтобы напечатать отдельные элементы массива, используйте

printf '%s\n' "${MATCHES[@]}"

или

for elem in "${MATCHES[@]}"; do
    printf '%s\n' "$elem"
done

Просто $MATCHESрасширится только до первого элемента массива (и применит разбиение на слова и подстановку имени файла к значению ).

2
08.04.2021, 14:46
1 ответ

Благодаря комментариям @cas у меня все получилось.

Этапы в основном:

  1. Я установил Debian без настройки RAID для раздела ESP. Во время разбиения я уже создал два одинаковых раздела, помеченных как разделы ESP. Они были на /dev/sda1и/dev/sdb1
  2. Я скопировал содержимое /boot/efiкуда-то еще(/boot/eficopy).
  3. umount /boot/efi
  4. mdadm --create --verbose /dev/md3 --level=1 --raid-devices=2 --metadata=0.90 /dev/sda1 /dev/sdb1. Конечно, измените /dev/md3на что-то другое, если /dev/md3уже является активным устройством MD
  5. .
  6. mkfs.vfat /dev/md3
  7. нашел UUID раздела в/dev/disk/by-uuid
  8. изменил запись /boot/efiв /etc/fstabна новый UUID
  9. mount /boot/efi
  10. снова скопировал данные из резервной копии в /boot/efi

Перезагрузка сработала.

РЕДАКТИРОВАТЬ:Вместо резервного копирования раздела /boot/efiкажется, что

grub-install --efi-directory=/boot/efi

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

3
28.04.2021, 22:53

Теги

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