Паника в ядре после установки Gentoo – невозможно открыть корневое устройство

У меня есть система Debian на /dev/sda1 ( / ) и /dev/sda2 (extended, /dev/sda5 is /home , /dev/sda6 – своп). Я хочу установить Gentoo параллельно, поэтому я сжал sda2 и создал /dev/sda3 , в котором я установил Gentoo и /dev/sda4 , чтобы служить в качестве Gentoo /home :

 Disk /dev/sda: 931.5 GiB, 1000204885504 bytes, 1953525167 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xeb362e8f Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 29296639 29294592 14G 83 Linux /dev/sda2 29298686 1673951231 1644652546 784.2G 5 Extended /dev/sda3 1673951232 1735391231 61440000 29.3G 83 Linux /dev/sda4 1735391232 1953523711 218132480 104G 83 Linux /dev/sda5 29298688 35547135 6248448 3G 82 Linux swap / Solaris /dev/sda6 35549184 1673949183 1638400000 781.3G 83 Linux Partition table entries are not in disk order. 

Я пропустил раздел «загрузчик» руководства Gentoo, поскольку я хотел использовать мою текущую установку grub2 на /dev/sda1 , поэтому после завершения установки я загрузился в Debian и запустил update-grub , который успешно добавил Gentoo в меню. Однако при загрузке я получаю панику ядра и сообщение об этом не может открыть корневое устройство:

изображение сообщения о панике ядра

fstab для Debian и fstab для Gentoo. Я пробовал редактировать fstab Gentoo для использования UUID, таких как Debian, но безрезультатно. Я также попытался изменить параметры загрузки Gentoo в grub. Оригинал:

 ### BEGIN /etc/grub.d/30_os-prober ### menuentry 'Gentoo Base System release 2.2 (on /dev/sda3)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-1c46e4aa-e486-48ba-8f61-1484ed899e1e' { insmod part_msdos insmod ext2 set root='hd0,msdos3' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//sas/disk@0,msdos3' --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 1c46e4aa-e486-48ba-8f61-1484ed899e1e else search --no-floppy --fs-uuid --set=root 1c46e4aa-e486-48ba-8f61-1484ed899e1e fi linux /boot/vmlinuz-4.1.12-gentoo root=/dev/sda3 } submenu 'Advanced options for Gentoo Base System release 2.2 (on /dev/sda3)' $menuentry_id_option 'osprober-gnulinux-advanced-1c46e4aa-e486-48ba-8f61-1484ed899e1e' { menuentry 'Gentoo Base System release 2.2 (on /dev/sda3)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-4.1.12-gentoo--1c46e4aa-e486-48ba-8f61-1484ed899e1e' { insmod part_msdos insmod ext2 set root='hd0,msdos3' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//sas/disk@0,msdos3' --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 1c46e4aa-e486-48ba-8f61-1484ed899e1e else search --no-floppy --fs-uuid --set=root 1c46e4aa-e486-48ba-8f61-1484ed899e1e fi linux /boot/vmlinuz-4.1.12-gentoo root=/dev/sda3 } } ### END /etc/grub.d/30_os-prober ### 

