Поймал очень интересный и опасный баг. Если у вас имеется операционная система 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
Перезагружаемся, и...
Система не грузится, диск не найден. Попадаем в initramfs. Это означает, что ядро не может загрузить корневой раздел. Загруженная в этом режиме файловая система не имеет ничего общего с обычной операционной системой, это содержимое образа initramfs, которое содержит только самые необходимые компоненты, используемые ядром для загрузки.
cat /proc/mdstat
mdadm --detail /dev/md126
Получается, mdadm перехватил работу с массивами, создал их, но как-то криво. Почему-то не цепляются разделы массива при загрузке.
cd /dev
ls
Диск есть, а разделов нет. Давайте смонтируем 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
Монтируем массивы через dmraid:
dmraid -ay -f isw
Проверяем.
cd /dev
ls
Ага, у нас появились разделы dm-1 и md-2.
cd /dev/mapper
ls
И в mapper тоже разделы видны. Пробуем продолжить загрузку: Ctrl + d.
Великолепно. Система загрузилась. Скорее сносим mdadm.
apt remove mdadm
apt purge mdadm
Ubuntu 20 полечили. Есть, наверное, и другие способы восстановления загрузки, к примеру, с помощью kpartx, но я не проверял.