お茶漬けぶろぐ

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

発端はCinnamonがクラッシュしたところ。Ctrl+Alt+F2でtty2に移動して$ cinnamonすると、libreadline.so.6が無いよ、と。

取り敢えず再起動しても状況は変わらない。そもそもCinnamonが起動しない。

インストールされているのはreadlineの7らへんだったので、cinnamonがまだ対応出来てないのかなと思って、じゃあreadlineを6系統にダウングレードすれば良いのでは、という強引な発想をした。

pacman -Rdd readlineしてローカルのパッケージキャッシュからインストール…

したら起動しなくなりました。てへぺろ。

GUIが、とかじゃなくて、そもそもログイン画面まで届かない(CUIなログイン画面にも届かない)。

しょうがないので、元に戻すことに。

Live環境からarch-chrootして、そこでpacman -S readlineしちゃえば良いのでは?

と思っていたのもつかの間、arch-chrootがlibreadline.so.7を要求していて出来ない。ただのchrootだとpacmanとか出来ない(/etc/mtabが無いよ、とか言ってくる)ので、arch-chrootがいいんだけど。

arch-chrootはシェルスクリプトなんですよ、というのをどこかで聞いた記憶があったので、じゃあそれの動作を一つ一つやればいいんちゃう?と思ったあたりで、archwikiを見に行くと、ズバリな記述を見つけたので、それを参考にchroot。chrootを使う - Change Root - ArchWiki

その後pacman -S readlineしたけれど、GPGME error: invalid crypto engineと怒られて出来なかった。–forceつけても変わらないので、もうめんどくさいので/etc/pacman.confでSigLevel=Neverにしてreadlineだけアップグレード、pacman.confもとに戻して、chroot抜けて再起動!

[bash]

mount /dev/sdb2 /mnt

mount /dev/sdb1 /mnt/boot

cd /mnt

mount -t proc proc proc/

mount –rbind /sys sys/

mount –rbind /dev dev/

mount –rbind /run run/

cp /etc/resolv.conf etc/resolv.conf

chroot /mnt

vi /etc/pacman.conf

pacman -S readline

vi /etc/pacman.conf

[/bash]

そしたら起動するようになった

この起動はゴールではなく、最初の状況に戻ってきたってことだ。

変わらずCinnamonはlibreadline.so.6を要求してクラッシュし続けるので、tty2に移動して、libreadline.soで検索、ダメ元だけど、そこにlibreadline.so.6という名前でシンボリックリンクを張って再起動してみた。

ら、Cinnamon普通に起動しました。これでやっと普通に使える。

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

GPTなディスクをMBRにする >