fc2ブログ

siduxの安全なアップグレードをsidで再現?

*今回の記事はちょっと実験的な話です。正直あんまり真似しない方が良いかも知れません。

Debian sidとディストリビューションのsiduxとは基本的には殆ど同じものだと俺は捉えています。というのも、siduxはパッケージ管理システムのリポジトリの一つにDebian sidのものをそのまま使っているから。ライブCDとしての年数回のリリースと一部の拡張、プラットフォームをPC/AT互換機に限定しているなど、sidにはない特徴も数ありますけれども。

よって、siduxマニュアルはDebian sidを使う上でも非常に参考になると思います。特にaptに関する項目は。



そのsiduxマニュアルでは、Xを動作させたままdist-upgradeをするな、ましてやSynapticなどもってのほかといった具合に強めに警告されています。

ではどうしたら良いか?siduxではランレベルを3に切り替えるとXが停止し、それからdist-upgradeすればより安全にアップグレードできるんだそうで。

しかし、これはオフィシャルのDebianでは通用しません。Debianではランレベル0にシステム停止、1にシングルユーザーモード、6に再起動を割り当てているだけで、2~5は全て通常モード、区別をしていないからです。そもそもランレベルというものが何のために存在するのかよく分からず、もしかしたらこれはいわゆるレガシーってやつなのかもしれませんが、とにかく、通常動作中のDebianシステム上で

# init 3

なんて打っても何も変わりません。せいぜい、

# runlevel

このコマンドの返答が変わるだけで、実質何かが変わるわけではないみたいです。



ところが、なぜ変わる/変わらないのかの区別が、前回判明しましたな。/etc/rc*.d/以下の内容なのです。つまり、

# cd /etc/rc3.d
# mv S30gdm K30gdm

と、このようにランレベル3でgdm(GNOME Display Manager)を起動しない設定にしてやれば、siduxのランレベル3を再現できるのではないかと。今まで俺はXを停止させるためにわざわざシングルユーザーモードに切り替えていたわけですが、そこまでしなくてもこのように設定してランレベル3に移行するだけで、安全にaptでアップグレードができるのではないかと。Xを司るものは果たしてgdmだけなのか、それが若干怖いですが、/etc/rc*.dディレクトリ内にあるファイルを見てもgdm以外にそれらしいものがないんで…

というわけで実験。上の通り/etc/rc3.d/S30gdmをK30gdmにリネームした上で、X上のコンソールから次のコマンド。

# init 3

すると、画面が真っ暗になってtty1のログイン画面が現れる。Alt+F7を押すと見慣れたXの画面は消え、代わりに真っ黒なコンソール画面に

INIT: Switching to runlevel: 3
Stopping GNOME Display Manager: gdm

の表示が浮かぶ。ここまで順調。

では、ログインしてランレベルを2に切り替えてみる。予想の通りならば、切り替えた後にAlt+F7を押せばgdmが立ち上がっているはず。

# init 2

ちょっとだけ予想と違うことに、とにかく画面が突然明るくなりgdmのログイン画面が現れた。Ctrl+Alt+F1を押して先ほどのtty1コンソールに戻ると、

INIT: Switching to runlevel: 2
Starting GNOME Display Manager : gdm

と出ている。



一応期待した通りのことになってくれました。これでsiduxに於ける安全なdist-upgradeを再現したことに…なるんでしょうか?ps -efなんかの返りを見るとgdmを止めるとX関連のものは全て止まるように見えるのですが…。

ただ、この作業自体がシステムを損傷することもあるかも分かりません。現状のsidでは、この作業を終えた後若干の狂いが現れるようです(本来Xはtty7で動くところ、これで再起動したXはなぜかtty8から起動する)。lennyリリース直前の、lenny用の実験台であったころのsidではこんなことはなかったはずなのですが…。ので、あまり真似しない方が良いかも。


追記
この様な作業をしなければならない理由、sidをしばらく使っていて分かった気がします。それについてはこちらをご覧ください

テーマ : UNIX/Linux
ジャンル : コンピュータ

sidインストール・GRUB 2

さて、残りの話を片付けますか。

つっても、ほとんどやることはありません。前回で終わらせても良かったのですが…。



