Initramfs Ubuntu не загружается

Обновлено: 21.11.2024

Помогите! Когда я загружаюсь в Ubuntu, тогда в командной строке отображается сообщение (initramfs), и я попытался выполнить команду «выход», она говорит о панике ядра, я попытался выполнить «продолжить», ничего не происходит, я даже попытался выполнить команду «перезагрузка», и ничего не происходит, Пытался выполнить «fsck /dev/sda1 -y», затем команду «перезагрузка», но ничего не происходит, и я попытался изменить строку в Ubuntu, нажав «e», изменить ro на rw и нажать F10. все еще идет приглашение initramfs. Кто-нибудь поможет мне? Я действительно хочу Ubuntu Linux, потому что это быстро. Ты в продвинутом!

Версия Wubi для Ubuntu, которую я использовал: Wubi для Ubuntu 20.04.1 (версия 342)

Текст был успешно обновлен, но возникли следующие ошибки:

mhm199 прокомментировал 1 октября 2020 г. •

Когда я загружаюсь в Ubuntu, в командной строке отображается сообщение (initramfs)

Это была первая загрузка Ubuntu?

Было ли дополнительное сообщение? например. посмотреть здесь или здесь

Это была первая загрузка Ubuntu?

Было ли дополнительное сообщение?

  • Дополнительных сообщений не было. в командной строке BusyBox initramfs не отображаются ошибки, он просто показывает командную строку initramfs напрямую без отображения ошибок.

hakuna-m прокомментировал 2 октября 2020 г.

Значит, ваше текущее загрузочное меню не является одним из первых загрузочных:

Есть ли запись для режима восстановления?

Работает ли загрузка в режиме восстановления?

Если не было дополнительных сообщений, почему вы пытались использовать "fsck /dev/sda1 -y"?

Если ваша Winidows установлена ​​в режиме UEFI, /dev/sda1, вероятно, является разделом EFI, который не содержит корневого диска Wubi с Ubuntu.

Можно ли проверить смонтированные устройства с помощью команды mount ?

mhm199 прокомментировал 3 октября 2020 г. •

Это то, что я увидел при первой загрузке, затем просто дождался завершения установки.

mhm199 прокомментировал 3 октября 2020 г. •

Есть ли запись для режима восстановления?

Работает ли загрузка в режиме восстановления?

Да, я могу загрузиться в режиме восстановления в меню загрузки, но когда я загружаюсь оттуда, открывается командная строка initramfs.

mhm199 прокомментировал 3 октября 2020 г. •

Если не было дополнительных сообщений, почему вы пытались использовать "fsck /dev/sda1 -y"?

Если ваша Winidows установлена ​​в режиме UEFI, /dev/sda1, вероятно, является разделом EFI, который не содержит корневого диска Wubi с Ubuntu.

Что именно происходит, когда вы выполняете команду «fsck /dev/sda1 -y», потому что я вижу людей, говорящих выполнить команду, если вы переходите к командной строке initramfs.

Можно ли проверить смонтированные устройства с помощью команды mount ?

Хорошо, я проверю подключенные устройства.

mhm199 прокомментировал 3 октября 2020 г.

Забыл сказать. Я получаю сообщение об ошибке ACPI после завершения установки Ubuntu. картинка ниже

hakuna-m прокомментировал 4 октября 2020 г.

Что именно происходит, когда вы выполняете команду «fsck /dev/sda1 -y», потому что я вижу людей, говорящих выполнить команду, если вы переходите к командной строке initramfs.

Метод предполагает, что файловая система /dev/sda1 повреждена и является причиной сбоя initramfs. Но ИМХО, для UEFi и для установки Wubi это скорее не то устройство.

В системах UEFI первый раздел, вероятно, является разделом EFI, который скрыт в Windows.

