mount が失敗する2007年01月31日 12時04分11秒

7.0-CURRENT を使い始めたら、すぐに異常に気が付いた。mount が失敗しているのだ。幾つかの問題がある。

一つ目は、6.1-RELEASE 以前と違い、mount に失敗しても、シングルユーザモードに移行しない事だ。7.0-CURRENT では、お構い無しに起動する。noauto が付いていない fstab の項目が失敗したら、止まった方が動作的には好みだ。マルチユーザモードで起動したところで、利用可能な状態では無いからだ。しかし、今のところ実害はない。

二つ目は、マウントに失敗していること。fstab のエラーの出ている行を見ると mount_md が失敗していた。


/dev/md.uzip            /usr/ports      md      ro,-P,-F/usr/uzip/ports-20060830
.uzip   0       0

mount に -d を付けて実行すると、プログラムの実行する動作を見られる。


$ mount -d /usr/ports
mount -t md -o ro -P -F/usr/uzip/ports-20060830.uzip /dev/md.uzip /usr/ports
$ mount /usr/ports
mount: illegal option -- P

と表示された。そこで、実際にこのオプションを mount_md に渡して試すと、何も問題なくマウントできる。

$ mount_md -o ro -P -F/usr/uzip/ports-20060830.uzip /dev/md.uzip /usr/ports
$ df /usr/ports
Filesystem           1K-blocks    Used  Avail Capacity  Mounted on
/dev/md0.uzip           886686    352456  463296    43%    /usr/ports

mount_md を直接呼び出すと、問題なくマウントできる。-P は有効なオプションだ。どうすれば、-P が無効なオプションだと見なされるのだろうか。

コメント

_ yamane ― 2007年02月01日 01時00分48秒

単純にmount_mdとやらが呼び出されていないからだと思います。
きちんと確認はしていませんが、mount.c v1.92だと136行目にでも"md"を追加すれば動作すると思います。

_ uyota ― 2007年02月01日 12時01分41秒

わざわざ、ソースまで見て頂きありがとうございます。

内容にも依りますが、前もって下書きしたものを分割して載せていくことも多いのです。そこで、二、三日経っても迷走しているの確認してから、助け船を出して頂けると光栄です。

_ yamane ― 2007年02月03日 01時57分47秒

簡単なことでしたし、ちょっとした気分転換ですから。

ちなみに、このような実装への変更は以下のスレッドで提案されています。
http://lists.freebsd.org/mailman/htdig/freebsd-arch/2005-October/004488.html

_ uyota ― 2007年02月07日 13時46分44秒

デザインなどは arch で議論されていたのですね。道理で current では、議論をしているのは見えないわけですね。どこで議論されているのか不思議に思っていました。

一連のスレッドを読んでみましたが、この実装の変更は改悪に向かっているような気がします。実際に 7.0-CURRENT に移ってから、mount 関連でたくさんエラーが出るようになりました。手で外部コマンドを呼べば動くので、何が原因だか調べていないのも幾つかあります。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2007/01/31/1154056/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。