パーティション分割の確定をすると、それに従ったフォーマットがはじまり、フォーマットが終わるとインストールが始まる。ごくごく普通の。どうやらbusinesscardインストーラーではインストールできるカーネルの種類を色々と選べるみたいだけど、それ以外はごくごく普通。

だと思ったら。

システムのインストールが終わり、最後にブートローダのインストールの話になった時。

GRUB2をインストールしますか?という確認画面

えーと?


GRUB 2は次世代のGNU GRUBです。これは新たな特長を備えていますが、未だ実験的なソフトウェアです。もしこれをインストールするならば、破損を覚悟し、起動しなくなった場合に回復する術を用意するべきです。
あなたはこれを実用環境に使わないよう忠告されました。

GRUB LegacyをインストールせずにGRUB 2をインストールしますか?


訳すとこんなところか。

…GRUB 2ってなんなのさ?GRUBってのがOSを起動させるためのプログラム「ブートローダ」であることはもちろん知っていますが…おそらくは今まで使っていたGRUBがLegacyなんだろうが、こういう言い方をするくらいだから2は安定していないのか?

こういうときに「はい」を選択することが私のようなブロガーに求められている姿勢であることは理解しています。しかし、an idea on how to recover your system if it becomes unbootableは用意しておかないと。とりあえず、インストール中の今現在思いつくideaは、インストール完了後の再起動で既に動かないという事態に対して、このインストーラを立ち上げてGRUB Legacyをインストールしなおすことくらいか。

あ、anと言うくらいだから一つあればいいんだよな。「はい」を選択して続行。GRUBのインストールが開始される。

終わるとインストールCDが自動で吐き出され、インストールが完了しました、再起動しますの表示。CDを回収して続行すると、自動で再起動されてGRUBが立ち上がる。



まず、「Welcome to GRUB!」なる文字が画面左上に表示され、次の瞬間急に画面が明るくなる。壁紙が付いたのだ。へぇ~。…この機能いる?

まあいいや。きっと設定をいじることでどうにでもできるのだろう。インストールされたDebianシステムを選択して起動。まともに動いてくれた。

その後、何度も起動していますが今のところ特に問題が起きておりません。しかし、いつどうなるかも分からないのでan idea on how to recover your system if it becomes unbootableについて、次回考えてみましょうか…良いのが思いついたら。



しかし、experimental softwareというくらいだからDebianのExperimentalリポジトリに存在するのかと思ったら、ちゃんとlennyに落ちているし、etchにbackportまでされていますよ。どうしようもないまでに不安定というわけではなさそうですね。

テーマ : UNIX/Linux
ジャンル : コンピュータ

sidインストール・パーティションを手動で設定する

さて、リサイズができないという話で止まってしまいましたが。

そもそも、ガイド、つまり決まりきったものを使うからこそリサイズとなるわけで、最初から全て手動で指定するならば何の問題も起こらないはず。



パーティション計画を削除、全て空き領域に 「新しいパーティションの作成」を選択する

というわけで、一旦ご破算して、再度hdbを全て空き領域に。終わったら、空き領域を選択して「続ける」。新しいパーティションの作成について訊かれるので、先ほどは二番目の選択肢を取ったが今度は一番目で。

サイズの指定

サイズの指定の話に。デフォルトでは7.0GBだったが、プラス10GBくらいで大丈夫だろうか?とりあえず、ハードディスク容量20GBのシステムでDebian etchを三カ月ほど運用したことがあるので、多分大丈夫でしょう。続ける。

基本パーティションのその他の設定

パーティションその他の設定といった感じの画面に。利用方法のext3と初期化、そしてマウントポイントの/くらいはわかるが、他が何を意味しているのか全く分からない…。ので、ガイドによるパーティションの場合の基本パーティションと比較。おっと、起動フラグがオフになっている。ので、オンに切り替え。

戻るを選択。「ディスクのパーティショニング」画面に戻る。



ついでスワップ領域を分割する。スワップ領域とは、Windowsでいうところの仮想メモリだそうな。実メモリが圧迫された時に一時的にデータを退避させておく場所ですな。Unixではこの仮想メモリをパーティションとして分割する必要があるそうで。

基本パーティションに割いた分だけ容量の減ったhdbの空き領域を選択。新しいパーティションの作成を選択。

