Ich muss einen Kernel-Patch installieren und mache mich deshalb daran, einen Kernel zu erstellen. Zuerst hole ich mir den Quellcode und erstelle Abhängigkeiten mit
# apt-get source linux-image-`uname -r`
# apt-get build-dep linux-image-`uname -r`
Ich habe das Quellverzeichnis betreten, meinen Patch angewendet, dann die aktuelle Kernelkonfiguration heruntergeladen und den Build mit
# cp -vi /boot/config-`uname -r` .config
# make-kpkg --initrd --append-to-version=-test kernel-image kernel-headers
Schließlich habe ich den neu erstellten Kernel aus den in ../ erstellten DEBs installiert
# 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
Beim Neustart fand ich meinen Kernel im Grub-Menü, aber beim Versuch, ihn zu booten, endete ich mit
Gave up waiting for root device
...
ALERT! /dev/disk/by-uuid/[my-correct-disk-uuid-here] does not exist.
In der resultierenden BusyBox-Eingabeaufforderung habe ich versucht, in /dev/ nachzuschauen, und es sind keine Festplattenlaufwerke vorhanden, was darauf hindeutet, dass das Kernelmodul für meinen Festplattencontroller nicht geladen wurde (es befindet sich nicht in /proc/modules). Wie kann das aber sein, wenn ich dieselbe Kernelversion verwendet habe, die ich gerade verwende, während ich dies schreibe - undmit der gleichen Konfiguration? Das Erstellen von Kerneln ist für mich weder eine tägliche Tätigkeit noch ein Vergnügen, daher wäre ich für jede Hilfe dankbar.
Bearbeiten:Ich sollte hinzufügen, dass ich versucht habe, die Syntax /dev/sd** root=
in der Grub-Befehlszeile zu verwenden, mit demselben Ergebnis. Es liegt also nicht daran, dass die UUID-Suche fehlschlägt; der Festplattencontroller existiert nicht einmal. Falls es relevant ist, die Maschine ist ein Thinkpad X32 mit Intels 855PM-Chipsatz (PATA-Festplatte).
Antwort1
Aufgrund des UUID-Fehlers halte ich es nun für notwendig, die Informationen in /etc/fstab zu überprüfen, da von dort die Dateisysteminformationen (UUID) gemountet werden.
Booten Sie zunächst in einen älteren Kernel oder eine Live-Disk-Sitzung.
Führen Sie den folgenden Befehl aus, um die UUID für Ihre Root-Partition zu finden.
sudo blkid -o list
Die Ausgabe sollte diesem Beispiel ähneln:
/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
Verwenden Sie nun „nano“, „vi“, „gedit“, „mousepad“ oder Ihren bevorzugten Texteditor, um die aufgeführte UUID für Ihre Root-Partition in /etc/fstab zu bearbeiten oder zu bestätigen. Für dieses Beispiel verwende ich nano:
sudo nano /etc/fstab
Nach unseren Informationen sollten unsere /etc/fstab-Informationen ungefähr so aussehen, vorausgesetzt, Sie verwenden ein unverschlüsseltes Einzelpartitions-Setup, das unter " / " gemountet ist:
# / 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
Wenn die Angaben in /etc/fstab falsch waren und Sie diese Angaben entsprechend aktualisiert haben,alles was Sie jetzt tun müssen, ist neu zu startenweil /etc/fstab nach Grub geladen wird und nicht direkt mit der Konfiguration Ihres initrd.img verknüpft ist.
(Das System liest die Informationen in /etc/fstab und lädt von dort automatisch die richtigen Partitionen.)
Wenn das Ihr Problem nicht behebt oder die Informationen in /etc/fstab korrekt sind, müssen Sie möglicherweise Folgendes ausführen:
sudo update-initramfs -v -c -k all
Möglicherweise möchten Sie "alle" durch eine bestimmte Kernelversion ersetzenwenn Sie nicht alle vorhandenen Initrd-Images aktualisieren möchten (auf diese Weise können Sie nur das Image aktualisieren, das nicht bootet). Weitere Informationen finden Sie hier:https://stackoverflow.com/questions/9645073/wie-erstelle-man-ein-initrd-img-in-ubuntu
Wenn alles gut geht, vergessen Sie nicht, Folgendes auszuführen:
sudo update-grub2
bevor Sie neu starten.
Bitte posten Sie etwaige Fehler.