Я попытался использовать set root="/dev/sda3" и set root="sda3" но, честно говоря, я понятия не имею, что это значит, это просто похоже на сообщение о панике (я полный noob, когда дело доходит до загрузчиков и сортировка). Итак, что здесь происходит и как мне продолжать? Стоит упомянуть, что я загружаюсь с внешнего жесткого диска ( /dev/sda ), подключенного через USB (мой внутренний пошел kaput). Установка Gentoo прошла без каких-либо ошибок / предупреждений, и я не думаю, что забыл скомпилировать что-либо в ядро, но я думаю, что это возможно … Поддержка ext4, SCSI и USB. Я уверен, что был включен (не как модуль).

  • Разрешение Slackware Console при двойной загрузке с GRUB2 другого дистрибутива?
  • Не удается установить Linux, потому что клавиатура / мышь не работает
  • ntldr.mod отсутствует в GRUB2
  • Как сконфигурировать имя устройства для шифрования корневого раздела с Grub2?
  • Fedora 23 больше не загружается (GRUB: поддерживается минимальное редактирование строк в формате BASH).
  • Экран меню редактирования Grub
  • Установщик Qubes не загружается
  • Система не будет загружаться, потому что загрузочный раздел отсутствует?
  • 4 Solutions collect form web for “Паника в ядре после установки Gentoo – невозможно открыть корневое устройство”

    Похоже, что у вас нет драйверов SATA, скомпилированных в ядро ​​Gentoo (или скомпилированных в виде модуля). Линия, которая меня интересует, примерно на полпути вниз по экрану, которую вы прикрепили, где она читает:

    Приложите правильную опцию «root =»; вот доступные разделы:

    но не содержит доступных разделов. Для меня это крики Gentoo, которые вообще не могут общаться с физическим диском. Если вы не знаете, какой контроллер SATA вы обнаружите, запустив lshw в Debian. Это скажет вам не только то, что карта, но и какой драйвер ядра (ищите строку «configuration: driver =» в разделе SATA), поэтому вы можете добавить его в ваше ядро ​​Gentoo.

    Как предлагает Дэвид Кинг, виновник, скорее всего, является недостающим драйвером ядра. Ниже приведен список параметров ядра, необходимых для работы массового хранилища usb. Постарайтесь, чтобы chroot в систему gentoo из gentoo livecd (как вы, наверное, знаете, это подробно описано в Справочнике Gentoo) . Там вы можете перенастроить и перекомпилировать ядро (это очень хорошо описано в руководстве Gentoo) . Если вы создали initramfs, не забудьте его воссоздать, потому что иначе скомпилированное ядро ​​и драйверы не будут доступны во время загрузки.

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

    Ваша конфигурация grub не указывает на загрузку initramfs.

    Хотя я не могу вам посоветовать по спецификациям gentoo, я надеюсь, что система Debian, которую я использую, может быть достаточно подобрана, чтобы помочь вам найти правильный ответ. В Debian скрипты initramfs остановят процесс загрузки до тех пор, пока не будет установлено необходимое блочное устройство.

    В лучшем случае из моего knowldege, в Debian, один из основных сценариев initramfs / scripts / local имеет логику, необходимую для запуска udev и ожидания перезаписи корневого устройства. В частности, я имею в виду функцию local_device_setup ().

    См. Здесь, строка 68: https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/tree/scripts/local

    Я полагаю, что у gentoo есть аналогичная система?

    Удачи!

    Рассматривая конфигурацию вашего ядра, похоже, что вы включили все, что нужно для современной системы, без initrd, но вы используете более старый компьютер; Я заметил, что на вашем выходе lshw есть мост ISA и процессор Pentium M 1.4.

    Я предполагаю, что вам не хватает параметра PATA, такого как CONFIG_PATA_MPIIX или ATA_GENERIC или PATA_LEGACY, но вместо того, чтобы играть в игру угадывания, вот что я делаю:

    загрузите свою систему debian с подключенным USB-накопителем.
    lsmod
    Посмотрите, что вам нужно добавить в конфигурацию вашего ядра (= y), чтобы запустить его, или опубликовать вывод, и, возможно, мы сможем дать вам несколько советов.

    В качестве альтернативы используйте этот сайт, http://kmuto.jp/debian/hcl/ , и вставьте результаты:
    lspci -n

    Вот как я обычно настраиваю ядра в Gentoo:

    1. загрузите ArchLinux USB и lsmod
    2. скопируйте последнюю конфигурацию ядра из Slackware, например http://mirrors4.kernel.org/slackware/slackware64-current/source/k/config-x86_64/config-generic-4.1.15.x64

      Slackware похож на Gentoo, поскольку ни один из них не использует systemd (Gentoo по умолчанию не используется), они используют версии ядра с длительным сроком выпуска, и мне повезло с их конфигурациями. Generic – это тот, который строит все, что, по их мнению, вам понадобится как = y и необязательный материал, как = m, огромный построит все как = y (что почти гарантированно работает, но дает вам очень раздутое ядро).

    3. сделать oldconfig
    4. Установите EXT4 = y и любые другие модули файловой системы (по какой-то причине Slackware не всегда активирует его).
    5. Убедитесь, что у вас установлены модули = y в руководстве по настройке ядра Gentoo
    6. Установите любые модули из lsmod = y, кроме модулей ALSA и Wifi.
    7. Выберите правильный тип процессора в Тип процессора и Функции-> Семейство процессоров
    8. Закончите установку.

    Если это все еще не работает, я думаю, что диск – это захват / dev / sda в Debian, но что-то еще (/ dev / sdb возможно) в Gentoo. Самый простой способ исправить это – использовать UUID = в / etc / fstab и PARTUUID = в загрузчике args вы переходите к ядру. Вы можете найти PARTUUID из вывода blkid.

    Interesting Posts

    Можно ли конвертировать аудио в midi с оболочкой?

    Серия вопросов по скриптам ebuild. Учитывая исходный отрывок и вопросы

    Разрешения / dev / shm и / dev / mqueue

    Скрипты для отправки мне по электронной почте файла

    полностью игнорировать строки, начинающиеся с определенного шаблона

    Как использовать USB-адаптер INSIGNIA USB на Debain (Kali Linux)?

    Открытие нескольких разделенных окон с помощью экрана GNU с одним сценарием bash

    Скрипт скрипта (любой другой язык скрипта, если у вас есть идея)

    Удалите сразу несколько файлов с определенным форматированием

    Напишите программу, которая читает из файла и печатает строку с номером строки

    Что именно происходит, когда я запускаю файл в своей оболочке?

    Multitail: прокрутка вверх

    Могут ли пользователи в группе получить доступ к файлу, находящемуся в домашнем каталоге другого пользователя?

    VNC – Слишком много ошибок аутентификации

    LFTP –exclude предотвращает создание файла журнала

    Linux и Unix - лучшая ОС в мире.