パーティションのタイプの選択

新たに作成するパーティションは基本パーティションか論理パーティションか訊いてくる。あれ?どっちが正しい?ガイドでパーティションを作成したときは…論理でしたね。論理パーティションを選択。

サイズを指定する場面に。ガイドでは2.7GBだったので、ここでも2.7GB指定。普通実メモリの二倍程度用意するといいと言われているんだっけ?しかし、32bitシステム通常のデスクトップ用途で実メモリ1GBもあったらまずメモリが足りなくなるなんてことはないと思うけれども、俺の経験上。

新しいパーティションの場所の選択

作成するパーティションをディスクの先頭にするか、末尾にするか訊いてくる。よく分からないので先頭で。

hdb5パーティションの編集

その他の設定の画面に。間違いを探してみよう!じゃなくて、/homeパーティション扱いになってますよ。いや、ここで/homeパーティションを設定してもそれはそれで構わないだろうが、2.7GBは狭すぎるよ。利用方法を変えましょう。

パーティションの利用方法

利用方法を選択すると、この様な画面になる。ので、スワップ領域を選択する。

スワップ領域の完成

これでスワップ領域の指定が終わるので、戻るを選択してパーティショニングのトップ画面へ。



後は残りの領域をフルに使ってこれまでの要領で/homeパーティションを作成する。

この様に/homeをパーティションとして分割することのメリットとして、/homeをフォーマットせずに再インストールができることを挙げましたが、その方法もちゃんと書いておかないと。

ここまでの要領でパーティションを切り終わった状態  このときの/homeパーティションの詳細

一通りの設定を終えた後の/homeパーティションはこの様になっていますが、これでインストールした後、/home以外のシステムに何らかの問題が生じて再インストールをせざるを得なくなった場合、パーティションを切り直さないならば、/homeパーティションをフォーマットしないでインストールすることが可能です。その前後でシステム構成が大きく変わっていないことが必須となるでしょうが。

「パーティションの初期化:」とあるところを選択して「既存のデータをそのまま使う」を選べば…この通り。

既存のデータをそのまま使うを選択した場合 その場合の「ディスクのパーティショニング」トップ画面

二枚目は一枚目の状態で戻るを選択した場合の画面ですが…/homeパーティションにkの字がついているのがお分かりいただけるでしょうか(keepの意か?)。これでインストールを続行すれば、/homeの再利用が可能です。



長くなったので、インストールの残りの手続きは次回。

テーマ : UNIX/Linux
ジャンル : コンピュータ

sidインストール・パーティション分割

sidの導入の話の続き。

Debianというのはほとんど無停止でディストリビューションのアップグレードが平然とできてしまうというのが一つの取り柄だそうですが。他のディストリビューションでは再インストールが必須となるのが通常らしいけれど。

しかし、俺のこれまでlennyを使ってきた環境は、/homeがパーティションとして分割されていません。前回気をつけなくてはならないこととして/homeをパーティションとして分割することをあげましたが、このままシステムを無停止で安全に/homeをパーティションとして分割する術を俺は知りません。

よって再インストールが必須となってしまいました。



しかし、再インストールをしようにも、Debianはsidのためのインストーラって、そういえば見当たらないよね。安定版であるetchのインストーラはここ、テスト版lennyのインストーラはここからインストールできるけれど。

Debian CDのよくある質問 -不安定版 (unstable) のイメージの提供はありますか?

>ありません。

ありがとうございましたー!また来週!

じゃなくて。そこに続いて二つの記述。

まとめると、テスト版を最小インストールして/etc/apt/sources.listをsidに書き換えてアップグレードするか、名刺サイズインストールCDからエキスパートモードでインストールするか。

…最小インストールから手動でgnomeとかKDEとかを入れると、大抵日本語フォントの見た目がおかしくなるんだよね。たぶん必要なパッケージが入っていないか、初期設定のままではいけないという話なんだろうけれど、それの矯正の仕方を俺は知らない。

つーわけで、後者で。Debian-installer lenny RC1 businesscardを落としてきてCDに焼き、そのまま再起動。



インストーラ起動時のメニューからエキスパートモードを選択して続行。

sarge時代のインストーラかまるでウチの母親のようにアレはどうだコレはどうだと口うるさく色々と訊いてくるが、わからないもの、特に通常インストールのときに訊いてこない話については全てデフォルトで。

すると、ネットワークの設定を終えたあたりで

インストールする版の選択

このようなことを訊いてくる。ので、不安定版を選択する。



パーティショニングの場面へ。ここで、/homeだけ別パーティションに分ける手続きをする。

パーティショニングは手動で

ディスクのパーティショニングをどうしますかで「手動」を選択。

パーティショニングマネージャのトップ画面 ディスク上の全てのパーティション削除の確認

現在のシステムのパーティション一覧が出るので、Debian用に今まで使っていたパーティションを選択し、削除。

その結果を表示するトップ画面、hdbが全て空き領域になっているのが確認できる

そうして新たにできた空き領域を選択。

空き領域の利用方法

空き領域の利用方法を訊いてきたので、「ガイドによるパーティショニング」を選択。

/homeをパーティションとして分割する

「すべてのファイルを1つのパーティションに(初心者ユーザには推奨)」「/homeパーティションの分割」「/home,/usr,/var,/tmpパーティションを分割」の三つの選択肢が表れる。今までは最初の選択肢を取っていたわけだ。今回は二つ目を。こうした場合、再インストール時に/homeパーティションをフォーマットせずにそのまま使うことを選択できるため、問題が生じて再インストールしても復旧が楽になるメリットがある。

なお、三番目の選択肢は、どこかのパーティションがやられてまともに動作しなくなった場合でもなおviなどの基本的なアプリケーションが動かせる可能性が残り、そこから回復できるかも…という話らしいのだが、そこまで大げさな話ではないので無視。

「ガイドによるパーティショニング」処理の結果

あれ?基本パーティションが7.0GB?こんなものでいいんだろうか?例えば、Debian etchでは最低5GB必要と言っているけれど。/homeパーティションを分割しているとはいえ、sidになってもしかしたらちょっとシステムも大きくなっているかもしれないし…。

じゃあ、パーティションをリサイズしてみましょうか。先ほどの画面からhdb基本パーティションを選択。

パーティションのリサイズができない!

あれ?パーティションのリサイズができないぞ?どこをクリックしてもそれらしい所が見当たらない…

長くなったので続きは次回に。

テーマ : UNIX/Linux
ジャンル : コンピュータ

Debian sidを導入してみる

これまで書いたように俺は今までlennyテスト版を使ってきました。

しかし、テスト版こそ日常使用に適さないという意見も存在します

今日のlennyは一年半ごとに予定された安定版リリースのためにアップグレードを停止してバグフィックスに徹しています。つまり、まさに「テスト版」であるわけですが…

そうではない時のテスト版は、基本的に十日遅れのsidなのです。つまり、リリース直前期以外はテスト版とは言いながらリリースのためのテストでない状態であり、ほんの短期間sidで試用されて「一応問題ないらしい」と判断されたパッケージの集合なのです。それじゃあ一体何なのかとツッコミを入れたくなるが…とにかく、これだけで十分なバグ出しが出来るとは思えませんな。実際にパッケージがテスト版に降りて以降問題が発覚することも珍しくありません。

逆に、すぐに更新が入らないことは、修正が遅れるという問題にも帰結します。Debian セキュリティ FAQ参照。

そもそもsidではセキュリティフィックスそのものがありませんが、問題が見つかり、プログラムが更新されれば、メンテナチームがちゃんと仕事をしてくれている限りすぐにaptを通じた更新が入ります。

テスト版のセキュリティフィックスは、それから「(検疫期間を短縮しての) 移行による通常の方法で」「もしそれでもあまりにも時間がかかるようであれば、標準的な http://security.debian.org インフラストラクチャを通じて」入るわけです。短縮された検疫期間は二日だったと思いますが、どちらにせよ最低それだけの期間はかかるわけです。その期間は無防備でいなければならないと。

困ったね。これがテスト版こそ日常使用に適さないという説の根拠というわけです。



とはいっても、sidは問題を含んだパッケージだろうと何だろうと平気で更新してくるため、ある日突然システムが起動しなくなるなんて事態はいくらでも起こり得ます。それをチェックするための不安定版ですからね。ここで問題の発覚したパッケージがテスト版に降りて行かない、というわけで、その分テスト版はある日突然システムが起動しなくなるなどの心配は少なめです。

