[過去ログ] /**ファイルシステム総合スレ その7**/ (955レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
80
(13): 2007/03/20(火)02:05 ID:aZRbC5iM(1) AAS
Linux板だしね
83
(1): 80 2007/03/20(火)05:48 ID:9XkrolDx(2/9) AAS
>>82
具体的に「実行」とはどういう状態を言うのでしょうか? 実際に/から実行されているプログラムは常に多数あるのですが、
普段の状態でしたらremount,roは問題なく出来てます。 
85
(1): 80 2007/03/20(火)08:21 ID:9XkrolDx(3/9) AAS
>>84
82さんの回答と同様、それは恐らく"umount"すると時にひっかかる条件だと思います。 
「正常に」機能している時には以下のようなことしても無問題です。

# mount -o remount,rw /
# cd /
# pwd
/
# mount -o remount,ro /
# echo $?
0
91: 80 2007/03/20(火)21:52 ID:9XkrolDx(4/9) AAS
>>87
無問題です。以下のようにしてあからさまにwriteでファイルを開かないと"busy"とはなりません。

# mount -o remount,rw /
# cd /
# cat > hoge
^Z
[1]+ Stopped cat >hoge
# mount -o remount,ro /
mount; / is busy
# kill %1
省4
94
(1): 80 2007/03/20(火)22:23 ID:9XkrolDx(5/9) AAS
>>88
シリアルコンソールごしにネットワーク、全てのサービスを停止。40弱しかプロセスが走ってない状態
(けどremount,roはやっぱりbusy)でやってみました。
/dev, /procと他パーティションの/var以下を除いた結果が以下です。

/: 1r 1c 2r 2c 3r 3c 4r 4c 5r 5c c
/bin/bash: 5924e 6938e
/bin/sh: 5924e 6938e
/bin/login: 26670e
/bin/su: 6937e
/lib/ld-linux.so.2: 1m 2739m 4649m 5924m 6937m 6938m 26670m
省11
95: 80 2007/03/20(火)22:24 ID:9XkrolDx(6/9) AAS
続き

/lib/security/pam_rootok.so: 6937m
/lib/security/pam_unix.so: 6937m 26670m
/lib/security/pam_limits.so: 6937m 26670m
/lib/security/pam_deny.so: 6937m 26670m
/lib/security/pam_unix_auth.so: 6937m 26670m
/lib/security/pam_unix_passwd.so: 6937m 26670m
/lib/security/pam_unix_acct.so: 6937m 26670m
/lib/security/pam_env.so: 6937m 26670m
/lib/security/pam_unix_session.so: 6937m 26670m
省18
96: 80 2007/03/20(火)22:25 ID:9XkrolDx(7/9) AAS
最後
/sbin/init: 1e
/sbin/klogd: 2393e
/sbin/syslogd: 2389e
/sbin/fuser: 7154e
/sbin/telinit: 1e
/usr/bin/find: 2739e
/usr/lib/libcrack.so.2: 6937m 26670m
/usr/lib/libglib-2.0.so.0: 26670m
/usr/lib/locale/locale-archive: 2476m 2739m 5924m 6938m 17391m
省6
97
(1): 80 2007/03/20(火)22:30 ID:9XkrolDx(8/9) AAS
>>94
あれ、/:の出力が切れてますね。如何が全てです。

/: 1r 1c 2r 2c 3r 3c 4r 4c
5r 5c 6r 6c 44r 44c 47r 47c 48r 48c 49r
49c 50r 50c 196r 196c 292r 292c 294r 294c 295r 295c
312r 312c 1341r 1341c 1757r 1757c 1902r 1902c 1903r 1903c 1905r
1905c 2389r 2389c 2393r 2393c 2476r 2567r 2567c 2568r 2568c 2569r
2569c 2570r 2570c 2571r 2571c 2572r 2572c 2739r 2739c 2740r 5924r
6937r 6938r 26670r 27648r 27648c
98
(1): 80 2007/03/20(火)23:06 ID:9XkrolDx(9/9) AAS
>>89 可能性としてはありそうです。しかしその結果、なぜ今の状態になってしまったのかが謎です。
>>90どう見てもmountコマンド自体は終了してますが、カーネル内部的に「つかんだ」ままになっている
のでしょうか?

さて、そろそろソースを読まねばという感じです。ちなみにCentOS4.4の2.6.9カーネルです。
102: 80 2007/03/21(水)01:17 ID:E4OzVxjT(1/6) AAS
>>99
syncもだめでした。それにしてもこの状態(busy)で安定したまま一日以上過ぎてますので。

ちょっとコードを読んで見ました。mountコールのエラーパスはこうなるようです。

|sys_mount (fs/namespace.c)
|-do_mount
|--path_lookup(fs/namei.c)
|---link_path_walk
|----__link_path_walk
| ごちょごちょして良く分からんがたぶんEBUSYは返さない?
|--security_sb_mount(include/linux/security.h)
省12
103
(2): 80 2007/03/21(水)01:19 ID:E4OzVxjT(2/6) AAS
続き。ここで跳ねられてる? "pending delete"のファイルってlsofとかでも見れませんでしたっけ?

|----fs_may_remount_ro(struct super_block *sb) (fs/file_table.c)
|{
| struct list_head *p;
|
| /* Check that no files are currently opened for writing. */
| file_list_lock();
| list_for_each(p, &sb->s_files) {
| struct file *file = list_entry(p, struct file, f_list);
| struct inode *inode = file->f_dentry->d_inode;
省15
107
(1): 80 2007/03/21(水)03:54 ID:E4OzVxjT(3/6) AAS
>>105
いえ、それはOKです。けどrwをrwにremountしてもスルーされてるだけかもしれませんね。
>>106
mountコマンドを入力したときにはとくにどちらにも新たな出力は見られません。先ほど見た
エラーパスにも特にその周辺で何かを吐き出すコードは見られませんでした。また両方とも
デバイス名sdaでgrepして見ましたが、起動時の普通のメッセージ以外に特に最近異常を示す
メッセージは見受けられません。他に何か探すべきものがありましたらご指摘キボンヌ。

そろそろ上に挙げたコードにデバッグコードを埋め込んでカーネル再構築を試みます。
108: 80 2007/03/21(水)04:04 ID:E4OzVxjT(4/6) AAS
>>103
> "pending delete"のファイルってlsofとかでも見れませんでしたっけ?

自己レス。普通は見えますね。
# mount -o remount,rw /
# cat > hogehoge
^Z
[1]+ Stopped cat >hogehoge
# rm -f hogehoge
# lsof | grep hogehoge
cat 9979 root 1w REG 3,8 0 983060 /hogehoge (deleted)
省1
109: 80 2007/03/21(水)05:59 ID:E4OzVxjT(5/6) AAS
inodeの中身をダンプするデバッグ用のルーチンなんかありませんかね?
出来るだけ情報を書き出したいけど、中身が全然分かってないから下手したら
そこでクラッシュしそう。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.034s