Posts tagged ‘CentOS’

PuTTY/Win7 – CentOS6/VMware のコネクションエラーについて

Windows7 をホストとする VMware Player にゲストとして CentOS6 を入れ、ホスト側から PuTTY を使い ssh 接続したとき、何も入力せずに放っておくと1分も経たずに接続が切れてしまう現象に遭遇した。とりあえずネットで検索してみたところ、まさに同じ条件の Q&A があった。

Putty Network Error: Software caused connection abort

この投稿に寄せられていた回答に従って PuTTY のドキュメントを読み直し、コネクションの keepalive オプションをデフォルト値の 0 秒から 20 秒に設定してみると切断することが無くなった。このオプションで指定した秒数ごとに NULL パケットを送出することで接続を維持するようである。ちなみにこの値を 30 秒にすると、また切断が発生するようになった。

参照した PuTTY のドキュメント項目はこれ。

10.14 ‘Network error: Software caused connection abort’

4.13.1 Using keepalives to prevent disconnection

今回のホストになっている Win7 から仮想ではない別マシンの CentOS に 接続したときはまったく問題が無かったので、VMware に関連した問題だろうと予想しているが、具体的な原因までは調べていない。

そもそもホストからわざわざ PuTTY 経由でゲストにアクセスする必然性は無くて、ゲスト OS のウインドウを開いて作業すればいいだけのことなのだが、これまでの端末経由での作業を継続したかったので、どうしても PuTTY を使える環境にしたかった。

CentOS カーネルのバージョンアップ

以前のディストリビューションを使っているときは、カーネルのバージョンアップをあまり実施しなかったのだが、CentOS にしてからは yum を利用して比較的頻繁にバージョンアップするようになった。その過程で /lib/modules や /boot あたりに旧版のイメージなど、カーネル関連のファイル群がバックアップされていることに気付いた。このうち /lib/modules は / パーティション配下にあるが、現行の CentOS では / パーティションを 500MB 程しか確保していないので、ここにバックアップが溜まると容量が厳しくなってしまう。しかし、カーネルの旧版をすべて残しておくわけではなく、最新版を含めて5世代より前のものはバージョンアップ作業時に自動的に削除されるようだ。これであれば / パーティションのサイズも何とか持ちこたえられると思う。もしかしたら保存する履歴の数もどこかで設定出来るのかも知れない。

yum で苦労したこと

サーバとして CentOS5.2 を使っているのだが、このところアップデート通知がまったく無かったことに気付く。試しに手動で yum check-update を実行しても、有効なアップデートは無いという。さすがにおかしいと思い検索してみたら、yum のキャッシュに異常が発生したときなどに、このような状態になるらしいことがわかった。そして、この症状に対しては yum clean all で状況を改善できる、ということだったのでさっそく実行してみる。ここで再び check-update すると、要アップデート状態のパッケージが大量にあることが分かった。

続けて yum update(実際には GUI のパッケージマネージャ)を使って、これまでの更新分を一気に処理したのだが、途中で処理がフリーズしてしまい強制終了することになってしまった。ここでパッケージのリストを確認してみると、同一パッケージのバージョン違いが同時にインストールされていることが分かった。例えば Zip であれば 2.31-1.2.2 と 2.31-2.e15 が共存している。さすがにこのままではまずいので調べてみると、yum の実行中に異常終了した場合には、その後の処理をきちんと完結させるため yum-complete-transaction コマンドを利用することが分かった。さっそくこのコマンドを使ってみると、見事にパッケージの重複が解消された。この yum-complete-transaction について書かれていたサイトに感謝。

その後、気がついたら CentOS が 5.3 になっていた。近々 5.3 になることをどこかで目にした記憶はあるが、どうも今週に入ってすぐにリリースされたらしい。意図せずに 5.3 へ移行してしまったが、このようなタイミングで大量のパッケージを同時にアップデートしたことが、今回の一連の不具合発生につながったのかもしれない。