この通り、テスト版は実用環境に適さないと思われる理由が一つあるからといって即ちsidが実用環境に適しているという話になるわけではないんですが、ブログのネタが慢性的に不足しているので、しばらくsidを使ってみようかと思うんです。もしこれで日常使用できそうならば、日常使用してみようかなーって。

あんた、siduxのこと忘れたの?うん、喉元過ぎれば何とやらってね。しかも、あのころに比べたらDebianの扱い方も詳しくなったし。それで思ったんだけど、siduxは至れり尽くせりというか、ちょっと豪華だよね。Debianはシンプルで、使い方は自分で覚えるというのも楽しい。



しかし、システムの破壊に対してちょっとだけでも対策はしておかないと。思いつくだけの対策を列挙。


・/homeをパーティションとして分割する

これをやっておくと、再インストールしても以前のユーザー設定や私的なデータを消さずに済む可能性が高くなる。このパーティションをフォーマットせずに/homeとして使用すると再インストール時に指定すれば良いのだから。


・失われたら困るデータは別のメディアにバックアップしておく

/homeパーティションごとフォーマットせざるを得なくなる場合に備えて。まあ、これはsidに限った話ではないですが。


・testingのapt-lineを前もって記入しておく

これは気分的な問題ですが、お守りとして。アップグレードによって問題のあるパッケージを掴まされたときに、すぐにテスト版用パッケージに入れ替えられるように。テスト版用のパッケージに入れ替える方法はこちらこちら

とはいっても、無駄なトラフィックを生じさせるのもいいことではないので、必要な時以外はコメントアウトしておきましょう。


・dist-upgradeの内容をメモしておく

問題のあるパッケージを掴まされたときはテスト版用のものと入れ替えればよいとは言いましても、何がアップグレードされたのかを失念してしまって、どれをダウングレードすればいいのか分からない場合もあります。

というわけで、dist-upgradeをする前にはその内容をメモっておくと良いかも。

# apt-get dist-upgrade -s > hogehoge.txt

こんな感じに。これはdist-upgradeのシミュレーション結果をカレントディレクトリのhogehoge.txtに保存するというコマンドです。


・カーネルのアップグレードがあっても、古いものはしばらく残しておく

カーネルに問題があって起動しないとなると、たぶんもう救いようがないでしょうから。


・rootのパスワードを潰さない

はい、suとsudoのように考えが分かれるところではありますが、rootのパスワードを潰してしまうとシングルユーザーモードが使えなくなるという問題があります。

これは結構sidでは致命的だと思います。以前siduxを使っていた時に、システム起動時にntp読み込みで固まるというトラブルを経験しましたが、あれはまさにシングルユーザーモードに救われた話です。

いつ何時こんな事態が生じるか、siduxもsidもその恐れは変わらないわけで。

多人数で管理するような業務用コンピューターではどうしたらいいのかって?…たぶん、それにsidを導入しようという時点で何か間違っているんじゃないかな?


・信頼できるLiveCDを常備

上で挙げたntpの話のように起動時に自動で読み込まれるソフトウェアに問題があって、それの読み込みの時点で固まってしまう、Xが起動しないどころかコンソールに入力可能な状態にすら到達しない…なんて事態に遭遇することはあります。シングルユーザーモードで回避できればいいですが、それすら出来ない場合もあるでしょう。

LiveCDがあれば、それを使って問題のソフトウェアを自動起動しないように設定ファイルを書き換えることで回避できるかもしれません。また、再インストール以外に手がなくなってしまった場合にも、データの救出に役立ちます。

もっとも、そのLiveCD自体が不安定では仕方がありませんな。うちではとりあえずKNOPPIXの前バージョンである5を常備しています。バージョン6が信頼できないというわけではなく、ただ新たに焼くのが面倒くさいだけですが…



心がけはこんなものでよいんだろうか?では次から導入の話を。

テーマ : UNIX/Linux
ジャンル : コンピュータ

プロフィール

ざっぱー

Author:ざっぱー
(この画像について)

当ブログについて
メール
(このメールアドレスへの特定電子メール (迷惑メール) の送信はお断りします)

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク