Сдался в ожидании корневого устройства в Ubuntu

Вопрос или проблема

Я только что установил Ubuntu 12.10 для двойной загрузки с Windows 8, но всякий раз, когда я выбираю Ubuntu из меню grub, он всегда зависает с этой ошибкой и не загружается:

Сдался, ожидая корневое устройство. Общие проблемы:
 - Аргументы загрузки (cat /proc/cmdline)
   - Проверьте rootdelay= (достаточно ли долго система ждала?)
   - Проверьте root= (ожидала ли система правильное устройство?)
 - Отсутствующие модули (cat /proc/modules; ls /dev)
ALERT! /dev/disk/by-uuid/920903aa-762f-40d2-8126-87f4b0e6f975 не существует. Переход к оболочке!

BusyBox v1.19.3 (Ubuntu 1:1.10.3-7ubuntu1.1) встроенная оболочка (ash)
Введите 'help' для списка встроенных команд.
(initramfs)

Я пытался воспользоваться boot-repair, но это не помогло, вот лог, который был сгенерирован.

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

Я решил эту проблему, следуя этой ссылке на Stack Exchange:

“Ошибка initramfs” при загрузке ТОЛЬКО на Dell XPS 13 (нормально загружается на другом компьютере)

Решение такое:

  • Перезагрузить.
  • Нажать F12 и зайти в настройки BIOS.
  • Конфигурация системы → Операции SATA
  • Сменить RAID на AHCI

Если вы установили Ubuntu Desktop на раздел/жесткий диск, который является частью массива RAID, или на зашифрованный диск, или на Windows ME, это, скорее всего, приведет к неудаче при загрузке. Установка Ubuntu Desktop на один из этих источников не поддерживается.

Если вы уже установили Ubuntu Desktop на один из вышеперечисленных источников, и он не загружается:

  1. Удалите Ubuntu.
  2. Установите Ubuntu на жесткий диск или раздел, который не является частью массива RAID, не зашифрован и не на Windows ME, и он должен нормально загрузиться.

У меня также возникла та же проблема, но я смог ее решить, используя следующую ссылку

http://blog.wittchen.biz.pl/ubuntu-system-boot-problem/

Попытка #1

Сначала я попытался изменить rootdelay, как сказано в сообщении об ошибке. Я открыл файл /etc/default/grub
Нашел там следующую строку:
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
и изменил ее на:
GRUB_CMDLINE_LINUX_DEFAULT=”rootdelay=90 quiet splash”
rootdelay увеличился, но, к сожалению, это не решило проблему в моем случае.

Попытка #2

Я отредактировал файл /etc/fstab. Я выполнил следующую команду в терминале: sudo gedit /etc/fstab и отредактировал файл fstab в gedit. Вначале мой файл выглядел так:

# /etc/fstab: статическая информация о файловой системе.
#
# Используйте 'blkid', чтобы напечатать универсальный уникальный идентификатор для
# устройства; это может быть использовано с UUID= как более надежный способ именовать устройства,
# который работает даже если диски добавляются и удаляются. См. fstab(5).
#
# <файловая система> <точка монтирования>   <тип>  <опции>       <даун>  <проход>
# / был на /dev/sda1 во время установки
UUID=96889309-5f73-4688-8354-e64cd1bb158f /               ext4    errors=remount-ro 0       1
# swap был на /dev/sda5 во время установки
UUID=480cc3f7-a39d-4d0f-93d5-49fc8df1a392 none            swap    sw              0       0

Затем я закомментировал одну строку и добавил другую, описывающую устройство диска /dev/sda1. Теперь мой файл выглядит следующим образом:

# /etc/fstab: статическая информация о файловой системе.
#
# Используйте 'blkid', чтобы напечатать универсальный уникальный идентификатор для
# устройства; это может быть использовано с UUID= как более надежный способ именовать устройства,
# который работает даже если диски добавляются и удаляются. См. fstab(5).
#
# <файловая система> <точка монтирования>   <тип>  <опции>       <даун>  <проход>
# / был на /dev/sda1 во время установки
UUID=/dev/sda1  /               ext4    errors=remount-ro 0       1
# UUID=96889309-5f73-4688-8354-e64cd1bb158f /               ext4    errors=remount-ro 0       1
# swap был на /dev/sda5 во время установки
UUID=480cc3f7-a39d-4d0f-93d5-49fc8df1a392 none            swap    sw              0       0

Проблема все еще существовала, поэтому я попробовал еще одну попытку решить ее.

Попытка #3

Я открыл терминал и набрал следующую команду:

sudo grub-install /dev/sda

а затем я ввел другую команду для обновления grub:

sudo update-grub

После всего этого я перезагрузил компьютер, и, наконец, ошибка исчезла, и проблема была решена!

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

Я переживал по поводу проблемы, так как на сервере почты также находились данные.

Я погуглил и попробовал все возможные варианты, такие как:

1. Загрузка с живого CD
2. Выполнение fsck для корневого раздела и /boot
3. grub-install на /dev/sda (что является корневой файловой системой по умолчанию)
4. Проверка fstab

И следующее решение сделало меня счастливым, так как сервер загрузился.

–> обратите внимание, в моем случае загрузка монтирована на /boot, что является /dev/sda3, в то время как /dev/sda1
/ файловая система.

