debian(squeeze)でサーバを運用していますが、kernelのupgradeがあると
再起動が必要になるので、よほどクリティカルなupgrade以外は
カーネルのバージョンを固定したいと思っています。
とりあえず以下の方法でholdしてみました。
--------------------------------------------
・インストールされているカーネル確認
# dpkg -l | grep "linux-image"
ii linux-image-2.6-686 2.6.32+29 Linux 2.6 for modern PCs (meta-package)
ii linux-image-2.6.32-5-686 2.6.32-31 Linux 2.6.32 for modern PCs
・使用されているカーネル確認
# uname -r
2.6.32-5-686
・aptitudeコマンド対応hold
aptitude hold linux-image-2.6.32-5-686
・ホールド確認
# aptitude search linux-image-2.6.32-5-686
ihA linux-image-2.6.32-5-686 - Linux 2.6.32 for modern PCs
・dpkg(apt-get)コマンド対応hold
# echo linux-image-2.6.32-5-686 hold | dpkg --set-selections
・hold確認
dpkg --get-selections "*"|grep -e "hold$"
linux-image-2.6.32-3-686 hold
----------------------------------------------
上記に関して質問があります。
(1)検索するとholdの方法は、他にもいくつかあるようです。
分かりやすさで上記を選択しましたが、これは問題ありませんでしょうか?
(2)holdしたのは「linux-image-2.6.32-5-686」だけです。
meta-packageである「linux-image-2.6-686」もholdした方が
よいのでしょうか?
(3)「linux-image-2.6-686」はmeta-packageとよばれるものらしいのですが
meta-packageとはどのような意味があるのでしょうか?
lennyのlinux-imageにはなかった気がします。
以上、よろしくお願いします。
---------------------------------------
小林 賢治 <ko...@steadfast.co.jp>
パッケージがアップグレードされても、再起動しなければアップグレードが
反映されないだけなので、再起動を避けるだけでもいいのかな、と思いました。
> (1)検索するとholdの方法は、他にもいくつかあるようです。
> 分かりやすさで上記を選択しましたが、これは問題ありませんでしょうか?
最近、私は hold するのは aptitude のインタラクティブな画面からだけなので
断言はしかねますが問題ないんじゃないでしょうか。
> (2)holdしたのは「linux-image-2.6.32-5-686」だけです。
> meta-packageである「linux-image-2.6-686」もholdした方が
> よいのでしょうか?
hold してあれば釣られてアップグレードはされない(…かな)と。
> (3)「linux-image-2.6-686」はmeta-packageとよばれるものらしいのですが
> meta-packageとはどのような意味があるのでしょうか?
> lennyのlinux-imageにはなかった気がします。
細かなパッケージの名前/バージョンの違いを吸収してくれている、名前が
わかりやすいパッケージ、と考えれば良いでしょう。
--
Regards,
Hideki Yamane henrich @ debian.or.jp/org
http://wiki.debian.org/HidekiYamane
At Mon, 25 Apr 2011 15:41:53 +0900,
kenji kobayashi wrote:
> debian(squeeze)でサーバを運用していますが、kernelのupgradeがあると
> 再起動が必要になるので、よほどクリティカルなupgrade以外は
> カーネルのバージョンを固定したいと思っています。
まぁたとえインストールされても黙って勝手に再起動しちゃうような真似は
しないので、DSAの内容を見てからrebootということでもよいかと思います。
> とりあえず以下の方法でholdしてみました。
> --------------------------------------------
> ・aptitudeコマンド対応hold
> aptitude hold linux-image-2.6.32-5-686
>
> ・ホールド確認
> # aptitude search linux-image-2.6.32-5-686
> ihA linux-image-2.6.32-5-686 - Linux 2.6.32 for modern PCs
>
> ・dpkg(apt-get)コマンド対応hold
> # echo linux-image-2.6.32-5-686 hold | dpkg --set-selections
>
> ・hold確認
> dpkg --get-selections "*"|grep -e "hold$"
> linux-image-2.6.32-3-686 hold
> ----------------------------------------------
>
> (1)検索するとholdの方法は、他にもいくつかあるようです。
> 分かりやすさで上記を選択しましたが、これは問題ありませんでしょうか?
残るはPINによるホールドですかね。普通はaptitudeのholdまたはdpkgのholdで
よいかと思います。aptitudeでのholdはaptitude内だけで使われて、apt-get
では無視されるという点に注意でしょうか。私はもっぱらapt-getを使って
いるので、dpkg --set-selectionsによるholdを使うことが多いです(こちらの
holdはapt-getもaptitudeのいずれも尊重します)。
> (2)holdしたのは「linux-image-2.6.32-5-686」だけです。
> meta-packageである「linux-image-2.6-686」もholdした方が
> よいのでしょうか?
> (3)「linux-image-2.6-686」はmeta-packageとよばれるものらしいのですが
> meta-packageとはどのような意味があるのでしょうか?
> lennyのlinux-imageにはなかった気がします。
あらゆるカーネルをこれ以上自動で入れたくない(現在動作中のカーネルを上書き
しないにせよ、GRUBのメニューで先頭に出てきてその新しいのが動作しては困る
など)、ということであれば、このメタパッケージもhold、あるいは削除するのが
よいでしょう。
メタパッケージlinux-image-2.6-686(Lennyにもありますが)は、その
ディストリビューションバージョンで「最新の」686実カーネルパッケージに
依存する「だけ」のパッケージです。
カーネルパッケージは、2.6.32や2.6.38といったバージョンが変わるほか
(安定版ではバージョンが変わることがありませんが)、たとえ同じバージョン
でもDebianのセキュリティ関連のバグ修正によっては内部構造が変わってしまい、
古いカーネルで使っていたモジュールパッケージとは互換性が取れなくなる
ことがあります。
このようなときに、Debianの実カーネルパッケージのほうは
linux-image-2.6.32-3-686
linux-image-2.6.32-4-686
linux-image-2.6.32-5-686
のようにバージョン番号の後の数字を増やして対応しています。パッケージ名が
変わるので、この新しい実カーネルパッケージはそのままではインストール対象
になりません。メタパッケージlinux-image-2.6-686があれば、このメタパッケー
ジが常に最新の実カーネルパッケージに依存して紐付けられているので、通常の
アップグレード手順で修正された実カーネルパッケージを常に得られるように
なります。
なお、上記のように実カーネルパッケージ名が変わる場合、動作中・あるいは
過去にインストールした古いカーネルパッケージには何もタッチしません。
--
武藤 健志@ kmuto @ kmuto.jp
Debian/JPプロジェクト (km...@debian.org, km...@debian.or.jp)
株式会社トップスタジオ (km...@topstudio.co.jp)
URI: http://kmuto.jp/ (Debianな話題など)
回答ありがとうございます。
On Mon, 25 Apr 2011 22:20:33 +0900
Hideki Yamane <hen...@debian.or.jp> wrote:
> > debian(squeeze)でサーバを運用していますが、kernelのupgradeがあると
> > 再起動が必要になるので、よほどクリティカルなupgrade以外は
> > カーネルのバージョンを固定したいと思っています。
>
> パッケージがアップグレードされても、再起動しなければアップグレードが
> 反映されないだけなので、再起動を避けるだけでもいいのかな、と思いました。
ずっと昔になりますが、Redhat系のディストリビューションで
『カーネルアップグレード → 放置 → 電源障害でシャットダウン
→ eth0とeth1が入れ替わる → アクセス不可』
ということがありました。
サーバの設置場所が遠隔地であったこともあり大変苦労したことがあります。
また、/dev/hdaと/dev/hdbが入れ替わって起動に失敗したケースも
ありました。
それ以来カーネルアップグレードはトラウマになってます・・・
今はカーネルアップグレードを行っても起動に失敗したり、ネット
ワークカードが認識しなくなるなどの現象は発生しないと思って
よろしいでしょうか?
以上、よろしくお願いします。
---------------------------------------
有限会社ステッドファストシステムズ
小林 賢治 <ko...@steadfast.co.jp>
ご回答ありがとうございます。
On Mon, 25 Apr 2011 23:02:35 +0900
Kenshi Muto <km...@kmuto.jp> wrote:
> > debian(squeeze)でサーバを運用していますが、kernelのupgradeがあると
> > 再起動が必要になるので、よほどクリティカルなupgrade以外は
> > カーネルのバージョンを固定したいと思っています。
>
> まぁたとえインストールされても黙って勝手に再起動しちゃうような真似は
> しないので、DSAの内容を見てからrebootということでもよいかと思います。
[debian-users:55195]にも書きましたが、以前にカーネルアップグレードで
「起動に失敗」や「ネットワークカードの認識に問題があった」ので
それ以来、カーネルアップグレードは怖い・・・
> > (1)検索するとholdの方法は、他にもいくつかあるようです。
> > 分かりやすさで上記を選択しましたが、これは問題ありませんでしょうか?
>
> 残るはPINによるホールドですかね。普通はaptitudeのholdまたはdpkgのholdで
> よいかと思います。aptitudeでのholdはaptitude内だけで使われて、apt-get
> では無視されるという点に注意でしょうか。私はもっぱらapt-getを使って
> いるので、dpkg --set-selectionsによるholdを使うことが多いです(こちらの
> holdはapt-getもaptitudeのいずれも尊重します)。
と言うことは、dpkg --set-selectionsによるholdだけやっておけばよいと
いうことでしょうか(aptitudeでのholdはする必要がない)?
> > (2)holdしたのは「linux-image-2.6.32-5-686」だけです。
> > meta-packageである「linux-image-2.6-686」もholdした方が
> > よいのでしょうか?
> > (3)「linux-image-2.6-686」はmeta-packageとよばれるものらしいのですが
> > meta-packageとはどのような意味があるのでしょうか?
> > lennyのlinux-imageにはなかった気がします。
>
> あらゆるカーネルをこれ以上自動で入れたくない(現在動作中のカーネルを上書き
> しないにせよ、GRUBのメニューで先頭に出てきてその新しいのが動作しては困る
> など)、ということであれば、このメタパッケージもhold、あるいは削除するのが
> よいでしょう。
了解いたしました。
> メタパッケージlinux-image-2.6-686(Lennyにもありますが)は、その
> ディストリビューションバージョンで「最新の」686実カーネルパッケージに
> 依存する「だけ」のパッケージです。
>
> カーネルパッケージは、2.6.32や2.6.38といったバージョンが変わるほか
> (安定版ではバージョンが変わることがありませんが)、たとえ同じバージョン
> でもDebianのセキュリティ関連のバグ修正によっては内部構造が変わってしまい、
> 古いカーネルで使っていたモジュールパッケージとは互換性が取れなくなる
> ことがあります。
> このようなときに、Debianの実カーネルパッケージのほうは
> linux-image-2.6.32-3-686
> linux-image-2.6.32-4-686
> linux-image-2.6.32-5-686
> のようにバージョン番号の後の数字を増やして対応しています。パッケージ名が
> 変わるので、この新しい実カーネルパッケージはそのままではインストール対象
> になりません。メタパッケージlinux-image-2.6-686があれば、このメタパッケー
> ジが常に最新の実カーネルパッケージに依存して紐付けられているので、通常の
> アップグレード手順で修正された実カーネルパッケージを常に得られるように
> なります。
> なお、上記のように実カーネルパッケージ名が変わる場合、動作中・あるいは
> 過去にインストールした古いカーネルパッケージには何もタッチしません。
メタパッケージに関してよく理解できました。
ありがとうございます。
断言はしかねますが ;-)
・ネットワークデバイスは udev の方で面倒を見ているので、起動時で
入れ替わるなどはないはずです(逆に MAC アドレスを rule に書かれて
しまうのでそれが鬱陶しい、という話も VM などを使う人から聞いたり
することが)
・ディスクの方は、UUID や LABEL 指定を /etc/fstab で行なうことで
回避できると思います。
On Tue, 26 Apr 2011 22:18:47 +0900
Hideki Yamane <hen...@debian.or.jp> wrote:
> > それ以来カーネルアップグレードはトラウマになってます・・・
> > 今はカーネルアップグレードを行っても起動に失敗したり、ネット
> > ワークカードが認識しなくなるなどの現象は発生しないと思って
> > よろしいでしょうか?
>
> 断言はしかねますが ;-)
>
> ・ネットワークデバイスは udev の方で面倒を見ているので、起動時で
> 入れ替わるなどはないはずです(逆に MAC アドレスを rule に書かれて
> しまうのでそれが鬱陶しい、という話も VM などを使う人から聞いたり
> することが)
> ・ディスクの方は、UUID や LABEL 指定を /etc/fstab で行なうことで
> 回避できると思います。
そうですね、上記であれば問題ないのかも知れません。
実際ここ数年はカーネルアップグレードで問題になったことは
ありません。
kernelをholdしないということも考えてみたいと思います。