2018年5月6日日曜日

Running /scripts/local-block ... 起動しない

どうもinitrdの中でこけているっぽい。たぶん/dev/sdxが変わって何かを見つけられないのだと思う。grub.cfgをいじって/dev/sdxを変えてみたが解決しない。どうもgrubがブートするときの/dev/sdxの振り方と、kernelがロードされた後の/dev/sdxの振り方が変わるみたいだ。なぜこんな面倒なことに?連休で時間あるからいいけど。

First You have to get the UUID of your swap partition using the command "blkid"
Second edit the file in /etc/initramfs-tools/conf.d
       set RESUME=UUID=your swap partition UUID
Third run the command "update-initramfs -u"

を参考にswapパーティションをUUIDで指し示したけどダメ。どうも見つけられていないのはswapではなくてrootパーティションみたい。rootもUUIDで指し示しているのだけど、なぜダメなんだ?ブートの過程でディスクを探すとき昔風の/dev/sdxで探すのと、UUIDで探すのが混在している。これは困った。

IBMのわかりやすいネット文書を熟読し、grub/grub2については理解できた。しかし、/dev/sdxが変化する理由はわからない。別のパーティションに入れたubuntuはそんなことはない。そのubuntuで問題のlinuxの/boot/grub/grub.cfgをいじったり、grub-mkconfigをしたりすること約半日、まったくうまく行かない。

そこでSuper Grub2 Diskを使ってみた。22MBほどのブートイメージなのでフロッピーディスクには入らない。CD-RかUSBメモリに入れてから使う。これを使うと、HDDのブートできそうなエントリーを全て探してくれて(update-grubみたいなことをする)、それらのブートを試行できる。これで起動しないlinuxのエントリーを特定し、ブートさせてみた。そしたら立ち上がった。やれやれ。相変わらず/dev/sdxの振り方は変なままだ。HDDが2台しか積んでないマシンだからsdaとsdbになるのが普通なのに、どういうわけかsdcとsddになっている。まあ立ち上がったのだから良い。この状態で
grub-mkconfig -o /boot/grub/grub.cfg
をやって、ブートローダーをPBRに書き込む。
grub-install /dev/sdd4
ここでまたエラーが出た。
warning: File system `ext2' doesn't support embedding. filesystem  doesn't support blocklists.
みたいな。PBRに書き込むにはブートローダー大きすぎるのか?調べると
Redhatのフォーラムにいろいろ書いてあった。気にしなくてよいとのこと。そこで
grub-install --force /dev/sdd4
これでやっとブートローダーが書き込めた。
マシンのブートはチェーンブートができるMBMを使っているので、それで/dev/sdb4(MBMにはsdaとsdbしかない)を指定すると無事にilnuxが起動した。ああ、疲れた。まる一日かかったよ。

0 件のコメント:

コメントを投稿