Диск по UUID не обнаружен (initramfs), сбой загрузки

18

Я не могу загрузить Ubuntu 10.04 со встроенной загрузочной оболочкой, выдающей эту ошибку:

Gave up waiting for root device. Common problems:
  — Boot args (cat /proc/cmdline)
    — Check rootdelay= (did the system wait long enough?)
    — Check root= (did the system wait for the right device?)
  — Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/disk/by-uuid/aa91b9fe-1e27-44d7-9c1b-72dd7d4e8575 does not exist.   
Dropping to a shell! 

BusyBox v.1.13.3 (Ubuntu 1:1.13.3-1ubuntu11) built-in shell (ash)   
Enter 'help' for list of built-in commands.  

(initramfs)

Обновление 1
Эта ошибка произошла после того, как я обновил 2.6.32-26версию ядра и загрузился прямо в Windows.

Решение rootdelay не сработало. Есть ли вероятность того, что uuid моего диска изменился (возможно, с помощью Windows), я мог войти в свой Ubuntu раньше, но после входа в Windows и перезагрузки я получаю эту ошибку. Что касается резервного копирования, нужно ли мне это, даже если у меня есть отдельные разделы домашнего и рабочего пространства, чем установка Ubuntu?

Обновление 2
Обновление, после которого это произошло, было просто обновлением (без новой установки). version 2.6.32-26.Так что я думаю, это как-то связано с последним обновлением этой версии ядра. Кроме того, поскольку это была не новая установка, новый пункт меню не был добавлен. По какой-то причине это может быть вызвано моей перезагрузкой в ​​Windows после обновления ядра.

Обновление 3
Установленное старое ядро ​​путем хроматирования через живой USB, проблема с ядром остается той же, так что, похоже, проблема не в обновлении ядра .

Я тоже сталкивался с этой проблемой и раньше, но тогда я просто подумал о переустановке дистрибутива (раньше я часто переключал дистрибутив). Но теперь я настроил это слишком далеко и поэтому искал какое-то последнее средство.

Обновление 4
Переустановил Ubuntu. На этот раз настройка была проще благодаря отдельным разделам для дома и рабочего пространства. Даже несмотря на то, что сейчас мне не нужно решение этой проблемы, но, если вы знаете какое-либо возможное решение, пожалуйста, напишите здесь для дальнейшего использования.

crodjer
источник
Попробуйте запустить «blkid» из приглашения initramfs, чтобы вывести список переустановленных идентификаторов устройств.
Жоау Пинту
Что произойдет, если вы оставите компьютер на минуту в приглашении busybox "(initramfs)", а затем напечатаете "exit" и нажмите клавишу Enter?
Ли Ло
выдает то же самое приглашение снова, вышеупомянутые сообщения добавляются к загрузочной оболочке
crodjer
У меня была точно такая же проблема, и я нашел решение в этом решении «очень мало голосов», но оно действительно работает! askubuntu.com/a/519814/223469
Алекс

Ответы:

7

У меня была такая же проблема, как у стартера потока, и я решил ее без переустановки.

Моя проблема возникла при манипулировании виртуальной установкой на основе скопированного образа диска. Это привело к изменению uuid и копирование не началось. Это грубый набросок того, что я сделал.

Сначала загрузитесь с помощью спасательной системы (той же версии) и запустите оболочку на вашем незагружаемом диске. Посмотрите /etc/fstabи подтвердите uuids, выполнив blkidкоманду для каждого устройства. Исправьте эти записи, поскольку они важны.

Далее мы исправим grub с помощью:

  • grub-mkconfig
  • update-grub

Затем запустите:

  • update-initramfs -u /boot/initrd.img-2.6.YOURVERSION-HERE

Это создаст новый initramdisk для вашей версии. Если вы не знаете точную версию, которую вы использовали, посмотрите файлы в / boot /. Выбор наибольшего номера версии должен быть безопасным.

После того, как вы выйдете из оболочки восстановления, компакт-диск с Ubuntu предложит вам последнее меню, из которого вы вошли в оболочку. Выберите «установить Grub» (или аналогичный) там и введите устройство, куда поместить загрузочный сектор.

На большинстве систем (стандартная установка) /dev/sdaэто безопасная ставка. Имейте в виду: для Windows или других мультизагрузочных систем здесь могут потребоваться другие записи!

Наконец, вы сможете загрузиться с отремонтированного диска.

Andreas
источник
1
Это сработало для меня, но команда update-initramfs была следующей: update-initramfs -k -u 2.6.YOURVERSION-HERE
Dan
5

Кажется, проблема в том, что ваш жесткий диск или контроллер не реагируют достаточно быстро.

Попробуйте следующее:

  • Когда появится меню загрузки, выделив верхнюю часть списка, нажмите e (для редактирования ).

  • Вы должны увидеть длинный список параметров. Добавьте это к этому: rootdelay=130

  • Хит Enterа потом b( загрузка ). Попробуйте проверить, загружается ли ваша система сейчас. Вы можете увеличить значение, если это не поможет в первый раз (но не намного, 130 уже более чем достаточно для любого оборудования, которое не сломано).

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

Стефано Палаццо
источник
1
Это правда ... что бы ни случилось, попробуйте live CD или live USB и после загрузки на рабочий стол live подключите внешний жесткий диск (надеюсь, что он у вас есть) и начните резервное копирование данных на внешний жесткий диск ...
Салих Эмин
rootdelay решение не работает. Есть ли вероятность того, что uuid моего диска изменился (возможно, с помощью Windows), я мог войти в свой buntu раньше, но после входа в Windows и перезагрузки я получаю эту ошибку. Что касается резервного копирования, нужно ли мне, даже если у меня есть отдельные разделы домашнего и рабочего пространства, чем установка Buntu?
crodjer
5

