banner
三文字

方寸之间

居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
github
email
mastodon
website

Arch Linuxのカーネルの欠落問題を修正する

起因#

朝、コンピュータを開いて、久しぶりにシステムを更新しようと Terminal を開いた。更新が久しぶりだったので、更新するパッケージがたくさんあったので、更新中にブラウザを開いて他のことをしようとしたら、2 分も経たないうちに突然画面が真っ暗になった... 何の反応もなく、ただコンピュータが動いている音が聞こえるだけだったので、特に考えずに強制的にシャットダウンした。結果、再起動して、grub 画面に入ったら、何も動かなくなった(通常は 5 秒で自動選択される)。手動で選択すると、次のようなメッセージが表示される:

Loading kernel linux-zen
error: file '/boot/vmlinuz-linux-zen' not found
Loading initial ramdisk
error: you need to load the kernel first
Press any key to continue...

おそらく、カーネルを更新する際にコンピュータが強制的にシャットダウンされ、カーネルに問題が発生したと思われる。Arch Linux BBS でいくつかの解決策を見つけたので、ここに記録しておく。

Note

私はlinux-zenカーネルを使用しているので、後の関連する内容には-zenの接尾辞が付いています。自分の設定に応じて変更してください。通常、インストールされるのはlinuxカーネルですので、-zenの接尾辞を削除してください。

解決策#

Arch Linux インストールメディアの使用#

  1. ライブ環境に入った後、ネットワークに接続します。私は iwd を使用しています。
[root@archiso]# iwctl
[iwd]# station wlan0 connect wifi-ssid # 指定のWi-Fiに接続
[iwd]# station wlan0 show # 接続が成功したか確認
[iwd]# exit
  1. /bootパーティションをマウントします。
mount /dev/sdaX /mnt
mount /dev/sdaY /mnt/boot
  1. システムに chroot し、カーネルを再インストールします。
arch-chroot /mnt
pacman -S linux-zen
  1. grub ブートローダを再生成します。
grub-mkconfig -o /boot/grub/grug.cfg
  1. パーティションのアンマウントを解除し、再起動します。
exit
umount -R /mnt
reboot

起動後、システムに正常に入ることができます。

grub コマンドライン#

この方法は上記の方法と似ていますが、インストールメディアを使用しないで行います。

/パーティションの位置を確認する#

  1. lsコマンドを使用してコンピュータ上のすべてのハードディスクをリストアップします。以下のような出力が表示されます:
grub>ls
(hd0) (hd0, gpt1) ...... (hd1, gpt4)
  1. /パーティションを確認します。catまたはlsコマンド +Tabを使用してテストできます。例:
grub>ls (hd0,gpt3)/ TAB
boot usr ....

上記の出力から、(hd0,gpt3)/パーティションであることがわかります。

カーネルを手動でロードする#

  1. ルートパーティションと grub のプレフィックスパスを設定します。(hd0,gpt3)がルートパーティションであると仮定します:
grub>set root=(hd0,gpt3)
grub>set prefix=(hd0,gpt3)/boot/grub
  1. カーネルとシステムイメージをロードします。
grub>cat (hd0,gpt3)/boot/grub/grub.cfg # `/`パーティションのデバイス名を確認します。例えば、`/dev/sda3`とします。
grub>linux /boot/vmlinuz-linux-zen root=/dev/sda3
grub>initrd /boot/initrd-linux-zen.img
  1. システムを起動します。
grub>boot
  1. grub を再設定します。
    起動後、第一の方法の 2、4、5 の手順に従って、コマンドラインで grub.cfg ファイルを再生成します。

参考リンク#

https://bbs.archlinux.org/viewtopic.php?id=274616

https://wiki.archlinux.org/title/GRUB#Using_the_command_shell

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。