Собранное ядро ​​не загружается, отсутствует драйвер AHCI?

Собранное ядро ​​не загружается, отсутствует драйвер AHCI?

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

# apt-get source linux-image-`uname -r`
# apt-get build-dep linux-image-`uname -r`

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

# cp -vi /boot/config-`uname -r` .config
# make-kpkg --initrd --append-to-version=-test kernel-image kernel-headers

Наконец я установил новое ядро ​​из DEB-файлов, созданных в ../

# dpkg -i linux-image-3.13.11.4-test_3.13.11.4-test-10.00.Custom_i386.deb
# dpkg -i linux-headers-3.13.11.4-test_3.13.11.4-test-10.00.Custom_i386.deb

При перезагрузке я нашел свое ядро ​​в меню Grub, но попытка загрузить его закончилась с

Gave up waiting for root device
...
ALERT! /dev/disk/by-uuid/[my-correct-disk-uuid-here] does not exist.

В ответ на приглашение BusyBox я попытался посмотреть в /dev/, но там нет никаких дисководов, что, похоже, указывает на то, что модуль ядра для моего контроллера диска не загружен (его нет в /proc/modules). Как это может быть, если я использовал ту же версию ядра, которую я запускаю, когда печатаю это - ис той же конфигурацией? Сборка ядер — это не то, чем я занимаюсь ежедневно и для удовольствия, поэтому я был бы признателен за любую помощь в этом вопросе.

Редактировать:Добавлю, что я пробовал использовать синтаксис /dev/sd** root=в командной строке Grub, с тем же результатом. Так что дело не в том, что поиск UUID не удается; контроллер диска вообще не существует. Если это имеет значение, машина — Thinkpad X32 с чипсетом Intel 855PM (PATA HDD).

решение1

Теперь, из-за ошибки UUID, я считаю необходимым проверить информацию в /etc/fstab, поскольку именно оттуда монтируется информация о файловой системе (UUID).

Сначала загрузитесь со старым ядром или сеансом живого диска.

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

sudo blkid -o list

Вывод должен быть похож на этот пример:

/dev/sda1      ext4     home      /                 bac7229a-e019-5679-931d-5e14f15ff4bc 
/dev/sda2      ntfs     c         (not mounted)     40Ajghyr-65uB-EA5C-7y8y9t6g54j5
/dev/sda3      ext4               (not mounted)     640565a9-310b-5d6r-8d8v7-e887do893f80
/dev/sda5      ext4               (not mounted)     e777547b-3a3a-7tgd-9a12-2769wsrbd92
/dev/sda6      swap               <swap>            d72b694e-4976-3333-hso5-7894e6s9d2

Теперь используйте 'nano', 'vi', 'gedit', 'mousepad' или любой другой ваш любимый текстовый редактор, чтобы отредактировать или подтвердить указанный UUID для вашего корневого раздела в /etc/fstab. Для этого примера я буду использовать nano:

sudo nano /etc/fstab

Теперь, согласно нашей информации, наша информация /etc/fstab должна выглядеть примерно так, если вы используете незашифрованную настройку с одним разделом, смонтированную в " / ":

# / was on /dev/sda1 during installation
UUID=bac7229a-e019-5679-931d-5e14f15ff4bc /         ext4    errors=remount-ro 0       1
# swap was on /dev/sda6 during installation
UUID=d72b694e-4976-3333-hso5-7894e6s9d2 none        swap    sw              0       0

Если информация в /etc/fstab была неверной и вы обновили ее соответствующим образом,все, что вам нужно сделать сейчас, это перезагрузитьсяпотому что /etc/fstab загружается после grub и не связан напрямую с конфигурацией вашего initrd.img.

(Система прочитает информацию в /etc/fstab и автоматически загрузит оттуда нужные разделы)


Если это не решило проблему или информация в /etc/fstab верна, вам может потребоваться выполнить:

sudo update-initramfs -v -c -k all

Вы можете заменить «все» на конкретную версию ядра.если вы не хотите обновлять все существующие образы initrd (таким образом вы можете обновить только тот образ, который не будет загружаться). Подробнее см. здесь:https://stackoverflow.com/questions/9645073/how-to-make-an-initrd-img-in-ubuntu

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

sudo update-grub2

перед перезагрузкой.

Пожалуйста, укажите любые ошибки.

Связанный контент