Если вы устанавливаете Ubuntu на видимые диски Windows, такие как C:, D:, это должен быть раздел /dev/sda2 или /dev/sda3 или другие разделы. Кроме того, такие устройства, как /dev/sda2, являются самим диском Windows, который следует проверить с помощью инструментов Windows.

Поэтому initramfs должен смонтировать диск Windows как /host, а затем смонтировать диск Wubi как / . Если диск Windows смонтирован как /host, вы можете использовать fsck для диска Wubi. например с

Поэтому необходимо знать смонтированные устройства.

если вы отредактируете пункт меню Grub для Ubuntu с помощью e, также появится подсказка, какое устройство содержит Ubuntu.

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

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

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

Как исправить ошибку «initramfs» в Ubuntu

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

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

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

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

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

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

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

Заключение

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

Об авторе

Сэм Ю

Я профессиональный графический дизайнер с опытом работы более 6 лет. В настоящее время занимается исследованиями в области виртуальной реальности, дополненной реальности и смешанной реальности.
Я почти не смотрю фильмы, но люблю читать книги и статьи о технологиях.

В этом кратком руководстве объясняется, как исправить ошибку Busybox Initramfs в Ubuntu Linux. Я использую Ubuntu 20.04 LTS в качестве ежедневного драйвера на своем ноутбуке Dell Inspiron. Сегодня я включил его, и процесс загрузки перешел в оболочку BusyBox, и я оказался в командной строке initramfs.

Насколько я помню, я не сделал ничего плохого. Я не выключал его принудительно. Вчера все работало нормально! Когда я включил его сегодня, я попал в оболочку BusyBox:

Я не могу пройти мимо этого экрана. Также он не показывает, в чем именно проблема. Я вижу только пустую оболочку busybox.

Я не знал, что делать в этот момент. Поэтому я просто передал команду выхода, чтобы посмотреть, что произойдет.

А потом я увидел настоящую ошибку:

Ошибка Busybox Initramfs в Ubuntu

Как видно из приведенного выше вывода, раздел /dev/sda1 поврежден. Файловая система в этом разделе имеет некоторые ошибки. Если вы когда-либо сталкивались с проблемой такого типа, вам необходимо проверить и исправить проблемные файловые системы Linux с помощью команды fsck.

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

Для тех, кому интересно, BusyBox — это программный пакет, который содержит множество стандартных утилит UNIX в одном небольшом исполняемом файле. Он предоставляет замену большинству утилит, которые вы обычно найдете в GNU fileutils, shellutils и т. д.

Initramfs — это начальная файловая система оперативной памяти, основанная на tmpfs. Он содержит инструменты и сценарии, необходимые для монтирования файловых систем перед вызовом двоичного файла инициализации в реальной корневой файловой системе.

Исправить ошибку Busybox Initramfs в Ubuntu Linux

<р>1. Чтобы устранить ошибку initramfs в Ubuntu Linux, вам необходимо восстановить файловую систему в поврежденном разделе с помощью команды fsck, как показано ниже:

Замените /dev/sda1 именем вашего раздела. В вашей системе это может быть /dev/sdb1 , /dev/sdc1 и т. д. Вы можете использовать команды cat /proc/partitions или blkid, чтобы получить сведения о разделе Linux в Busybox.

<р>2. Теперь команда fsck начнет автоматически исправлять все плохие блоки в файловой системе.

Через пару минут вы увидите вывод, как показано ниже:

<р>3.Затем введите reboot и нажмите ENTER, чтобы перезагрузить систему!

Исправление ошибки Busybox Initramfs в Ubuntu Linux

Если команда перезагрузки не работает, введите exit и нажмите ENTER .

Скрестите пальцы и дождитесь перезагрузки системы! Если все прошло хорошо, ваша система загрузится без каких-либо проблем.

Эти шаги помогли мне и многим другим (см. раздел комментариев ниже) устранить ошибку Busybox Initramfs в операционной системе Ubuntu Linux. Если вы застряли в приглашении initramfs, это руководство определенно поможет.

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

