Initramfs ошибка при установке

I’ve just had a very similar issue when I did an sudo apt autoremove and it failed attempting to install kernel files for a kernel I don’t have. My uname -a shows I’m using kernel version 5.0.0-20 and running ls -al /boot shows only this and the 5.0.0-17 kernel are installed. However, apt suddenly turned up errors and attempted to install files in my /boot for old kernels including 5.0.0-15, 4.18.0-17, 4.13.0-45. Which is weird.

So I figure that somehow they’ve altered the logic for dkms (or something related to initramfs) and it checks some other locations to see if kernels might be installed and then does updates on those kernels and replaces missing files.

I’m not sure exactly what fixed it but I did:

sudo apt purge *5.0.0-15* *4.18.0-17* *4.13.0-45* 
#check carefully that it's not removing anything you need though, this is a hammer to crack a nut

ls -al /lib/modules 
# which revealed lots of old module folders that I removed with ...
sudo rm -rf /lib/modules/4.* 
# and similarly for the 5.0.0-15 modules

Then I did:

ls -al /usr/src/ 
# which again showed old source trees that I pruned with
sudo rm -rf sudo rm -rf /usr/src/linux-headers-4.*

Then I did:

locate -e 4.13.0 
# which found old kernel files in
ls -al /var/lib/initramfs-tools/ 
# so I removed with
sudo rm -rf /var/lib/initramfs-tools/4*

I have problems with a very tight /boot folder for historical reasons and so removed old kernel files with:

sudo rm -i /boot/**4* 
# and similar for all but my current and next oldest kernels
# -i is interactive mode so you have to answer 'y' to remove
# that's a really useful safety check, 'sudo rm' is a dangerous tool!

Finally I ran:

sudo apt -f install

Which finished as expected and returned the system to the expected state without attempting to install extraneous kernels. I did not test as I went along so can not guarantee which part fixed it, but it was not harmful to clear those old files out AFAICT.

Aside, checking my /var/log/apt/history.log file, this appears to be the beginning of this particular error:

Start-Date: 2019-07-01  17:59:10
Commandline: /usr/bin/unattended-upgrade
Upgrade: linux-tools-common:amd64 (4.15.0-52.56, 4.15.0-54.58)
End-Date: 2019-07-01  17:59:16

Start-Date: 2019-07-01  17:59:22
Commandline: /usr/bin/unattended-upgrade
Install: linux-image-5.0.0-20-generic:amd64 (5.0.0-20.21~18.04.1, automatic), linux-modules-extra-5.0.0-20-generic:amd64 (5.0.0-20.21~18.04.1, automatic), linux-modules-5.0.0-20-generic:amd64 (5.0.0-20.21~18.04.1, automatic)
Upgrade: linux-image-generic-hwe-18.04-edge:amd64 (5.0.0.17.73, 5.0.0.20.76), linux-image-extra-virtual-hwe-18.04-edge:amd64 (5.0.0.17.73, 5.0.0.20.76)
Error: Sub-process /usr/bin/dpkg returned an error code (1)
End-Date: 2019-07-01  18:00:10

But this may be a false flag as for me the limited /boot space can be the cause of the error code (1).

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

В этом режиме будет сложно что-то исправить, но можно попытаться понять где находится причина проблемы. В этой статье мы рассмотрим что делать если Linux не загружается с initramfs. Такой проблеме подвержены все дистрибутивы, но мы рассмотрим решения на примере Ubuntu.

Почему Linux не загружается дальше initramfs

Если вы столкнулись с данной ошибкой, то после нескольких десятков секунд загрузки увидите такое сообщение:

Первое, что можно попытаться сделать в таком случае — выполнить команду exit, чтобы система попыталась загрузится и тогда она покажет вам более подробное сообщение об ошибке.

1. Неверный корневой раздел в загрузчике

В данном случае она сообщает, что не может найти раздел /dev/sda10:

Alert: /dev/sda10 does not exist. Dropping to a shell

Очень часто такая ошибка возникает после манипуляций с разделами дисков, особенно изменения их размера. UUID диска меняется и ядро больше не может его найти. Вы можете посмотреть доступные в системе разделы с помощью команды:

ls /dev/ | grep sd

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

mkdir /mnt
mount /dev/sda5 /mnt
ls

Вы также можете узнать здесь же UUID данного раздела диска, для этого выполните:

blkid /dev/sda5

В данном случае, корневой раздел имеет имя /dev/sda5. Именно это имя можно передать ядру в конфигурации загрузчика Grub, а можно UUID, но если в этом нет крайней необходимости, то короткое имя использовать гораздо проще. Надо перезагрузить компьютер, в меню Grub выбрать нужную загрузочную запись и нажать клавишу E:

Далее найти пункт, начинающейся со слова linux и в нём параметр root. Его значение вместе со словом UUID надо стереть, а вместо него прописать имя корневого раздела:

После этого система загрузится, а вам останется только создать новый конфигурационный файл grub с помощью команды:

update-grub

2. Повреждённая файловая система

Подобная ошибка может появляться также при серьезных ошибках в файловой системе, которые мешают примонтировать корневой раздел. Обычно, fsck восстанавливает файловую систему автоматически, но если проблема серьезная и грозит потерей данных, утилите надо подтверждение пользователя для работы. Тогда система показывает такую ошибку:

The root filesystem on /dev/sda5 requires a manual fsck

Вы можете прямо здесь же попытаться восстановить файловую систему. Для этого выполните:

fsck -y /dev/sda5

Здесь /dev/sda5 — это корневой раздел, его нужно заменить на свой. Опция -y указывает утилите, что на все вопросы надо ли исправлять блок нужно отвечать утвердительно. После успешного восстановления надо перезагрузить компьютер и попытаться загрузить систему снова.

Выводы

В этой статье мы разобрались что делать если в Linux не загружается initramfs, как посмотреть сообщение об ошибке, а также как устранить самые распространённые причины.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

I’ve just had a very similar issue when I did an sudo apt autoremove and it failed attempting to install kernel files for a kernel I don’t have. My uname -a shows I’m using kernel version 5.0.0-20 and running ls -al /boot shows only this and the 5.0.0-17 kernel are installed. However, apt suddenly turned up errors and attempted to install files in my /boot for old kernels including 5.0.0-15, 4.18.0-17, 4.13.0-45. Which is weird.

So I figure that somehow they’ve altered the logic for dkms (or something related to initramfs) and it checks some other locations to see if kernels might be installed and then does updates on those kernels and replaces missing files.

I’m not sure exactly what fixed it but I did:

sudo apt purge *5.0.0-15* *4.18.0-17* *4.13.0-45* 
#check carefully that it's not removing anything you need though, this is a hammer to crack a nut

ls -al /lib/modules 
# which revealed lots of old module folders that I removed with ...
sudo rm -rf /lib/modules/4.* 
# and similarly for the 5.0.0-15 modules

Then I did:

ls -al /usr/src/ 
# which again showed old source trees that I pruned with
sudo rm -rf sudo rm -rf /usr/src/linux-headers-4.*

Then I did:

locate -e 4.13.0 
# which found old kernel files in
ls -al /var/lib/initramfs-tools/ 
# so I removed with
sudo rm -rf /var/lib/initramfs-tools/4*

I have problems with a very tight /boot folder for historical reasons and so removed old kernel files with:

sudo rm -i /boot/**4* 
# and similar for all but my current and next oldest kernels
# -i is interactive mode so you have to answer 'y' to remove
# that's a really useful safety check, 'sudo rm' is a dangerous tool!

Finally I ran:

sudo apt -f install

Which finished as expected and returned the system to the expected state without attempting to install extraneous kernels. I did not test as I went along so can not guarantee which part fixed it, but it was not harmful to clear those old files out AFAICT.

Aside, checking my /var/log/apt/history.log file, this appears to be the beginning of this particular error:

Start-Date: 2019-07-01  17:59:10
Commandline: /usr/bin/unattended-upgrade
Upgrade: linux-tools-common:amd64 (4.15.0-52.56, 4.15.0-54.58)
End-Date: 2019-07-01  17:59:16

Start-Date: 2019-07-01  17:59:22
Commandline: /usr/bin/unattended-upgrade
Install: linux-image-5.0.0-20-generic:amd64 (5.0.0-20.21~18.04.1, automatic), linux-modules-extra-5.0.0-20-generic:amd64 (5.0.0-20.21~18.04.1, automatic), linux-modules-5.0.0-20-generic:amd64 (5.0.0-20.21~18.04.1, automatic)
Upgrade: linux-image-generic-hwe-18.04-edge:amd64 (5.0.0.17.73, 5.0.0.20.76), linux-image-extra-virtual-hwe-18.04-edge:amd64 (5.0.0.17.73, 5.0.0.20.76)
Error: Sub-process /usr/bin/dpkg returned an error code (1)
End-Date: 2019-07-01  18:00:10

But this may be a false flag as for me the limited /boot space can be the cause of the error code (1).

При использовании компьютера вы можете столкнуться с различными проблемами, одной из которых является неправильная загрузка операционной системы. Существуют различные решения для решения проблем с загрузкой, некоторые из них можно легко исправить, а для некоторых необходимо переустановить всю операционную систему.

Ubuntu также может встретить вас с подобными проблемами, и «initramfs» — одна из них. Это проблема загрузки Ubuntu, которая возникает из-за сбойных блоков или сбойных секторов в памяти, которые не позволяют загрузиться операционной системе.

Ваша система содержит много важных файлов, поэтому такая ошибка определенно может вызвать панику. Не о чем беспокоиться; В этой статье основное внимание уделяется тому, как решить проблему с initramfs и нормально загрузить Ubuntu. Итак, начнем:

Если на вашем экране отображается ошибка «initramfs», вы уже находитесь в режиме восстановления, что означает, что вы можете вводить команды и выполнять различные операции. Ошибка будет такой:

Вы можете ввести «exit», чтобы получить подробную информацию об ошибке. Обратите внимание, что вы не можете получать подробные сведения об ошибке каждый раз, когда набираете «exit». Как обсуждалось выше, эта ошибка «initramfs» возникает при повреждении загрузочного диска. Вы можете подключить несколько дисков для их проверки, используйте:

или же

Разделы можно просмотреть по имени /dev/sda,/dev/sdb или любому другому. Теперь, чтобы исправить ошибку «initramfs», мы используем   утилиту «fsck», также известную как «проверка целостности файловой системы», которая проверяет и устраняет проблемы файловой системы. Следуйте приведенному ниже синтаксису:

(initramfs) fsck [partitian name (/dev/sdXX)]

Например, если наш раздел называется «/dev/sdb», то команда будет такой:

Нажмите «Enter», команда автоматически удалит поврежденные сектора из памяти. Когда появится запрос, нажмите «y». Чтобы предотвратить появление подсказок, просто используйте опцию «-y» с командой:

(initramfs) fsck/dev/sdb -y

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

(initramfs) reboot

Если перезагрузка не работает, введите «exit». Вот так; ошибка устранена, и Ubuntu загрузится нормально.

Заключение

«Initramfs» ошибка может устрашить вас, но, к счастью, эта ошибка имеет очень простое и простое решение. Эта ошибка возникает, когда ваша память повреждена, особенно диск, содержащий операционную систему, и не позволяет ей загружаться. Чтобы исправить это, просто используйте утилиту «fsck». В этой статье подробно объясняется процесс устранения ошибки «initramfs» для нормальной загрузки Ubuntu.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Вылазит initramfs при загрузке Ubuntu

initramfs — файловая система оперативной памяти, которая используется для начального запуска операционных систем на базе ядра Linux. При установке ОС все библиотеки, утилиты и конфигурационные файлы сжимаются в архив, после чего передаются указанной файловой системой в загрузчик, где и продолжается старт системы. Иногда пользователи дистрибутива Ubuntu сталкиваются с тем, что при включении компьютера они попадают в консоль управления именно этой ФС без возможности дальнейшей загрузки системы. Связано это с повреждением потока запуска и восстанавливается достаточно простым методом.

В большинстве случаев рассматриваемая проблема связана со сбоем в одном из суперблоков, и при попытке выхода из initramfs через команду exit появляется надпись следующего содержания:

exit /dev/mapper/ubuntu--vg-root contains a file system with errors, check forced. Inodes that were part of a corrupted orphan linked list found. /dev/mapper/ubuntu-vg-root: UNEXPECTED INCONSISTENCY; Run fsck MANUALLY. (ie, without -a or -p options) fsck exited with status code 4. The root file system on /dev/mapper/ubuntu--vg-root requires manual fsck.

При возникновении подобной ситуации лучшим методом исправления проблему будет восстановление работы суперблока, а сделать это можно следующим образом:

  1. Загрузите ISO-образ с такой же версией Ubuntu, как установлена на компьютере, с официального сайта и создайте загрузочную флешку. Детальнее об этой процедуре вы можете узнать в другой нашей статье по следующей ссылке.
  2. Подробнее: Инструкция по созданию загрузочной флешки с Ubuntu

  3. При запуске ОС выберите загрузку с флешки, и при отображении окна инсталляции переходите в режим «Try Ubuntu».
  4. Запуск установщика операционной системы Ubuntu в демонстрационном режиме

  5. Здесь отобразится стандартный графический интерфейс. Откройте меню и двойным щелчком ЛКМ по иконке запустите приложение «Терминал». Делается это также зажатием комбинации клавиш Ctrl + Alt + T.
  6. Переход к терминалу Ubuntu при запуске в демонстрационном режиме

  7. Узнайте номер системного раздела жесткого диска с установленной системой, введя команду sudo fdisk -l|grep Linux|grep -Ev 'swap'.
  8. Определение номера системного раздела жесткого диска через терминал Ubuntu

  9. В новой строке вы увидите обозначение, например /dev/sda1. Запомните его, ведь в дальнейшем это потребуется для исправления ошибки.
  10. Отображение номера системного раздела жесткого диска после активации команды в Ubuntu

  11. Запустите процедуру перечисления всех существующих суперблоков, указав sudo dumpe2fs /dev/sda1 | grep superblock. В каждом суперблоке хранится определенное количество метаданных файловой системы, поэтому сбои в их работе и провоцируют отказ загрузки ОС.
  12. Команда для отображения всех суперблоков на жестком диске через терминал в Ubuntu

  13. В новых строках после активации команды отобразится список всех присутствующих в разделе суперблоков.
  14. Отображение всех суперблоков жесткого диска через терминал в Ubuntu

  15. Возьмите за пример любой блок, например, первый. С его помощью будет производиться восстановление ФС. Запуск этой операции осуществляется после ввода sudo fsck -b 32768 /dev/sda1 -y, где 32768 — номер суперблока, а /dev/sda1 — необходимый раздел жесткого диска.
    Восстановление файловой системы жесткого диска через суперблок в Ubuntu

    Благодаря опции -y все изменения будут автоматически приниматься, и при успешном завершении процесса на экране отобразится следующее уведомление:

    fsck 1.40.2 (12-Jul-2007) e2fsck 1.40.2 (12-Jul-2007) /dev/sda1 was not cleanly unmounted, check forced. Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Free blocks count wrong for group #241 (32254, counted=32253). Fix? yes Free blocks count wrong for group #362 (32254, counted=32248). Fix? yes Free blocks count wrong for group #368 (32254, counted=27774). Fix? yes .......... /dev/sda1: ***** FILE SYSTEM WAS MODIFIED ***** /dev/sda1: 59586/30539776 files (0.6% non-contiguous), 3604682/61059048 blocks

  16. Осталось смонтировать системный раздел sudo mount /dev/sda1 /mnt.
  17. Монтирование системного раздела через терминал в Ubuntu

  18. Далее перейдите в него через cd /mnt, чтобы все команды выполнялись непосредственно из самого каталога.
  19. Переход в системный раздел через терминал в операционной системе Ubuntu

  20. Просмотрите содержимое ФС через sudo mkdir test ls -l. Успешное выполнение этой операции говорит о том, что восстановление прошло удачно и можно перезапускать ОС.
  21. Проверка файловой системы после ее исправления в терминале Ubuntu

Иногда даже после успешного исправления рассмотренной проблемы юзеры сталкиваются с ошибками при запуске операционной системы. Чаще всего они связаны с поломкой стандартного загрузчика GRUB. Поэтому придется дополнительно восстановить и этот стандартный компонент. Развернутое руководство о том, как выполняется поставленная задача через Boot-Repair, ищите в материале далее.

Читайте также: Восстановление загрузчика GRUB через Boot-Repair в Ubuntu

По завершении всех процедур флешка с LiveCD Ubuntu вам больше не понадобится. Если возникло желание ее отформатировать и использовать далее для своих целей, советуем ознакомиться с отдельной нашей статьей по проведению этой операции.

Читайте также: Форматирование флешки в Linux

Сегодня мы рассказали о самом популярном решении неполадки с загрузкой в initramfs, однако это не означает, что приведенный способ является универсальным. В случае возникновения ошибки другого характера опишите ее в комментариях, а мы постараемся предоставить правильное решение этой ситуации.

Еще статьи по данной теме:

Помогла ли Вам статья?

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Instagram выдает ошибку при входе
  • Initramfs ошибка kali
  • Instagram undefined ошибка
  • Initializer provided for function ошибка
  • Inst 08104 04 ошибка ман тга

  • Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: