- Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Re: Kernel panic: VFS: Unable to mount root
- Kernel panic not syncing: VFS: Unable to mount root fs
- Kernel panic not syncing: VFS: Unable to mount root fs
- Knowledge Base:Unable to mount root fs
- Contents
- Synopsis
- Environment
- Analysis
- Resolution
- Arch Linux
- #1 2018-03-01 03:55:11
- [SOLVED] Kernel panic. Unable to mount root fs on unknown-block
- Ошибка vfs unable to mount root fs on unknown block
- Почему возникает ошибка «vfs unable to mount root fs»
- Что делать с «vfs unable to mount root fs»
- 1. Загрузка из более старого ядра
- 2. Неверное имя корневого раздела Grub
- Выводы
Kernel panic: VFS: Unable to mount root
Здравствуйте, Это мой первый опыт с Linux. И сразу поставлена задача. Стоит Linux RedHat 9. Требуется сменить ядро 2.4.20-8 родное для RH9 на ядро 2.4.31 скачанное с kernel.org. Пробную попытку делаю на виртуальной машине (VMW). Все по руководствам, что нашел в инете. Установку ядра делаю по такому порядку: Кладу исходники в usr/src/linux. Ничего не конфигурирую через make memuconfig. make dep make clean make install make modules make modules_install. Начинаю править lilo.conf: Добавляю секцию image=»/boot/vmlinuz-2.4.31″ label=»2.4.31″ root=»/dev/sda1″ read-only
В другой секции с vmlinuz-2.4.20-8 нет root= но есть initrd=vmlinuz-2.4.20-8.img.
Перезагружаюсь и при загрузке нового ядра выдается чтото типа этого: . Cannot open root device. Kernel panic: VFS: Unable to mount root fs on 80:01. В чем проблемма.
Re: Kernel panic: VFS: Unable to mount root
не делал make menuconfig . и откуда тогда уверенность,что в ядре есть поддержка твоей root fs ?
Re: Kernel panic: VFS: Unable to mount root
make menuconfig — просто необходимая вещь. без нее ничего не получится. если уж качаешь ядро в исходниках, то без этого ну никак нельзя. Если уж сложно его правильно сконфигурировать, можешь поискать готовый пакет с уже собранным ядром и модулями для твоего дистрибутива и твоего процессора.
Re: Kernel panic: VFS: Unable to mount root
Re: Kernel panic: VFS: Unable to mount root
Посмотрел поподробней конфигуратор menuconfig. На мой взгляд там все настроено на среднего пользователя. Рука не поднимается где-то поставить галочку, все вроде ненужное. А где выставляется поддержка root fs в menuconfig ?
Re: Kernel panic: VFS: Unable to mount root
там же, где подержка всех fs 😉
PS: стартуйте с готового рабочего конфига (у Вас же ядро от RH уже работает, верно), положите его в директорию с исходниками и обзовите config.
Затем уже make menuconfig && etc Вам в помощь.
Re: Kernel panic: VFS: Unable to mount root
Для того, чтобы в ядре подцепить конфиг от ДРУГОГО ядра, надо использовать make oldconfig, иначе конфигурация ядра может «потечь».
Читайте доки к ядру.
P.S. конфиг от 2.4 крайне не рекомендуется класть 2.6
Re: Kernel panic: VFS: Unable to mount root
Как должен называться пункт меню указывающий на root fs. Я ищу в File system, но там ничего подобного нет. И где лежит конфиг рабочего ядра RH.
Затем как я понял надо скопировать и переименовать этот конфиг в src/linux, потом команда make oldconfig, а потом make menuconfig если надо чтото подправить.
Извините за тупые вопросы, но я только учусь.
Re: Kernel panic: VFS: Unable to mount root
Для RedHat’ов акиомой является следующая команда:
cd /usr/src/linux ; cp /boot/config-`uname -r` /usr/src/linux ; make oldconfig
Кто не сделал — не говорите, что вас не предупреждали.
Re: Kernel panic: VFS: Unable to mount root
Re: Kernel panic: VFS: Unable to mount root
cd /usr/src/linux ; cp /boot/config-`uname -r` /usr/src/linux/.config ; make oldconfig
Re: Kernel panic: VFS: Unable to mount root
Сказал же — в FAQ.
Re: Kernel panic: VFS: Unable to mount root
Скопировал конфигурацию с рабочего ядра. Загрузил ее не по make oldconfig, т.к. выдавалась ошибка (непомю какая), а через меню menuconfig командой «Load an Alternate configuration file». Потом откомпилировал. Этот процес затянулся надолго, особено при сборке модулей. Видимо была включена поддержка большого количества железа, я сам просто не заглядывал, ведь проблема была в другом. Затем отредактировал lilo.conf — добавил загрузку с новым ядром со строкой root=/dev/sda1 и перезагрузился, но опять таже ошибка. Начал дальше. Прочитал FAQ и решил проблемму. Просто раньше читал другой FAQ — kernel-HOWTO. В моем случае файловая система была собрана модулем и необходимо было создать initrd, и прописать в lilo.conf вместо «root=» «initrd = /boot/initrd-2.4.31.img » созданный командой mkinitrd. Прочитал и понял, что использование initrd не желательно, поэтому вопрос: как в конфигураторе ядра отказаться от его использования. Там по видимому надо напротив своей ФС поставить не [M], а [x]. Где надо поставить галки если у меня fs EXT3 ?
Большое СПАСИБО всем за помощь!
Re: Kernel panic: VFS: Unable to mount root
в корне — File systems -> (*) Ext3 journalling file system support
но это кстати не все — тебе еще надо включить в ядро поддержку своего scsi-контролёра
использование initrd вовсе не нежелательно но требует немножко больших телодвижений
Re: Kernel panic: VFS: Unable to mount root
в факе не отработан один довольно тонкий момент. когда ставишь на fc2 со скайзи-контроллером новое ядро с кернел.орг там нужно сделать хитрый финт ушами — по умолчанию mkinitrd создает initrd размером 8 мег, а в ядре с кернел орг дефолтное значение в 4 мега
поэтому надо либо менять параметр в ядре либо давать в груб-лило параметр ramdisk_size=8192
по-моему редхатовцы так еще и не согласовали этот момент
Re: Kernel panic: VFS: Unable to mount root
А я не рекомендовал нигде ставить на редхатовские дистрибы ядро с кернел.орг. Очень много всего отваливаться и глючить начинает.
Re: Kernel panic: VFS: Unable to mount root
> конфиг от 2.4 крайне не рекомендуется класть 2.6
А я так на 2.6.7 переходил некогда -)
Re: Kernel panic: VFS: Unable to mount root
> чтобы в ядре подцепить конфиг от ДРУГОГО ядра, надо использовать make oldconfig, иначе конфигурация ядра может «потечь».
«потеч» — это Вы о чем? Примеры есть к-л, просто если взглянут на Makefile, то make menuconfig делает в том числе и те вещи, что make oldconfig
Re: Kernel panic: VFS: Unable to mount root
Вы не рекомендуете ставить ядро с kernel.org, а тогда откуда надо брать. Просто в документации к программе которую надо установить на Linux говориться, что для RH надо пересобрать ядро не из его исходников, а с kernel.org.
>в факе не отработан один довольно тонкий момент. когда ставишь на fc2 со скайзи-контроллером новое ядро с кернел.орг там нужно сделать хитрый финт ушами — по умолчанию mkinitrd создает initrd размером 8 мег, а в ядре с кернел орг дефолтное значение в 4 мега
что такое «fc2», и где в конфигураторе ставиться размер initrd?
Источник
Kernel panic not syncing: VFS: Unable to mount root fs
Словил сегодня неприятную ошибку на web сервере под CentOS 7. Уже начал потихоньку кирпичи откладывать, но в итоге отделался легким испугом. Поделюсь с вами решением этой неприятной ошибки, когда система просто не загружается.
Утро сисадмина не всегда начинается с кофе. Сегодня утром мне пишет один заказчик, а я как раз кофе наливал, что у него какие-то проблемы с web сервером — не загружаются картинки через админку. Захожу, проверяю, в самом деле. Движок пишет, что не может найти tmp папку. Ладно, думаю, ерунда какая-то, сейчас разберемся.
Захожу на сервер, смотрю логи сайта — ошибок нет. Смотрю системные логи за последнее время, тоже ничего особенного. Проверяю аптайм виртуалки — 370 дней. Думаю, пришло время для ребута. На виртуалке сайты не очень критичные, можно перезагрузить сервак. Думаю, что совмещу приятное с полезным — установлю последние обновления (ставятся регулярно, но без ребута) и перезагружусь.
Обновления не установились. Не запомнил, какая конкретно ошибка, но yum поругался на нехватку памяти. К слову, виртуалка была сильно зажата по памяти, потому что сайты там не сильно критичные жили, им приоритет низкий. Пошел на всякий случай на гипервизор и посмотрел консоль виртуальной машины. Там куча ошибок на нехватку памяти. Приходил OOM Killer и выключал Mysql. Удивился, что не было оповещений от мониторинга о нехватки памяти. Зашел в Zabbix, он показывает, что 200-300 мб памяти всегда были доступны. Надо будет отдельно разбираться, почему OOM Killer так рано прибивал Mysql сервер.
В общем, картинка вроде как в голове сложилась. Серверу не хватало памяти, он из-за этого начал глючить. Надо его перезагрузить и поднастроить, либо памяти добавить. Перезагружаю сервер. Жду. Не поднимается. Смотрю в консоль и начинаю немного мандражировать. Виртуалка не загружается, там ошибка:
Kernel panic not syncing: VFS: Unable to mount root fs
И много еще чего написано. Жаль, скрин сразу не сделал. Делаю ресет системе и снова вижу эту же ошибку. Тут запустилось производство кирпичей. В голове сразу же побежали мысли, что там с бэкапами. Делаться то они делаются, я даже уведомления в почте каждый день смотрю, что все в порядке. Но когда я последний раз вручную разворачивал эти бэкапы? Очень давно.
Еще один рестарт и та же ошибка. Немного запаниковал, встал, прошелся по комнате, подумал, что делать. Оценил обстановку. Больше всего испугался, что накрывается жесткий диск сервера, где куча всяких виртуалок и сайтов. Бэкапы вроде все есть, но все это настраивать, разворачивать, где-то сервак искать и т.д. В общем, думаю, примерно масштаб бедствия вы представляете.
Пошел на гипервизор, там вроде все в порядке, ошибок никаких нет. На других виртуалках тоже. С дисками, по идее, все нормально. А что же тогда тут случилось? В голову приходит мысль загрузиться на старом ядре. Выбираю старое ядро, загружаюсь — все в порядке. ОТЛЕГЛО.
Сразу стало понятно, в чем проблема. На серваке не хватало памяти. Я запустил обновление, оно отработало с ошибкой. Скорее всего не собрался initramfs для нового ядра. Загрузка старого ядра, в данном случае и было решением ошибки:
Добавил виртуальной машине памяти, обновил ее еще раз. Теперь все прошло нормально. Перезагружаться пока не пробовал, вечером сделаю. Думаю, все в порядке будет.
Источник
Knowledge Base:Unable to mount root fs
Contents
Synopsis
When booting a freshly configured kernel, the boot fails with the following message:
The numbers in the unknown-block section can be different.
Environment
Any Gentoo Linux system on which a new kernel is being booted (or an update was made on the bootloader configuration).
Analysis
The panic informs that the Linux kernel is unable to:
- Detect the controller for the hard disk (a likely candidate if the message says unknown-block(0,0) );
- Detect the partition because it does not have support for the partition type (less likely, but still possible);
- Mount the partition because it does not know how to access the file system (a likely candidate if the message gives a non-zero figure in the first number set, such as unknown-block(2,0) );
- Detect the partition because the wrong device was passed in the boot loader configuration.
Resolution
Boot with the old kernel (if available), or with a LiveCD, and open the kernel configuration:
- Ensure that the controller chipset has been configured in the Linux kernel (and in-kernel, not as a module);
- Ensure that the used file systems (such as ext2, ext3, ext4, ReiserFS, Btrfs, etc.) are configured in the Linux kernel (and built into the kernel, not as a module);
- When using root=UUID=. , an initramfs must be built when configuring the bootloader, see «Configuring the linux kernel» of the installation handbook
- If running Gentoo as a Qemu guest, ensure that the virtio block drivers and PCI driver for virtio devices are enabled in the kernel (that is, CONFIG_VIRTIO_BLK=y and CONFIG_VIRTIO_PCI=y in the kernel configuration file).
- When an initramfs is not used and the root filesystem specified on the kernel command line is on an MTD device (such as an NVME drive), it may be necessary to make the kernel wait for asynchronous initialization of the device by adding either rootdelay= (to timeout if the device is never detected) or rootwait (to wait without timeout).
Also verify that the boot loader configuration ( /boot/grub/grub.conf for GRUB legacy and /boot/grub/grub.cfg for GRUB2) refers to the correct partition:
When using an initramfs and upgrade to another kernel version, make sure the initramfs is recreated correctly in /boot for the new kernel version and that the boot loader configuration refers to the correct initramfs.
Источник
Arch Linux
You are not logged in.
#1 2018-03-01 03:55:11
[SOLVED] Kernel panic. Unable to mount root fs on unknown-block
Long time lurker here and I’ve come to a place where I’m stumped on a new build. After building with the latest media and following the install guide (USB install media), I’ve come to a Kernel panic. I’ve found a few similar recomendations searching the forums but wasn’t an exact fit for where I’m at. I can boot to the install media and arch-chroot in without any problems. I’ve installed bootctl (systemd-boot) but I can’t figure out the Kernel panic. This is probably my 8th time installing on various hardware, the first time I’ve run into a failure like this. While I’ve been an Arch user for a little while, I know I’m still learning. My background in Linux has been a dedicated since 2004.
ESP is mounted on /dev/sda1 at /boot and is of type EFI System with the boot and esp flags. I’ve added a single systemd hook as outlined here: https://wiki.archlinux.org/index.php/Sy … omatically
This was the Kernel panic at boot.
lsblck from install media
/etc/fstab from gen-fstab
This is $
This is $
dmesg when booting from the install media (USB, created using another Arch install by way of dd), not certain this is relavent or not but including it.
Just in case, here’s my /var/log/pacman.log
I’m officially stumped. Let me know if you need to see any other information about the system and I’ll grab that as well. Just wanting to make sure this information is thorough. I try not to ask for help when I know it’s something I should be able to fix on my own. So, making this my first post here.
Last edited by Kent Seaton (2018-03-02 03:45:01)
Источник
Ошибка vfs unable to mount root fs on unknown block
Сообщение об ошибке «vfs unable to mount root fs on unknown block» может встречается во время загрузки Linux. Оно означает, что ядро не может примонтировать корневую файловую систему, и, следовательно, дальнейшая загрузка невозможна. Ошибка довольно серьёзная и, не исправив её, вы не сможете полноценно работать в своей операционной системе.
В сегодняшней статье мы разберём причины, по которым может возникать данная ошибка, а также способы, с помощью которых вы сможете попытаться её исправить.
Почему возникает ошибка «vfs unable to mount root fs»
Все ситуации, в которых может появиться сообщение «error: vfs unable to mount root fs» можно разделить на два вида:
- Загрузка с жёсткого диска — вы загружаете свою основную операционную систему после внесения изменений в таблицу разделов, обновления или других действий, которые могли задеть диски;
- Вы загружаете LiveCD-систему с оптического диска или флешки.
Второй вариант сразу же отбросим. Здесь исправлять нечего. Ошибка означает, что либо образ был битый, либо он был неверно записан на диск. А вот первый случай интереснее, рассмотрим основные причины, которые могут его вызывать:
- Корневой раздел был переименован и теперь называется по другому;
- Повреждена initramfs;
- Ядро не поддерживает файловую систему корневого раздела;
- Ошибка в конфигурации загрузчика, например, из-за недостаточного количества свободного места в папке /boot;
- Файловая система корневого раздела повреждена.
Теперь давайте рассмотрим возможные пути решения проблемы.
Что делать с «vfs unable to mount root fs»
1. Загрузка из более старого ядра
После того, как система выдаст эту ошибку, случится Kernel Panic и компьютер перезагрузится. Вы снова окажетесь в меню загрузчика Grub. Здесь, первым делом, надо попытаться загрузиться с помощью более старого ядра. Для этого выберите пункт Дополнительные параметры и выберите одно из более старых ядер.
Если система в этом случае загрузится, то можно сделать вывод, что не работает только новое ядро. Если вы собирали его сами, то, возможно, вы не включили в него все необходимые для работы файловые системы. Если это ядро из репозиториев, и система загрузилась с более старым ядром, то можно предположить, что у вас повреждена initramfs для нового ядра. Это тоже могло произойти из-за недостатка памяти при обновлении системы. Чтобы всё исправить, вам достаточно освободить место в каталоге /boot/ и создать новую initramfs. Проверьте и освободите место в папке /boot, если его там мало:
df -h | grep boot
У меня занято только 30%, если будет 100% — надо освобождать. Для создания initramfs сначала узнаем текущую версию ядра:
Затем вставляем полученную версию в такую команду:
sudo update-initramfs -u -k версия
sudo update-initramfs -u -k 4.15.0-36-generic
После завершения этой операции надо обновить конфигурацию Grub:
Если вы думаете, что проблема именно в свободном пространстве и initramfs, но загрузится с помощью более старого ядра не можете, то попробуйте другой LiveCD-дистрибутив и попытайтесь всё исправить в chroot-окружении.
2. Неверное имя корневого раздела Grub
Сейчас, в большинстве дистрибутивов, в конфигурационном файле Grub имя корневого раздела передается ядру в формате UUID. И с этим обстоятельством есть одна проблема. Если вы каким-либо образом измените корневой раздел, например, измените его размер, то UUID изменится. И если вы перезагрузитесь, не обновив конфигурацию Grub, то система больше не загрузится, потому что ядро попросту не сможет найти нужного раздела.
Но попытаться решить проблему можно. Если вы точно знаете, на каком разделе у вас находится корень, то можно прямо в меню Grub исправить конфигурацию. Для этого в меню выберете стрелками вверх и вниз нужный пункт, а затем нажмите кнопку E. Откроется редактор конфигурации. Вам нужно найти строчку, похожую на эту:
linux /boot/vmlinuz-4.15.0-36-generic root=UUID=9d8d92de-74a6-4e64-8281-b8548c690e0c ro quiet splash $vt_handoff
В ней надо заменить UUID=9d8d92de-74a6-4e64-8281-b8548c690e0c на обычное имя вашего корневого раздела, например, /dev/sda2. Для начала загрузки нажмите F10. Если система загрузится, значит проблема была именно в этом. В дальнейшем, можно просто обновить конфигурацию Grub:
Или даже попросить Grub больше не использовать UUID для обозначения корневого раздела:
sudo vi /etc/default/grub
Если ошибка исчезла, но система всё ещё не загружается, обратите внимание, что systemd всё ещё использует файл /etc/fstab для монтирования файловых систем. И если корневая файловая система (и не корневая тоже) там указана неверно, система не загрузится. Для исправления этой проблемы можно использовать режим восстановления Ubuntu. Здесь тоже надо заменить UUID на обычную запись или же на правильный UUID. Такая проблема очень часто становится причиной медленной загрузки Linux.
В этом же режиме можно проверить корневой раздел на ошибки, но для проверки диска лучше использовать LiveCD.
Выводы
В этой статье мы рассмотрели, как исправить ошибку «vfs unable to mount root fs on unknown block». Как видите, несмотря на то, что ошибка достаточно сложная, с нею достаточно просто разобраться. Надеюсь, эта информация была вам полезной.
Источник