お茶漬けぶろぐ

Ubuntu14.04から16.04に上げたら起動しなくなった

途中で変な状況になっているのを、考えるのが面倒になって強引に進めただけなんですけど。起動しなくなりました。

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-とかで調べましょう。

あとは再起動してやれば完了。

< Windows10で複数枚モニタの壁紙を設定する

Cinnamonクラッシュ対応しようとしたらArchLinuxごと起動しなくなった >