На самом деле, я видел, как дисковые UUID менялись один или два раза спонтанно. Изменение может быть результатом какого-то искажения. Я бы попробовал следующее:

  • Загрузите ваш компьютер с живого носителя;
  • fdisk -l /dev/sdaнайти раздел, который вы ищете; или используйте cfdisk; or usegparted (replacesda` на вашем жестком диске).
  • blkid /dev/sda1(заменить sda1на раздел, который вы нашли); альтернативное использование vol_id;
  • посмотрите, можете ли вы смонтировать раздел (используя файл устройства /dev/sda1);
  • проверьте, совпадает ли отображаемый UUID с UUID вашего корневого раздела /etc/fstab;
  • сгенерируйте новый UUID с помощью uuidgenи примените его к разделу с помощью tune2fs -U;
  • измените fstabзапись соответственно.

Может показаться маловероятным, что что-то столь же важное, как UUID, изменяется без видимой причины, но это происходит, вероятно, из-за ошибки. Посмотрите, помогает ли изменение UUID на новое значение.

loevborg
источник
1
Uuid в приглашении initramfs, корневой диск и fstab были одинаковыми. Я все еще изменил, как вы указали, но все та же проблема
crodjer
Может быть, это действительно проблема, связанная с обновлением ядра. Можете ли вы смонтировать файловую систему из оболочки busybox? Попробуйте смонтировать его, используя файл устройства / dev / sda1 (mutatis mutandis), который вообще не должен быть связан с UUID. Если это работает, вы можете просто отредактировать конфигурацию fstab и GRUB, чтобы использовать файлы устройств, а не UUID.
loevborg
Кроме того, насчет переустановки - это не так уж и сложно, если вы сделаете копию своего каталога / home и поместите ее после установки. Затем речь идет об установке того же набора пакетов (что также может быть сделано автоматически). Я согласен с тем, что в этом нет необходимости, и вместо этого гораздо проще найти проблему.
loevborg
2

Когда я увидел это в моей системе, это был вопрос неправильного UUID, установленного в качестве параметра загрузочного корня в /boot/grub/menu.lst.

cat /proc/cmdlineфактически показывает параметры загрузки, переданные в initramfs - если вы видите, что initramfs говорят смонтировать несуществующий корневой раздел, он, очевидно, потерпит неудачу.

update-grub Я не обновил эти параметры для меня, но просто сделал ручную замену старого UUID в menu.lst, исправил это для меня.

Фредрик Гунгер
источник
Это также, как я должен был исправить вещи в прошлом. Однако в прошлый раз я даже не удосужился использовать UUID и просто заменил неправильный UUID на идентификатор устройства / dev / xxx в / etc / fstab. Для тех, кто пытается это исправить, также смотрите ответ @ loevborg.
Белаква
1

У вас есть старое ядро? Это работает? Проверьте / etc / fstab, как loevborg сказал о возможных устаревших записях (у меня была такая же проблема при установке lvm и grub2 - была старая запись для раздела / boot, которая вызвала ошибку)

Павлос Г.
источник
нет .... у меня есть привычка удалять старое ядро ​​после тестирования новой установки 4-5 раз. Обновление, после которого это произошло, было просто обновлением (без новой установки) версии 2.6.32-26 . Так что я думаю, это как-то связано с последним обновлением этой версии ядра.
crodjer
Почему бы вам не попробовать выполнить загрузку с живого компакт-диска и переустановить это ядро ​​или последнюю версию 2.6.35-23?
Павлос Г.
ага ..... в настоящее время делаю живую флешку
crodjer
Установка старого ядра тоже не сработала .... проблема, похоже, не из-за обновления ядра.
crodjer
Можете ли вы попробовать запустить bootsinfoscript ( sourceforge.net/projects/bootinfoscript ) и вставить результаты здесь?
Павлос Г.
1

Я понятия не имею, что может вызвать это, но в качестве решения вы можете попробовать переустановить только Grub. Я думаю, что это решит вашу проблему.

binW
источник
1
Я сделал chroot и попробовал это тоже, но не сработало ... наконец я переустановил дистрибутив.
crodjer
1

Эта проблема появилась для меня после установки libuuid. Мне удалось исправить это вручную, и теперь он загружается нормально, но каждый раз, когда он все еще показывает ошибки об отсутствии blkid. Кроме того, сбой загрузки снова появляется после обновлений, которые требуют перезагрузки.

Идентификатор UUID указан /proc/cmdlineправильно, однако система не может его распознать.

RocketR
источник
1

Как исправить ошибку Ubuntu: " No init found. Try passing init= bootarg"

Сегодня утром ко мне пришел друг со своим ноутбуком, который не загружается. При каждой попытке загрузки его система Ubuntu 10.04 Lucid Lynx выдает следующие сообщения об ошибках:

mount: mounting /dev/disk/by-uuid/***************************** on /root
failed: Invalid argument
mount: mounting /sys on /root/sys failed: 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
Target file system doesn't have /sbin/init
No init found. Try passing init= bootarg



Busybox v1.13.3 (Ubuntu 1:1.13.3-1ubuntu7) built-in shell (ash)
Enter 'help' for a list of built-in commands
(initramfs) _

Booting into "Recovery Mode" as well as choosing the other kernels listed in grub didn't help at all.

Решение:

  1. Загрузка с Ubuntu Live CD;

  2. Открыть / запустить терминал;

  3. Введите: sudo fdisk -l(чтобы получить имя устройства), затем нажмите ENTER;

    Диск / dev / sda: 250,1 ГБ, 250059350016 байт, 255 головок, 63 сектора / дорожка, 30401 цилиндров. Единицы = цилиндры по 16065 * 512 = 8225280 байт. Идентификатор диска: * ***

    Идентификатор начальной и конечной блоков загрузки устройства Система / dev / sda1 * 1 30238 242886703+ 83 Linux / dev / sda2 30239 30401 1309297+ 5 Extended / dev / sda5 30239 30401 1309266 82 Linux swap / Solaris

Имя устройства для системы моего друга на основе выше: /dev/sda1

  1. Тип: sudo fsck /dev/sda1затем нажмите ENTER;

  2. Перезагрузите систему и загрузитесь нормально.

    • После исправления ноутбук загрузился нормально.
kalaitrigger
источник
1

Я видел ту же проблему - с дополнительной информацией, которая у меня есть б BLKID (и tune2fs) для проверки UUID, и это точное совпадение. В листинге / dev / disk / by-uuid также показан ожидаемый UUID. Привод отлично монтируется и в busybox. Все нормальные файлы, ожидаемые в [/ mnt] / boot /, присутствуют (для ядра 3.13.0-36).

Я получил компьютер для загрузки (изнутри busybox), изменив ссылку UUID / etc / fstab для корневого раздела на / dev / sda1 (измените в соответствии с вашими настройками). Однако я не уверен, что этот шаг важен, поскольку сам по себе он не имеет значения. Что сделал при следующей перезагрузке, сидя в grub, нажав «e», чтобы отредактировать загрузку Ubuntu по умолчанию, и удалив всю конструкцию «if ... fi», и заменив UUID = строки linux на / dev / sda1. Такой подход позволил компьютеру полностью загрузиться.

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

Алекс Норт-Киз
источник
0

Перепробовал все ответы, но не смог решить, так что, наконец, пришлось переустановить Ubuntu :(.

Та же самая ошибка произошла и в моих друзьях, но ему тоже не повезло.

crodjer
источник
0

Я сам исправил это, отредактировав файл / etc / default / grub

GRUB_CMDLINE_LINUX=" rootdelay=3 "
GRUB_DISABLE_LINUX_UUID=true

Только с первым этого было недостаточно. Я даже попробовал 130, как указано ранее. Затем я отключил UUID второй командой. В любом случае это был корневой раздел LVM, поэтому данные UUID были бессмысленными.

Франческ Гуаш
источник
0

В моем случае:

ОС устанавливаются в ext4 с Ubuntu 14.04

но я нашел, когда я устанавливаю другой выпуск Ubuntu, как 10.04 после Ubuntu 10.04

А также скомпилируйте ядро ​​Ubuntu 10.04 и используйте dpkg для его установки.

ошибка появилась.

Наконец, проблема в grub.cfg.

Поскольку в Ubuntu 10.04 по умолчанию используется ext2 для ОС, поэтому initramfs будет загружать драйвер ext2, а не использовать драйвер ext4 ...

Поэтому замените ext2 на ext4 в grub.cfg, чтобы исправить это.

jackend
источник
0

у меня та же проблема в Ubuntu после нескольких часов поиска я только что понял, что grub пытается загрузить sdb5 и мой kali находится на sda5, так что загрузитесь с live cd и попробуйте смонтировать ваш linux os с помощью команды mkdir и mount, если она существует, попробуйте исправить grub с помощью удерживая Shift в нагрузке, нажмите e и измените root dev, и если он работает, сделайте его постоянным

user725770
источник
0

Это также может произойти, если вы клонировали раздел или, особенно, весь жесткий диск и таблицу разделов с помощью dd. Если это произошло, обычно fsck всех рассматриваемых разделов решит это.

Источник: http://realtechtalk.com/UbuntuDebianLinux_wont_boot_and_drops_to_Busybox_shell_after_cloning_HDD_with_dd-1978-articles

Ариб Су Ясир
источник
0

Помимо всех остальных ответов, попробуйте зайти в меню grub (нажмите SHIFT во время загрузки, чтобы перейти в расширенные настройки Ubuntu) и выбрать старое рабочее ядро. Конфигурация grub должна быть обновлена ​​после установки более новой версии ядра.

Adit Ya
источник
-3

Я просто пошел в режим восстановления. И выбрать что-то указываете обновление grub в меню. затем исправьте проблему.

zhankun
источник
/ dev / disk от uuid не существует. Я не вижу, как обновление grub решит эту проблему.
Старейшина Гик