途中で変な状況になっているのを、考えるのが面倒になって強引に進めただけなんですけど。起動しなくなりました。
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
rootのファイルシステムが見えませんぜと言われている気がしたので、grubの設定が合わなくなったのかなと思って、grub-installとかやればいいのかな?と思ったはいいものの、マザーボードが古いのかなんなのか(2008年頃のものなので10年近く前か)USBキーボードをgrubメニューの間(後からわかったけど、カーネルが起きてくるまで?)認識してくれない。過去のカーネルで起動して作業しようと思ったけど、これじゃダメだ。Live環境が必要…
手元にあったUSBメモリに入っていたのはArchだったんだけど、強引にいけばイケるんじゃねっと思って強引に作業したら、grub shellに入るようになりました(状況悪化)
しょうがないので部屋のどこかにあるPS/2接続のキーボードをどうにか見つけて引っ張り出してきて、接続。grub shellから過去バージョンのカーネルで起動して、それからboot - Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) - Ask Ubuntuで「update-initramfsしろよな、それからupdate-grub2しろよな!」って書いてあったのでそれを実行。
[bash]
grub> set pager=1
grub> ls
(hd0) (hd0,msdos1) (hd0,msdos5)
grub> set root=(hd0,1)
grub> linux /boot/vmlinux-3.13.0-92-generic root=/dev/sda1
grub> initrd /boot/initrd.img-3.13.0-92-generic
grub> boot
[/bash]
ここまでで新しいカーネル4.4.0-47じゃなくて、正常に動作していた過去のカーネル3.13.0-92で起動できる。
頭のset pager=1で常にmoreみたいな状況にする。ちなみに、lsの結果のmsdos5がswap、msdos1がrootパーティション(/bootもこの中)。
最近/bootを分ける構成ばかりだったので、つまり/dev/sda1が/、/dev/sda5が/bootだと勘違いしていた。容量もそれぞれ600GBくらいと4GBくらい。4番目の操作で間違った入力、つまりroot=/dev/sda5していると、当然起動には失敗する。非常に簡単な対話式の操作画面に入った。これに気付くまで割りと困ってた。
なにはともあれ正しく過去バージョンのカーネルで起動したらログインして、terminalから以下のような感じ
[bash]
$ sudo update-initramfs -u -k 4.4.0-47-generic
$ sudo update-grub2
[/bash]
カーネルバージョンが不明の場合には、dpkg –list | grep linux-image-とかで調べましょう。 |
あとは再起動してやれば完了。