Установка новой системы с использованием многораздельного диска GPT, выделенного для одного раздела, в формате ext4 , extlinux (версия 4.05) в качестве загрузчика, Ubuntu Core версии 13.10, amd64 в качестве rootfs и Ubuntu linux-image-3.11.0-18-generic в качестве ядра, и extlinux-update для генерации конфигурации загрузчика.
Результатом после перезагрузки (все еще внутри виртуальной машины на основе KVM) является приглашение (initramfs) и эти сообщения:
mount: can't read '/etc/fstab': No such file or directory
mount: mounting /dev on /root/dev failed: No such file or directory
mount: mounting /sys on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed: No such file or directory
The filesystem doesn't have requested /sbin/init.
No init found. Try passing init= bootarg.
BusyBox v1.20.2.
Регресс:
- файловая система была проверена с
fsck.ext4
Проверьте наличие root
(initramfs) ls -l /dev/[hs]da*
ls: /dev/[hs]da*: No such file or directory
Корневой аргумент загрузки
(initramfs) cat /proc/cmdline
initrd=/boot/initrd.img-3.11.0-18-generic ro quiet BOOT_IMAGE=/boot/vmlinuz-3.11.0-18-generic
Проверьте загруженные модули
(initramfs) cat /proc/modules
e1000 145368 0 - Live 0xffffffffa0000000
/ содержимое папки boot
$ sudo ls -l boot
-rw------- 1 root root 3296162 Feb 18 22:37 System.map-3.11.0-18-generic
-rw-r--r-- 1 root root 1007681 Feb 18 22:37 abi-3.11.0-18-generic
-rw-r--r-- 1 root root 163258 Feb 18 22:37 config-3.11.0-18-generic
drwxr-xr-x 2 root root 4096 Mar 17 20:13 extlinux
-rw-r--r-- 1 root root 4995000 Mar 16 23:35 initrd.img-3.11.0-18-generic
-rw------- 1 root root 5634192 Feb 18 22:37 vmlinuz-3.11.0-18-generic
Как заставить эту систему загружаться в ожидаемую подсказку bash по умолчанию?
Ответы:
Измените параметр загрузки ядра, установив
root=/dev/sdaX
параметр.sdaX
будет ваш/
илиroot
раздел. При следующей загрузке вы увидите, что выinitramfs
пытаетесь смонтировать раздел, прежде чем пытаться получить доступ/etc/fstab
и смонтировать файловые системы.Смотри вопрос " Использует ли initramfs / etc / fstab? " Для более подробной информации.
источник
root=/dev/sdaX
улучшает ситуацию, не больше не(initramfs)
ноbash
Войти подскажите вместо этого.root=/dev/sdaX
в загрузку ядра, мне нужно обновить/mnt/etc/default/extlinux
и изменитьEXTLINUX_ROOT=""
на предложенноеEXTLINUX_ROOT="/dev/sdaX"
и запуститьextlinux-update
снова.Вам нужно понять,
initramfs
что это файловая система. Начиная с ядра 2.6, это, по сути, единственная навязанная ядром файловая система (за исключением VFS, которая, возможно, также является файловой системой) на вашем компьютере. Вашinitramfs image
образ диска.В вашем
initramfs image
распоряжении будут все файлы, которые ваш дистрибутив посчитал достаточно важными, прежде чем ваш корневой диск будет найден. Обычно это Busybox и любые модули ядра, которые вам нужны, чтобы найти и смонтировать ваше корневое устройство. Это не работает для вас.Здесь нет настоящей тайны, учитывая все обстоятельства. Если вы можете обойти терминал, вы можете перемещаться по
initramfs.
Но сначала вы должны демистифицировать ее.В первую очередь и еще раз - это просто
/.
Linux root делает вещи типа root. Фактически, если он находится в отдельном файле от вашего ядра, это уже ваше второе корневое устройство. Каждое ядро Linux содержит в основном пустое/
все свои собственную которой он первый монтируют перед вытягивать в вашемinitramfs.
Более того,
initramfs
это настоящий корень. Это где ядро Linux инициализирует пространство пользователя, выполнивinit
и впоследствии отказываясь от всей ответственности за любые проблемы, с которыми вы можете столкнуться после этого. Вы ,init
кажется, Busybox, как и многие другие , что означает контроль его действия должны быть столь же простым , как редактирование сопровождающих его сценариев оболочки.Тогда почему ошибка, связанная с отсутствием поиска?
init?
Почти наверняка это относится к программе,init
которая называетсяinit
был проинструктирован с помощью сценария оболочки для выполнения.Самое поразительное для меня то, что псевдо файловые системы ядра
dev sys proc
- не монтируются. Это либо очень неприятно, либо очень хорошая подсказка. Вы упомянули KVM, который заставляет меня задаться вопросом о возможностях ядра, но прежде чем мы пойдем по темной и извилистой дороге, можем ли мы сначала попробовать что-нибудь еще?Меня поражает, что сообщение об ошибке повторяется:
В противном случае вам нужно восстановить свой
initramfs
имидж. Для этого загрузитесь с живого диска и запустите любой инструмент, предоставляемый вашим дистрибутивом для достижения этой цели. О, и убедитесь, что этот живой диск загружен в EFI режиме .Так что вот единственная действительно необычная вещь о
initramfs - switchroot.
Ядро Linux предоставляет особый системный вызов, предназначенный для раннего пользовательского пространства и обрабатывающий переход с устройства
initramfs
на корневой диск. Он работает, сначала монтируя корневой диск в точку монтирования,initramfs
а затем поворачивая корневую файловую систему в него. Я предполагаю, что вашаinitramfs's
целевая точка монтированияroot
основана на том, как она продолжает стонать об этом. Почему бы не убедиться, что это там?Для дальнейшего исследования вам нужно немного поморщиться. Настройте свой загрузчик, чтобы передать ...
... как параметр ядра.
источник
efibootmgr
вашего приглашения на вашей виртуальной машине.У меня такая же проблема. То, что сказал Алекс, верно. Сначала я поправил свой fstab, но это не помогло. Итак, я проверил мой харч. Если у вас есть возможность получить доступ к меню Grub.
Это решило мою проблему. После перезагрузки моему linux понадобилось больше времени, чтобы начать проверять диск. Но теперь это работает снова.
Я надеюсь, что смогу помочь тебе.
С уважением
источник