Простое решение для исправления проблемы (но нужно учитывать все модули, установленные на уровне ядра)

  1. скопировать /boot с другого сервера, полное /boot, исключая grub.cfg, на внешний флеш-накопитель

  2. загрузиться с живого CD

  3. узнать корневую файловую систему с помощью следующей команды
    fdisk -l /dev/sda

  4. смонтировать / файловую систему на /mnt
    mount /dev/sdXY /mnt

  5. создать каталог для монтирования внешних данных
    mkdir -p /mnt/pd

  6. смонтировать данные флеш-накопителя на /mnt/pd

  7. теперь пришло время внести изменения в корневую файловую систему с помощью команды chroot (будьте осторожны при внесении изменений)

  8. chroot /mnt

  9. теперь копировать все /mnt/pd/boot/ в /mnt

  10. exit

  11. теперь размонтируем /mnt/pd

  12. создайте новую папку mkdir -p /mnt/test

  13. смонтируйте /boot на /mnt/test

    mount /dev/sdXY /mnt/test

  14. теперь /boot смонтирован на /mnt/test/

  15. снова сделайте chroot /mnt

  16. переименовать все файлы, которые содержат /mnt/test/

  17. теперь скопировать /mnt/boot (который мы скопировали с pd) в /mnt/test/

  18. убедитесь, что вы используете оригинальный grub.cfg /mnt/test/boot/grub/grub.cfg

  19. exit

  20. reboot

  21. вы успешно загрузитесь на сервер без каких-либо проблем.

Я столкнулся с той же проблемой, только без строки ошибки

- Проверьте root= (ожидала ли система правильное устройство?)

я просто использовал систему Ubuntu вчера и столкнулся с этой проблемой сегодня утром. Ноутбук с двойной системой (Ubuntu и Win), и загрузчик мог позволить мне выбрать, какую систему использовать. Поэтому я попытался выбрать другое ядро Linux, чтобы избежать этой проблемы.
Ядро, версия которого не сработала:
6.8.0-40-generic.
После смены версии ядра с вышеуказанной на 6.5.0-44-generic, ноутбук заработал 🙂

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

  • Перейдите в меню GRUB

  • Выберите “Дополнительные параметры для Ubuntu”

  • Выберите более раннюю версию с режимом восстановления

  • Из списка выберите “dpkg”

    Изображение списка меню восстановления

Подождите немного—это займет некоторое время, и могут появиться подсказки. Вам будет предложено выбрать версию файла конфигурации.

Когда вы закончите, вы должны иметь возможность получить доступ к вашему рабочему столу. Затем выполните команду sudo dpgk --configure -a.
Теперь вы можете снова обновить вашу Ubuntu.

Я просто начал беспорядочно набирать текст… попробуйте:

(initramfs) blkid
(initramfs) blockdev --rereadpt /dev/sda
(initramfs) blkid
(initramfs) exit

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

После многочисленных попыток я, наконец, справился:

Я загрузился с USB, чтобы исправить проблему, где я обнаружил, что update-grub завершился с ошибкой “не удалось найти канонический путь в cow…”

Затем я долго пытался и нашел это:

https://askubuntu.com/a/772892/925082

где я следовал второму способу, заменив его sda5 на мой sdb6 в качестве корня

Ответ или решение

При возникновении ошибки "Gave up waiting for root device" в Ubuntu, как правило, это связано с проблемами обнаружения корневого устройства (root device) во время загрузки. Ваша проблема может возникнуть по нескольким причинам, включая неправильные настройки в файле GRUB или несуществующий UUID устройства. Вот подробный подход к решению данной проблемы:

Шаги для устранения ошибки "Gave up waiting for root device"

  1. Проверка BIOS/UEFI:

    • Перезагрузите компьютер и нажмите клавишу F12 (или другую, в зависимости от вашего устройства) для доступа к BIOS/UEFI.
    • Откройте настройки конфигурации системы и проверьте раздел, связанный с операциями SATA. Убедитесь, что режим работы SATA установлен на AHCI, а не на RAID. Это часто решает подобные ошибки.
  2. Использование Live USB:

    • Загрузитесь с Live USB/DVD с Ubuntu.
    • Откройте терминал и выполните команду для проверки состояния вашего корневого раздела:
      sudo fdisk -l
    • Найдите ваш корневой раздел (например, /dev/sda1).
  3. Проверка файловой системы:

    • Запустите fsck для проверки целостности файловой системы:
      sudo fsck /dev/sdXY
    • Замените sdXY на ваш фактический корневой раздел.
  4. Исправление UUID:

    • Если ошибка указывает на отсутствие UUID, проверьте файл /etc/fstab на наличие правильных UUID для ваших разделов. Это можно сделать с помощью команд:
      ls -l /dev/disk/by-uuid/
    • Если UUID, указанный в /etc/fstab, не соответствует тому, что находит blkid, измените запись в /etc/fstab на правильный UUID.
  5. Обновление GRUB:

    • Установите GRUB на ваш основной диск:
      sudo grub-install /dev/sda
    • Обновите конфигурацию GRUB:
      sudo update-grub
  6. Изменение параметров загрузки в GRUB:

    • Откройте файл /etc/default/grub:
      sudo gedit /etc/default/grub
    • Найдите строку:
      GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    • Измените ее на:
      GRUB_CMDLINE_LINUX_DEFAULT="rootdelay=90 quiet splash"
    • Сохраните изменения и затем выполните команду sudo update-grub.
  7. Проверка загрузки с других ядер:

    • В меню GRUB выберите "Дополнительные параметры Ubuntu" и попробуйте загрузиться с другого ядра, например, с более старой версии.
  8. Переустановка или откат обновлений:

    • Если вы сделали обновления перед возникновением проблемы, попробуйте восстановить последние обновления:
      • Загрузитесь в режиме восстановления (Recovery Mode) и выберите опцию для восстановления пакетов.
  9. Кроме того, вы можете попробовать выполнить команды на уровне initramfs:

    • Если вы попали в initramfs, попробуйте выполнить:
      blkid
      blockdev --rereadpt /dev/sda
    • После этого введите exit, чтобы попытаться продолжить загрузку.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...