2006年10月31日火曜日

複数パーティションの使い分けでハマる

手元で使っているノートPC(Z60t)には、Ubuntu 6.06.1 LTSである。
当初は複数ディストリビューションを試すべく、/homeを大きくとって、
小さめの/(ルート)パーティションを複数取るような分割にしていた。

ところが、Ubuntuが想像以上に居心地がよかったので、安住することにした。
��別ディストリビューションの「お試し」はXenで行うことにした。

と言うわけで、別ディストリビューションの/に割り当てていたパーティションをつぶして、
Ubuntuの/パーティションの中で割合大きなエリアを占めていた/varを追い出そうとした。

シングルユーザになって、コピーして、mount先をつくって、/etc/fstabを書き換えて...と作業は順調に行って、リブートしてみた。

ところが、立ち上がるんだけど、どうにも動きがおかしい。
良く見ると、ifconfigで見てもloが上がっていない。
うーん...と悩むこと数時間...googleで探してもそれらしいのは無い。
自分で調べるしかない。

loつまりlocalloopback interfaceは/etc/init.d/loopbackで立ち上げているようだ。
その中で、/var/run/network/に対して何やらやっている。
これは臭い。
/etc/rcS.d/を見ると、S01mountvirtfs、S08loopbackとS35mountall.shが目に付いた。
S01mountvirtfsの中で、/var/runとか/var/lockになにやらやっているし、
S08loopbackの中に関しては、上記の通り。
かたやS35mountall.shの中で/etc/fstabに記載している各パーティションをmountしている。
この順番が正しいとすると、/varを/と別のパーティションにしてはダメということね?
うーん、昔のSlackwareとかだと、/varも別にできた気がするんだけどなぁ。
イマドキはパーティション毎の使い分けもせず、追加時もLVMを使うのかなぁ。
とりあえず、該当パーティションは/varとして使うのはやめて、/usrにした。

1 件のコメント:

  1. /var と "/" が別パーティションではダメということはありません。
    今使ってるマシンはUbuntu 6.10ですが、別パーティションにしています。
    コレで解決というネタが見つかりませんが、
    lo が起動できない状態で、df などで見た/var/run,/var/lock は
    tmpfs がマウントされているのでしょうか?
    また、/var/run/network/ifstate のタイムスタンプと内容は
    確認されていますでしょうか?
    シングルユーザモードで起動した場合でも、/var/run,/var/lock は
    tmpfs がマウントされ、配下にファイルが作成されます。
    これが新しいコピー先にも実態でコピーされます。
    仮りに、コピー後の再起動で両ディレクトリにtmpfs が
    マウントされて見えなくなるにしても、少し気持ち悪いですね。
    Ubuntu 6.06 Live CD やKNOPPIXで作業してみてはいかがでしょう?
    これらで起動して作業する場合はHDD 上の/var
    つまり、コピー元のパーティション上にある/var は
    使われないはずですから、両ディレクトリ配下には
    何もファイルが存在しないと思います。
    ��シャットダウン時にメモリ上からクリアされる為)
    /var/run にtmpfs がマウントできないとか、あるいは
    /var/run/network/ifstate が書けなかったとか
    それが原因だったりしませんでしょうか。
    スクリプトを斜め読みすると、/var/run, /var/lock が
    存在しなければ作成するようなので、コピー先の両ディレクトリを削除するか
    両ディレクトリ配下のファイルだけを削除してみるのも
    簡単に試せる事かもしれません。
    そんなに簡単な事じゃないのかも知れないので、ハズシたらごめんなさい。
    書いておきながら怪しいし。(^^;

    返信削除