Способы оплаты Abuse

Устранение ошибки vfs unable to mount root fs on unknown block

10.10.2023, 23:34

Ошибка vfs unable to mount root fs on unknown block возникает, когда ядро Linux не может найти корневую файловую систему для монтирования при загрузке системы. 

Причины появления ошибки

Ошибка может возникнуть по нескольким причинам:

  1. Отсутствие драйвера файловой системы: если файловая система, указанная в параметрах загрузки ядра, не поддерживается или отсутствует соответствующий драйвер, то ядро не сможет монтировать корневую файловую систему.
  2. Неправильно указаны параметры загрузки ядра: если параметры загрузки ядра неправильно указаны или отсутствуют, то ядро не сможет найти корневую файловую систему.
  3. Проблемы с блочным устройством: если блочное устройство, содержащее корневую файловую систему, недоступно или повреждено, то ядро не сможет его монтировать.
  4. Проблемы с загрузчиком: когда загрузчик (например, GRUB) неправильно настроен или установлен, то ядро может не получить доступ к корневой файловой системе.

Решение проблемы за счет загрузки из старого ядра

Если вы столкнулись с ошибкой, первое, что следует сделать, это попытаться загрузиться с помощью более старого ядра. Выберите пункт Дополнительные параметры, дальше укажите на одно из более старых ядер. Если система в этом случае загрузится, значит, не работает только новое ядро. Если вы собирали его сами, то, возможно, вы не включили в него все необходимые для работы файловые системы.

Если это ядро из репозиториев, и система загрузилась с более старым ядром, есть вероятность, что у вас повреждена initramfs для нового ядра. Это тоже могло произойти из-за недостатка памяти при обновлении системы. Чтобы всё исправить, вам достаточно освободить место в каталоге /boot/ и создать новую initramfs. Проверьте и освободите место в папке /boot, если его там мало:

$ df -h | grep boot

Для создания initramfs сначала узнаем текущую версию ядра:

$ uname -r

Вставляем полученную версию в такую команду:

$ sudo update-initramfs -u -k версия

Получим

$ sudo update-initramfs -u -k 4.15.0-36-generic

В окончании операции обновим конфигурацию Grub:

$ sudo update-grub

Если проблема именно в свободном пространстве и initramfs, но загрузится с помощью более старого ядра не можете, то попробуйте другой LiveCD-дистрибутив и попытайтесь всё исправить в chroot-окружении.