Вопрос или проблема
Хорошо, я запутался в проблеме и не имею запасного плана, поэтому надеюсь, что кто-то сможет помочь мне восстановить мою установку Linux. У меня ограниченные знания о системах Linux и Ubuntu, поэтому, вероятно, это и привело меня к этой ситуации, и я постараюсь наиболее точно объяснить, что случилось.
Мне нужно было освободить место в /boot, так как Webmin сообщил о нехватке места.
uname -a
сообщил, что моя текущая версия ядра 4.4.0-137-generic.
Я выполнил похожую команду, убедившись, что текущее ядро не входит в список:
sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`
Теперь у меня остались 4.4.0-137-generic, 4.4.0-138-generic и 4.4.0-139-generic, однако ни одно из них не загружается, и я получаю следующую ошибку:
kernel panic-not syncing: VFS: unable to mount root fs on unknown
block(0,0)
Я пробовал следующие опции chroot:
sudo fdisk -l
sudo mount /dev/sdax /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
Однако после монтирования sda1 я не могу продвинуться дальше, mnt показывает папку /boot, и я могу смонтировать папку dev, так как их нет в /mnt.
Я попробовал следующее, когда смог загрузиться в 4.4.0-137-generic и несколько других опций:
update-initramfs -u -k 4.4.0-137-generic
Что не решило проблему, я раньше мог видеть меню GRUB для вариантов восстановления, однако оно больше не отображается, сейчас я попадаю в tty, который показывает 4.4.0-139-generic при выполнении команды uname -a
.
Это мое первое сообщение, так что извиняюсь за неверное форматирование и нехватку информации о предпринятых шагах, возможно, я был немного опрометчив с этим всем. Дайте знать, если я могу внести какие-либо изменения для справки в будущем.
Итак, в продолжение, я обнаружил, что мой корневой раздел находится под /dev/mapper/Server--vg-root
и сумел смонтировать все папки для chroot
, однако восстанавливающий диск был 32-разрядным, а мне нужен 64-разрядный, что является следующим шагом.
Тем не менее папка /dev/mapper/Server--vg-root/boot
пуста, хотя /dev/boot
не пуста. Нужно ли мне смонтировать ее с использованием следующей команды или я должен восстанавливать /dev/mapper/Server--vg-root/boot
, чтобы она содержала элементы?
sudo mount --bind /dev/sda1 /mnt/boot
Или как мне проверить, какую папку использует Grub, чтобы подтвердить, какую нужно восстановить?
После дальнейшего расследования и осознания того, что моя система отличается от многих онлайн инструкций, так как она была настроена с использованием LVM, переустановка старых ядер и т.д. Система, похоже, загружается без проблем, некоторые из моих проблем могли вовсе не быть проблемами, это просто я не понимал настройки “видимости” загрузки GRUB и не загружался консоль.
Одна вещь, которая помогла, это Super-Grub2-disk, так как он подтвердил, что моя установка Ubuntu загрузится – https://www.supergrubdisk.org/
Теперь мне нужно немного упорядочить свою систему после того, как я узнал то, что узнал.
Несколько вещей, которые стоит отметить:
ESC показывает меню Grub на моей системе, а не SHIFT.
Для отображения консоли используйте CTRL+ALT+F1, чтобы загрузить консоль TTY1, мне нужно обновить установку конфигурации GRUB, чтобы обойти это.
Ответ или решение
Проблема, с которой вы столкнулись, связана с ошибкой системы, известной как “kernel panic: VFS: unable to mount root fs on unknown block(0,0)”. Эта ошибка возникает, когда ядро системы не может смонтировать файловую систему, что останавливает загрузку операционной системы. Рассмотрим основные причины и шаги по их устранению.
Определение проблемы
Ошибка "kernel panic" чаще всего появляется из-за следующих факторов:
- Неисправность диска или раздела. Возможны ошибки на жестком диске или в логическом разделе, что может привести к невозможности доступа к корневой файловой системе.
- Поврежденный файловый система. Неправильное завершение работы системы или повреждение файловой системы может вызвать подобные сбои.
- Проблемы с конфигурацией GRUB. Если конфигурация загрузчика повреждена или не настроена должным образом, это может негативно повлиять на процесс загрузки системы.
- Изменение структуры разделов. Например, если вы изменили разметку жесткого диска без последующего обновления конфигурации GRUB.
Шаги по устранению проблемы
1. Проверка и восстановление файловой системы
Для начала, загрузитесь с Live CD/USB для того, чтобы получить доступ к вашей системе:
- Запустите терминал.
- Проверьте и исправьте ошибки файловой системы с помощью команды:
sudo fsck /dev/mapper/Server--vg-root
Не забывайте, что вам необходимо указать именно ту логическую группу и корневую файловую систему, которая используется вашим дистрибутивом.
2. (Если требуется) Обновление GRUB
После успешного восстановления файловой системы, возможно, потребуется обновить конфигурацию GRUB:
- Вам нужно смонтировать необходимые каталоги:
sudo mount /dev/sda1 /mnt/boot sudo mount /dev/mapper/Server--vg-root /mnt sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt
- Затем обновите GRUB:
update-grub
- Выходите из chroot окружения:
exit
3. Настройка системы и GRUB
Ваши попытки использовать команду update-initramfs
были правильными. Убедитесь также, что у вас достаточно пространства на разделе /boot
, чтобы избежать проблем с загрузкой. Если у вас есть старые версии ядра, рассмотрите возможность их удаления:
sudo apt-get autoremove --purge
4. Использование Super Grub2 Disk
Вы уже упомянули, что Super Grub2 Disk помог вам загрузить вашу систему. Это мощный инструмент для восстановления загрузчиков и позволяет загрузить системы, даже если GRUB поврежден. Используйте его для загрузки, затем отладьте конфигурацию GRUB, как описано ранее.
5. Проверка логов
После успешной загрузки системы проверьте журналы ошибок:
sudo journalctl -b -1
Это позволит вам увидеть проблемы, которые могли возникнуть при последней загрузке.
Заключение
Вы уже сделали значительные шаги в диагностике и решении проблемы с вашей системой. Теперь ваша задача — поддерживать порядок в системе, осуществлять регулярные резервные копирования и сохранять актуальные обновления. Если вы столкнетесь с дальнейшими трудностями, обратитесь к сообществу Linux или используйте доступные инструменты для восстановления.