2017年06月01日

[速報]貴重な情報をいただきました、システムが起動しなくなる件。archbang-i686

コメント欄に、i686-arch-userさんより、
貴重な貴重なお答えをいただきました。
gcc、gcc-libs、glibcの3つをダウングレードで、
mkinitcpioが問題なく通るということです。つまり
カーネルバージョンは上げられる、
ということになりますね。

最新のglibcが、gcc7でコンパイルされている
ことが影響しているのでは、というご意見です。

私も、さっそくやってみて、検証済み。okです。

気分爽快、バンザーイ。
i686版のサポート期限が短くなっているとはいえ、
最期の日までちゃんと動かしてほしいものですね。
32bitのlinuxしか動かないマシンで、
がんばっている人って
まだまだいるんじゃないですかね。


posted by ブログ開設者 at 23:19| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする

kernel panic注意報(2)→乱暴な修復策。archbang-i686

※以下は、参考程度に読んでください。
適正な解決方法をご提示くださる方が出現しました。
さ、次の投稿へ。


カーネルが、4.10.13-1-ARCHのi686版が在りまして、
それを起動して、
$ sudo pacman -Syyu --igonre linux,linux-headers
$ sudo reboot

で、問題なく起動しました。で、次に
$ sudo pacman -Syyu
で、カーネル、カーネルヘッダーをupgaradeしました。
ひとつ目のi686版で出た同じ症状が、やはり出ちゃいました。
カーネル周辺に不具合があるのは、間違いないようです。

で、正当なカーネル戻し法ではだめだったことを思い出しまして、
おかしくなったi686版に向け同じi686版archbangの
live-cdからarch-chrootし、えいやーと
$ sudo pacman -R linux linux-header broadcom-wl
と核心部分を削除し(broadcom-wlは依存関係に伴い削除)、そして、
$ sudo pacman -U /var/cache/pacman/pkg/linux-4.10.13-1-i686.pkg.tar.xz
$ sudo pacman -U /var/cache/pacman/pkg/linux-headers-4.10.13-1-i686.pkg.tar.xz

とし、不具合直前までのカーネルに戻しました。
この方法は、失敗でした。スプラッシュのエラー表示がちょっと長くなっただけです。

次に、幸いにも、おかしくなったのとまったく同じ状態の
i686版archbangが同じディスク内にありまして、
そこから、また当該パーティションを
マウントしました(arch-chrootはなし)。
そして、かなりアタマに血が昇っていたこともあり、

$ sudo rm /mnt/boot/vmlinuz-linux
$ sudo rm /mnt/boot/initramfs-linux.img
$ sudo rm /mnt/boot/initramfs-linux-fallback.img
$ sudo rm -rf /mnt/lib/modules/4.10.13-1-ARCH

$ sudo cp /boot/vmlinuz-linux /mnt/boot/
$ sudo cp /boot/initramfs-linux.img /mnt/boot/
$ sudo cp /boot/initramfs-linux-fallback.img /mnt/boot/
$ sudo cp -r /lib/modules/4.10.13-1-ARCH /mnt/lib/modules/


というような、外科手術に出ました。
で、ニンジャのにんにんポーズを決めたあと、
$ sudo reboot

で、とりあえず復旧しました。

あれこれやってわかってきたのは、
カーネル自体より、
/usr/bin/mkinitcpioスクリプトに
問題があるんではないか、
ってなところです。

もう一件で調査実験し、カーネル更新を止めて
システムのアップグレードやっりました、
なんの更新の影響でか、終わってプロンプトが出る直前に、
mkinitcpioスクリプトが走りました。
そして再起動したら、あらら、同じ症状が。
カーネルは古いままなのに、同じ症状が出ました。

ということで、カーネルを止めての更新でも、
起動しなくなることはあり得ます。

これ以上のことはよくわからないので、
archlinuxの日本語サイトだけど、
一応投稿しておきました。
https://bbs.archlinuxjp.org/viewtopic.php?pid=234#p234

とりあえずの修復方法は、
live-cdの/bootは、空なので使えません。
インストール済みの生きたi686版から
マウントして、コピーするしかないみたいです。
で、コピー元のカーネルバージョンに
壊れたi686版のを合わせるしかありません。
合わせるにしても、先に、arch-chrootで
同じバージョンに正規のコマンドでダウングレードし、
そうしてから、/boot下のvmlinuz-linux、initramfs-linux.img、
initramfs-linux-fallback.img、と
/lib/modules/にあるバージョンモジュール
ディレクトリを、壊れたi686の同じ場所へコピーです。
この順でやらないと、起動するようにならないです。

カーネルを起動するようするには、mkinitcpioの実行は、
欠かせない過程で、、、でも、このスクリプトの
実行がカーネルの起動を阻害している一面もある、というか、そんな感じです。
だって、あとからコピーした状態だと起動するんですから。
これ以上のことは、私にはちょっとわからないです。

なお、/usr/bin/mkinitcpioスクリプトは、
archlinuxのカーネルの、linuxパッケージに含まれます。
それが却って、事をやっかいにしていますね。


posted by ブログ開設者 at 21:45| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする

ちょっと前に投稿してすぐ引っ込めた記事について

すでに読んでしまった方へ

想定外の状況が直後に起こりましたので、
しっかり検証したあとに再度投稿し直します。
posted by ブログ開設者 at 14:01| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする