Перейти к основному содержанию

Ubuntu 20 на Intel RST не грузится после установки mdadm

Ubuntu

Поймал очень интересный и опасный баг. Если у вас имеется операционная система Ubuntu Desktop 20.04.6, которая установлена на программный массив Intel RST, и вы установили утилиту mdadm, то ОС после перезагрузки не может распознать системный диск.

Программные массивы Intel RST сейчас доступны на многих материнских платах. Другие названия:

  • Intel RST (Intel Rapid Storage Technology)
  • Intel RSTe (Intel Rapid Enterprise)
  • Intel VROC (Virtual RAID on CPU)
  • FakeRAID
  • Программный массив

Система работает, грузится. Ставим mdadm.

apt install mdadm

mdadm

Перезагружаемся, и...

mdadm

Система не грузится, диск не найден. Попадаем в initramfs. Это означает, что ядро не может загрузить корневой раздел. Загруженная в этом режиме файловая система не имеет ничего общего с обычной операционной системой, это содержимое образа initramfs, которое содержит только самые необходимые компоненты, используемые ядром для загрузки.

cat /proc/mdstat
mdadm --detail /dev/md126

mdadm

Получается, mdadm перехватил работу с массивами, создал их, но как-то криво. Почему-то не цепляются разделы массива при загрузке.

cd /dev
ls

raid

Диск есть, а разделов нет. Давайте смонтируем RAID массив не через mdadm, а через dmraid (Device-Mapper Software RAID support tool).

dmraid обнаруживает, активирует, деактивирует и показывает свойства программных RAID массивов. Поддерживаются массивы:

dmraid -l
asr     : Adaptec HostRAID ASR (0,1,10)
ddf1    : SNIA DDF1 (0,1,4,5,linear)
hpt37x  : Highpoint HPT37X (S,0,1,10,01)
hpt45x  : Highpoint HPT45X (S,0,1,10)
isw     : Intel Software RAID (0,1,5,01)
jmicron : JMicron ATARAID (S,0,1)
lsi     : LSI Logic MegaRAID (0,1,10)
nvidia  : NVidia RAID (S,0,1,10,5)
pdc     : Promise FastTrack (S,0,1,10)
sil     : Silicon Image(tm) Medley(tm) (0,1,10)
via     : VIA Software RAID (S,0,1,10)
dos     : DOS partitions on SW RAIDs

В нашем случае подходит isw: Intel Software RAID (0,1,5,01).

Останавливаем массивы mdadm.

mdadm --stop /dev/md126
mdadm --stop /dev/md127
cat /proc/mdstat

raid

Монтируем массивы через dmraid:

dmraid -ay -f isw

raid

Проверяем.

cd /dev
ls

raid

Ага, у нас появились разделы dm-1 и md-2.

cd /dev/mapper
ls

raid

И в mapper тоже разделы видны. Пробуем продолжить загрузку: Ctrl + d.

raid

Великолепно. Система загрузилась. Скорее сносим mdadm.

apt remove mdadm
apt purge mdadm

Ubuntu 20 полечили. Есть, наверное, и другие способы восстановления загрузки, к примеру, с помощью kpartx, но я не проверял.

Теги

 

Похожие материалы