ビルドされたカーネルが起動しません。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にはありません)。しかし、これを入力しているときに実行しているのと同じカーネルバージョンを使用しているのに、なぜこのようなことが起こるのでしょうか。同じ構成で? カーネルの構築は、私が日常的に行うものではなく、また楽しみのために行うものでもありませんので、この点についてご助力いただければ幸いです。

編集:Grub コマンドラインで /dev/sd** 構文を使用してみましたがroot=、結果は同じでした。つまり、UUID ルックアップが失敗しているわけではなく、ディスク コントローラが存在しないのです。参考までに、このマシンは Intel の 855PM チップセット (PATA HDD) を搭載した Thinkpad X32 です。

答え1

さて、UUID エラーのため、ファイル システム情報 (UUID) がマウントされる場所である /etc/fstab の情報を確認する必要があると感じています。

まず、古いカーネルまたはライブディスク セッションで起動します。

ルート パーティションの 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」など、お気に入りのテキスト エディターを使用して、/etc/fstab 内のルート パーティションにリストされている UUID を編集または確認します。この例では、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

「all」を特定のカーネルバージョンに置き換えることもできます既存の initrd イメージをすべて更新したくない場合は (この方法では起動しないイメージだけを更新できます)、詳細についてはここを参照してください。https://stackoverflow.com/questions/9645073/how-to-make-an-initrd-img-in-ubuntu

すべてがうまくいったら、以下を忘れずに実行してください:

sudo update-grub2

再起動する前に。

間違いがあれば投稿してください。

関連情報