Если ваша система Ubuntu вышла из строя из-за сбоя питания или проблем с сетевым подключением в середине процесса обновления, вы можете получить неисправную Ubuntu. В этом случае вы можете легко исправить сломанную Ubuntu, не переустанавливая ее, как описано в следующем руководстве.

initramfs — это решение, представленное для ядра Linux версии 2.6. Идея состоит в том, что в ядре выполняется множество магических действий по инициализации, которые можно так же легко выполнить в пользовательском пространстве.

На первый взгляд, он лишь немного отличается от традиционного initrd. Initramfs загружаются немного раньше, чем initrd.

  • Архив CPIO, поэтому в ядре вообще не нужны файловые системы. Архив просто распаковывается на рам диск.
  • Эта распаковка происходит до вызова do_basic_setup. Это означает, что файлы встроенного ПО доступны до загрузки встроенных в ядро ​​драйверов.
  • Вызывается инициализация пользовательского пространства вместо prepare_namespace. Весь поиск корневого устройства и установка md происходит в пользовательском пространстве.
  • Initramfs можно встроить непосредственно в ядро, добавив его в архив ELF под именем раздела .init.ramfs
  • initramfs можно складывать. Предоставление initramfs ядру с использованием традиционных механизмов initrd приводит к его распаковке вместе с initramfs, встроенными в ядро.
  • Все магические имена корневого устройства исчезают. Интеграция udev в initramfs означает, что одно и то же представление дерева /dev может использоваться на протяжении всей последовательности загрузки. Это должно устранить большинство сбоев SATA, которые возникают, когда установка может быть успешной, но initrd не может загрузиться.

Initramfs используется как первая корневая файловая система, к которой у вашего компьютера есть доступ. Он используется для монтирования реальной rootfs, в которой есть все ваши данные. initramfs содержит модули, необходимые для монтирования rootfs. Но вы всегда можете скомпилировать ядро, чтобы иметь эти модули. Тогда вам понадобится initramfs? Ответ на это «зависит от вашей системы». Для некоторых системных конфигураций требуется утилита пользовательского пространства, чтобы спровоцировать ядро ​​на правильную настройку устройств. Например: cryptdevices: им нужен пароль от пользователя. Эта утилита запроса пароля, являющаяся утилитой пользовательского пространства, может создать проблему курицы и яйца, т. е. ваша rootfs содержит утилиты пользовательского пространства, но rootfs не может подойти, пока не будут доступны утилиты пользовательского пространства. В таких случаях initramfs играет роль посредника между предоставлением временной корневой файловой системы, которая содержит утилиты пользовательского пространства, необходимые для монтирования настоящих корневых файлов.

Откуда берутся эти утилиты пользовательского пространства?

  • добавляет файл в ваш /usr/share/initramfs/hooks/, например: cryptroot. Эти файлы выполняются, когда вы вводите update-initramfs. Если вы посмотрите на этот скрипт «cryptroot», то заметите, что этот хук копирует cryptsetup из /sbin/cryptsetup в initramfs/sbin/cryptsetup
  • а также автоматически вызывает update-initramfs

Поэтому каждый пакет, который потенциально может настроить ваше корневое устройство, имеет скрипт-ловушку, который выполняется, когда вы запускаете update-initramfs или mkinitramfs, чтобы включить необходимые утилиты пользовательского пространства в ваши initramfs - rootfs. «update-initramfs» обычно вызывается, когда вы устанавливаете такой пакет, который потенциально способен настроить ваше корневое устройство. Например: если вы устанавливаете пакет «cryptsetup», независимо от того, зашифровано ли ваше корневое устройство или нет, установка пакета вызовет update-initramfs, который выполнит установленный скрипт «hook» (когда пакет был установлен).

Все эти файлы собираются во временном каталоге, затем архивируются cpio, а затем сжимаются gzip. Итак, если вы хотите раздуть свои initramfs, хранящиеся в /boot, вы запускаете следующие команды:

