LinuxカーネルGRUB/ブートに問題がありますか?

LinuxカーネルGRUB/ブートに問題がありますか?

以前のLinuxカーネルバージョンとのみ互換性のある特定のパッケージを使用しています。次のコマンドで以前のバージョンをインストールした後

$ sudo apt-get install linux-image-3.19.0-49-generic \
    linux-headers-3.19.0-49 linux-headers-3.19.0-49-generic

再起動しましたが、GRUB GUI画面を開くことができません。オンラインで確認した後、以下を発見しました。

数値を使用して選択する代わりに、GRUB_DEFAULT次の提案を使用しました。

GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.19.0-49-generic"

編集する前にバックアップを作成したことに注意してください/etc/default/grub。起動時に、今回はマシンが正しいカーネルで起動しますが、端末のように見えますが、キーボードは応答しません。これを見て、もともとカーネルに戻すことにしましたが、GRUB GUIにリストされていません(何らかの理由で今は機能したり、キーを十分に早く押すことはできません)。

代わりに、GUIにはUbuntuと高度なオプションしかありません。だから私は次のようなグラブプロンプトに入ることができました。

grub>

私はこれが古いカーネルを正しく起動するか、元のカーネルを起動する非常に簡単な修正でなければならないと思います。どちらかが機能します。

しかし、私はGRUBコマンドラインの経験や知識がまったくありません。どんな助けでも大変感謝します。

ベストアンサー1

個人的に grub.cfg ファイルの編集を開始する前に、GRUB コマンドラインから実行してみます。 CLIで実行すると、ファイルにどのような正しい設定を入れるべきかを知ることができます;-)

GRUBコマンドラインに最初に入力して、insmod ext2ext2ファイルシステムモジュールをインストールします。次のように入力すると、ls使用可能なパーティションとGRUBがそのパーティションに使用する名前(Linuxとは異なる)が表示されます。

この情報がある場合は、次のように入力します。

root=<insert GRUB path to /boot partition>
linux <insert path to relevant vmlinuz file> root=<insert Linux path to root partition> ro <insert any other kernel boot parameters you want>
initrd <insert path to initrd file>
boot

このカーネルを使用して起動する必要があります。たとえば、私のラップトップでは、次のように入力します。

root=(ahci0,gpt2)
linux /vmlinuz-4.13.1 root=/dev/sda4 ro
initrd /initrd.img-4.13.1
boot

その後、GRUBブートメニューに追加するには、grub.cfgファイルに次のコマンドを追加します。

(Ubuntuを使用しているのでinitrdを使用しているとします。)

おすすめ記事