1.9.3 Проблемы загрузки ОС
Проблемы с монтированием домашнего каталога /home
Пользователь забыл свой пароль и пароль root
Система не монтирует корневой раздел
1. Загрузка из более старого ядра
2. Неверное имя корневого раздела GRUB
ОС запускается, но зависает на экране загрузки
Проблемы с монтированием домашнего каталога /home
Суть данной проблемы заключается в том, что система вместо получения авторизации переходит в emergency mode, графический менеджер GDM не запускается.
Warning: dev/mapper/ro-root does not exist Warning: dev/ro/root does not exist Warning: dev/ro/swap does not exist Generating “/run/initramfs/rdsosreport.txt“ Entering emergency mode. Exit the shell to continue. Type “journalctl“ to view system logs. You might want to save “/run/initramfs/rdsosreport.txt“ to a USB stick or /boot after mounting then and attach it to a bug report.
Проверим вывод команды dmesg
. В выводе должны присутствовать ошибки вида «/dev/sda3, run e2fsck manually
», где /dev/sda3 - home-раздел. Для того чтобы узнать, за каким разделом закреплен home, необходимо проверить файл /etc/fstab. Проверка файловой системы осуществляется через утилиту fsck.
Запуск автоматической проверки fsck -a /dev/sda3
, где ключ -a отвечает за автоматическую коррекцию ошибок файловой системы.
После успешной проверки необходимо перезагрузить компьютер. После этого графический менеджер GDM должен запуститься, и пользователь должен увидеть окно авторизации.
Пользователь забыл свой пароль и пароль root
Решением данной проблемы является сброс пароля root, согласно инструкции. Инструкцию предоставляет техническая поддержка, обратиться за инструкцией вы можете по ссылке.
Система не монтирует корневой раздел
[ 1.719701] Hardware name: ECS IC780M-A2/IC780M-A2, BIOS 080015 11/03/2010 [ 1.719749] 0000000000000000 ffff88022c0b7df0 ffffffff8176cf38 ffffffff81a65048 [ 1.719951 0000000000008001 ffff88022c0b7e68 ffffffff81765306 ffffffff00000010 [ 1.720152] ffff88022c0b7e78 ffff88022c0b7e18 ffffffff81765e74 ffff88022c0b7e88 [ 1.720353] Call Trace: [ 1.720402] [] dump_stack+0x64/0x82 [ 1.720449] [] panic+0xc8/0x206 [ 1.720494] [] ? printk+0x67/0x69 [ 1.720541] [] mount_block_root+0x225/0x2b0 [ 1.720587] [] mount_root+0x53/0x56 [ 1.720633] [] prepare_namespace+0x16c/0x1a4 [ 1.720679] [] kernel_init_freeable+0x1e1/0x1ee [ 1.720725] [] ? initcall_blacklist+0xba/0xba [ 1.720771] [] ? rest_init+0x80/0x80 [ 1.720817] [] kernel_init+0xe/0xf0 [ 1.720862] [] rest_from_fork+058/0x90 [ 1.720908] [] ? rest_init+0x80/0x80 [ 1.720974] Kernel Offset: 0x0 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff) [ 1.721043] ---[ end Kernel panic — not syncing: VFS: Unable to mount root fs on unknown-block (0,0) _
Сообщение об ошибке «vfs unable to mount root fs on unknown block
» может встречается во время загрузки Linux. Оно означает, что ядро не может примонтировать корневую файловую систему, и, следовательно, дальнейшая загрузка невозможна. Ошибка довольно серьёзная и, не исправив её, вы не сможете полноценно работать в своей операционной системе.
Все ситуации, в которых может появиться сообщение «error: vfs unable to mount root fs
» можно разделить на два вида:
Загрузка с жёсткого диска - вы загружаете свою основную операционную систему после внесения изменений в таблицу разделов, обновления или других действий, которые могли задеть диски;
Вы загружаете LiveCD-систему с оптического диска или флешки.
Второй вариант сразу же отбросим. Здесь исправлять нечего. Ошибка означает, что либо образ был битый, либо он был неверно записан на диск. А вот первый случай интереснее, рассмотрим основные причины, которые могут его вызывать:
Корневой раздел был переименован и теперь называется по-другому;
Повреждена initramfs;
Ядро не поддерживает файловую систему корневого раздела;
Ошибка в конфигурации загрузчика, например, из-за недостаточного количества свободного места в папке /boot;
Файловая система корневого раздела повреждена.
Рассмотрим возможные пути решения проблемы.
1. Загрузка из более старого ядра
После того, как система выдаст эту ошибку, случится Kernel Panic и компьютер перезагрузится. Вы снова окажетесь в меню загрузчика GRUB. Сначала следует попытаться загрузиться с помощью более старого ядра. Для этого выберите пункт «Дополнительные параметры» и выберите одно из более старых ядер.
Если система в этом случае загрузится, то можно сделать вывод, что не работает только новое ядро. Если вы собирали его сами, то, возможно, вы не включили в него все необходимые для работы файловые системы. Если это ядро из репозиториев, и система загрузилась с более старым ядром, то можно предположить, что у вас повреждена initramfs для нового ядра. Это тоже могло произойти из-за недостатка памяти при обновлении системы. Чтобы всё исправить, вам достаточно освободить место в каталоге /boot/ и создать новую initramfs. Проверьте и освободите место в папке /boot, если его там мало:
df -h | grep boot
На данном скриншоте занято только 7%, если будет 100% - надо освобождать. Для создания initramfs необходимо выполнить следующие действия:
cp -p /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak dracut -f -v --regenerate-all ls /boot
Обновите конфигурацию загрузчика grub:
- если используется BIOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
- если используется UEFI:
grub2-mkconfig -o /boot/efi/EFI/redos/grub.cfg
Если вы думаете, что проблема именно в свободном пространстве и initramfs, но загрузиться с помощью более старого ядра не можете, то попробуйте другой LiveCD-дистрибутив и попытайтесь всё исправить в chroot-окружении.
2. Неверное имя корневого раздела GRUB
Сейчас, в большинстве дистрибутивов, в конфигурационном файле GRUB имя корневого раздела передается ядру в формате UUID. И с этим обстоятельством есть одна проблема. Если вы каким-либо образом измените корневой раздел, например, измените его размер, то UUID изменится. И если вы выполните перезагрузку, не обновив конфигурацию GRUB, то система больше не загрузится, потому что ядро попросту не сможет найти нужного раздела.
Но попытаться решить проблему можно. Если вы точно знаете, на каком разделе у вас находится корень, то можно непосредственно в меню GRUB исправить конфигурацию. Для этого в меню выберете стрелками вверх и вниз нужный пункт, а затем нажмите кнопку E. Откроется редактор конфигурации. Вам нужно найти строчку, похожую на следующую:
linux /boot/vmlinuz-5.15.72-1.el7.3.x86_64 root=/dev/mapper/ro_redos-root ro quiet splash
В ней надо заменить UUID=9d8d92de-74a6-4e64-8281-b8548c690e0c
на обычное имя вашего корневого раздела, например, /dev/sda2. Для начала загрузки нажмите F10. Если система загрузится, значит проблема была именно в этом. В дальнейшем, можно просто обновить конфигурацию GRUB:
grub2-mkconfig
Или даже попросить GRUB больше не использовать UUID для обозначения корневого раздела:
nano /etc/default/grub
GRUB_DISABLE_LINUX_UUID=true
Далее необходимо снова обновить конфигурацию GRUB, используя команду grub2-mkconfig.
Если ошибка исчезла, но система всё ещё не загружается, обратите внимание, что systemd всё ещё использует файл /etc/fstab для монтирования файловых систем. И если корневая файловая система (и не корневая тоже) там указана неверно, система не загрузится. Для исправления этой проблемы можно использовать режим восстановления. Здесь тоже надо заменить UUID на обычную запись или же на правильный UUID. Такая проблема очень часто становится причиной медленной загрузки Linux.
В этом же режиме можно проверить корневой раздел на ошибки, но для проверки диска лучше использовать LiveCD.
Если файловая система корневого раздела повреждена, её необходимо проверить, исправить согласно инструкции «Проверка файловой системы на наличие ошибок».
ОС запускается, но зависает на экране загрузки
Скорее всего данное поведение может быть связано с некорректным поведением X-сервера и графических драйверов. Для диагностики ситуации и сбора информации с ПК вы можете запустить ПК в консольном режиме. Для этого вам потребуется перезагрузить ПК и на этапе выбора ядра для загрузки нажать «e».
Далее найти примерно такую строку в добавить в конец «3».
После этого для продолжения загрузки необходимо нажать сочетание клавиш «Ctrl+X», ОС будет запущена в текстовом режиме.
Следующим этапом потребуется собрать отладочную информацию через утилиту loginfo для дальнейшего изучения проблемы.
Дата последнего изменения: 18.01.2023
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.