fedora 16でのネットワーク周りの不具合(未解決)

未だにfedora 16(2011年リリース。しかもi386..32bitです)が動いているサーバーがありました。
セキュリティ的にこれはなんとかしないとな...と思い、
ひとまず仮想環境にテスト環境を作り、
最新版のfedoraにアップグレードできるかを検証し始めたのが事の始まりでした。

[検証したかったこと]
(1)ちゃんとアップグレードできるか
(2)マシンは遠隔地にあるので、ネットワークアクセス越しでできるか
という項目でした。
先に言ってしまうと、多分無理でしょう。
grub(OS起動前)でアップグレードを選択する必要があるので(2)は満たせず、
そもそも僕が試した環境ではアップグレード用カーネルさえも出てきてくれませんでした...

それだけでなく、そもそもfedora16にまともにネットワークアクセスできなかったことが大きな障壁になりました。
2018年にこんなネタを書いても誰の役にも立ちませんが、
記録として残そうと思います。


[検証の手順]
参考にしたのは以下サイトです。
http://q.hatena.ne.jp/1488282957
コメント欄?の「自己解決しそうです〜」に手順が書いてあります。
コマンドだけ列挙すると

yum clean all
yum update
yum upgrade
yum install preupgrade
preupgrade-cli "Fedora 17 (Beefy Miracle)" 
curl "http://mirrors.fedoraproject.org/mirrorlist?path=pub/archive/fedora/linux/releases/17/Fedora/i386/os/" > /var/cache/yum/preupgrade/mirrorlist.txt
preupgrade-cli "Fedora 17 (Beefy Miracle)" 

これで再起動すると、
fedora 17用のアップグレードカーネルがgrubで選択できるようになり、
それを選択することでfedora 17へのアップグレード処理が始まります。

fedora 17からfedupコマンドが使えるようになっているので、
18以降にするにはこのコマンドでやるようです。


しかしこれではOS起動前(つまりIPアドレスが有効になる前)のgrubで選択しないとなため、
grubでupgradeを自動で選択させられないか、を考えました。
つまり、
preupgrade-cli "Fedora 17 (Beefy Miracle)" 
の後の再起動の前に、grubのデフォルトを変えておくわけです。

再起動前に以下コマンドを実行しますと、
grep ^menuentry /boot/grub2/grub.cfg
一番上に「Upgrade to Fedora 17」みたいな名前が出てくると思います。
一番上...つまりgrubの0番目を起動したいわけです。

そこでまず
/etc/defaults/grub
 GRUB_DEFAULT=saved
 GRUB_DEFAULT=0
に変更し、以下を実行します(これで適用されます)
grub2-mkconfig -o /boot/grub2/grub.cfg

よーしできたぞ、と思ってテスト環境の画面を見ていたのですが、
次の起動時grubにはアップグレードメニューは出てきませんでした...
後半のgrub起動手順変更をするとupgradeできなくなるのかもしれません。


[予定外の障害]
テスト環境で、起動時にネットワークが接続できない問題が発生し(バグかな?)、
最後まで解決しませんでした。

該当ネットワーク、つまりIPアドレスが割り当ててあるネットワーク名はp2p1とします。
もちろん
/etc/sysconfig/network-scripts/ifcfg-p2p1
はきちんと書いてあります。

OS 起動後、ifconfigするとp2p1がupしていません。外からpingが通りません。
ifup p2p1
とすると外からpingが通るようになります。
ここまでは理解できます。
テスト環境は悪名高いNetworkManagerがそもそも入っていないので、
無効になっていたnetwork serviceを有効にしてあげます

chkconfig network on
または
systemctl enable network.service

これでOS起動後にifconfigするとp2p1が見えるようになります。
が、しかし
この方法だと外からpingが通らない...
あまりにも普通のことができないので、ここで心が折れました。
上記[検証の手順]は、心折れながらもテスト環境ローカル(外部アクセスしない)で試した結果です。

未解決ですが記事はここまでです。

Comments