Если вы хотите создать initramfs из временного каталога, выполните следующие команды: скажем, имя каталога — initrd-test

Чтобы получить встроенный initramfs из ядра:

Обратите внимание, что в архиве есть начальные /, которые учитываются.

Если ваше корневое устройство зависит от модуля (то есть не скомпилировано в ядре), такой модуль _должен_ быть в initramfs, чтобы ваше корневое устройство было обнаружено во время загрузки. Модули обычно устанавливаются в /lib/modules/ / при установке пакета ядра. Однако, когда вы вручную компилируете ядро, важно вызвать make modules_install (который устанавливает скомпилированные модули в /lib/modules/ ) и следовать за ним «depmod» (который создаст файл modules.dep и карту в /lib/ модули/ ). После этого шага вам необходимо вручную обновить ваши initramfs (или создать новый, если это новое ядро), вызвав «update-initramfs» или «mkinitramfs». Если вы забудете эти шаги, ваше корневое устройство не будет обнаружено во время загрузки. Обратите внимание, что эта же схема команд применима и к случаю, когда вы компилируете какой-либо отдельный модуль отдельно (вместо установки пакета ядра Ubuntu).

  • инициализация-верхняя
  • предварительное монтирование
  • boot-top (здесь выполняются ваши скрипты шифрования — например, чтобы запросить пароль пользователя)
  • предварительное монтирование загрузки
  • загрузка
  • нижняя часть ботинка
  • инициализация снизу
  • перемещает /sys из initramfs в /initramfs/root/sys (в вашу настоящую rootfs)
  • перемещает /proc из initramfs в /initramfs/root/proc
  • вызывает run-init для запуска реальной инициализации в вашей реальной корневой файловой системе, хранящейся в /root. run-init делает что-то вроде chroot для реальной корневой файловой системы, а затем выполняет инициализацию, хранящуюся в /sbin/ или /bin, или любом другом запрошенном пользователем параметре загрузки.

(Ваши devfs уже должны быть перемещены одним из нижних сценариев) Если что-то пошло не так во время монтирования ваших rootfs, то будет опробовано действие восстановления, и если это тоже не удается, пользователю предоставляется консоль для ручного вмешательства.

"Различные пакеты сами решают, куда поместить их скрипты". Но все скрипты, необходимые для монтирования вашей rootfs, должны храниться внутри

Обычно пакеты содержат несколько сценариев, которые необходимо выполнять во время initramfs. Как правило, эти несколько сценариев имеют последовательность выполнения, которой необходимо следовать. Например: скажем, что пакет P имеет два сценария S1 и S2, которые должны выполняться во время загрузки для настройки системы. S1 необходимо выполнить после S2 (скажем) и до того, как можно будет смонтировать root - если, скажем, S1 и S2 помогают в настройке корневого устройства. Таким образом, S1 можно оставить в init-top, если он не зависит ни от чего другого, а S2 можно оставить в init-premount, если он не зависит ни от чего другого, кроме S1.

Кроме этого общего практического правила, нет других ограничений на то, где вы можете хранить свой скрипт.

Это означает, что разные скрипты из разных пакетов в одном и том же каталоге говорят, что «init-premount» _могут_ быть не связаны друг с другом в последовательности выполнения. Так что они могут выполняться действительно параллельно. Это то, что мы планируем использовать в initramfs на основе событий. Обратите внимание, что сценарии в одном каталоге также могут быть связаны друг с другом. В этом случае их последовательность определяется файлом под названием «порядок», хранящимся в этом каталоге. В разных каталогах могут быть сценарии, которые не связаны с точки зрения последовательности выполнения, и они также могут выполняться параллельно. Нам нужно идентифицировать эти скрипты.

В настоящее время сценарии выполняются один за другим, но это может измениться после реализации Foundations/Specs/EventBasedInitramfs.

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

Как исправить initramfs?

В командной строке необходимо запустить три команды.

  1. Выполните команду выхода. Сначала введите exit в командной строке initramfs. (инитрамфс) выйти. …
  2. Выполните команду fsck. Используйте команду fsck с указанным выше путем к файловой системе. …
  3. Выполните команду перезагрузки. Наконец, введите команду перезагрузки в командной строке (initramfs).

Как получить доступ к initramfs в Ubuntu?

В командной строке BusyBox необходимо запустить три команды.

  1. Выполните команду выхода. Сначала введите exit в командной строке initramfs. (инитрамфс) выйти. …
  2. Выполните команду fsck. Используйте команду fsck с указанным выше путем к файловой системе. …
  3. Выполните команду перезагрузки. Наконец, введите команду перезагрузки в командной строке (initramfs).

Как исправить, что initramfs не находит root?

  1. Узнайте, на каком из ваших разделов находится ваша система. …
  2. После того, как вы определили правильный раздел (мой был (hd3,gpt3) ), вам нужно убедиться, что ваш префикс установлен правильно. …
  3. Если ваш раздел был установлен неправильно, задайте правильный раздел с помощью set prefix=(hd3,gpt3)/boot/grub .

Что такое initramfs Ubuntu?

initramfs — это решение, представленное для ядра Linux версии 2.6. … Это означает, что файлы встроенного ПО доступны до загрузки встроенных в ядро ​​драйверов. Инициализация пользовательского пространства вызывается вместо prepare_namespace. Весь поиск корневого устройства и установка md происходит в пользовательском пространстве.

Зачем нужен initramfs?

initramfs — это корневая файловая система, встроенная в ядро ​​и загружаемая на ранней стадии процесса загрузки. Это преемник initrd. Он предоставляет раннее пользовательское пространство, которое может делать то, что ядро ​​не может сделать само по себе в процессе загрузки. Использование initramfs необязательно.

Как выйти из initramfs?

Как выйти из initramfs busybox в Ubuntu

  1. Шаг 1. Введите команду выхода. Копировать. $ выход.
  2. Шаг 3: над любой командой требуется разрешение, затем просто нажмите . Копировать. г.
  3. Шаг 4: после изменения структуры файловой системы. Копировать. перезагрузиться.
  4. В некоторых случаях работает выход вместо перезагрузки. Копировать. выход.

Почему Ubuntu загружается в initramfs?

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

Что такое BusyBox в Ubuntu?

BusyBox объединяет крошечные версии многих распространенных утилит UNIX в один небольшой исполняемый файл. Он предоставляет минималистичные замены для большинства утилит, которые вы обычно найдете в GNU coreutils, util-linux и т. д.… Чтобы создать работающую систему, просто добавьте /dev, /etc и ядро ​​Linux.

Как мы можем установить Ubuntu?

Вам потребуется как минимум 4 ГБ USB-накопитель и подключение к Интернету.

  1. Шаг 1. Оцените место для хранения. …
  2. Шаг 2. Создайте живую USB-версию Ubuntu. …
  3. Шаг 2. Подготовьте компьютер к загрузке с USB. …
  4. Шаг 1. Запуск установки. …
  5. Шаг 2. Подключайтесь. …
  6. Шаг 3. Обновления и другое программное обеспечение. …
  7. Шаг 4. Магия разделов.

Как добраться до Initramfs?

Вы попадете в оболочку initramfs:

  1. Включите компьютер. Подождите, пока не появится меню Grub.
  2. Нажмите e, чтобы изменить команды загрузки.
  3. Добавьте break=mount к строке ядра.
  4. Чтобы загрузиться, нажмите F10.
  5. Через мгновение вы окажетесь в оболочке initramfs.

Как запустить fsck вручную в Linux?

Войдите в меню загрузки и выберите Дополнительные параметры. Выберите режим восстановления, а затем «fsck».

Чтобы запустить fsck из живого дистрибутива:

Читайте также: