トップ «前の日記(2006-07-13(Thu)) 最新 次の日記(2006-07-15(Sat))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2006-07-14(Fri) どでもい

sylpheed-2.2.6

sylpeed's caution

をデスクトップにmake installする。例によって読むべきものを 読んでなかった。
見慣れない警告を見て、~/.xinitrcに追記、X再起動。 しばらく放置していたIMAP4は色々忘れたところがあって、 ちゃんと動くまで、ひとしきり試行錯誤。
メールが5000通近く溜っていた。

これまで見てなかった 簡体字のspamも、結構面白いものではある。

ループバックが足らん

Sargeでイメージをいくつもマウントしていたら、 9つ以上マウントできないことに気づく。

# ls /dev/loop*
/dev/loop0  /dev/loop1  /dev/loop2  /dev/loop3  \
/dev/loop4  /dev/loop5  /dev/loop6  /dev/loop9
 
# mknod  loop8 b 7 8
 
# mount -o loop -t iso9660 9.img somedir
mount: could not find any free loop device

他のシステムでも限界を見なければ。

ubuntu(kernel-2.6.15-25-386)でもやはり、8つしか同時にマウントできなかった。
ちなみにこんなログが。

Jul 14 18:05:37 LAPTOP kernel: [17179890.148000] loop: loaded (max 8 devices)

Plamo-4.2でも、結果は同じだった。

static int max_loop = 256;

帰ってデスクトップのkernel-2.6.17で追試。 やはり、8つを越えるとダメだった。sysctl -A してみたが それらしいパラメータは見当たらない。

で、/usr/src/linux/drivers/block/loop.c を広げてみた。コメント行が複数のパラグラフに渡って 追記されている。起動時にパラメータを与えて上限を 調整できるととれそうな記述もあったが、 2.6.17では効かないようだ。で、結局(順番は実は逆だけど)、 "Support up to 256 loop devices"という記述を見て、 タイトル通りにmax_loopを8から256に書き換えて 再構築。

# for img in `seq 0 256`; \
  do echo y | mkfs -t ext2 $img.img ; \
  done

なんて種の事を繰り返してイメージを作ったりファイルシステムを 構築したり、ディレクトリを掘ったりマウントしたり

$ mount
/path/0.img on /path/0 type ext2 (rw,loop=/dev/loop0)
/path/1.img on /path/1 type ext2 (rw,loop=/dev/loop1)
/path/2.img on /path/2 type ext2 (rw,loop=/dev/loop2)
/path/3.img on /path/3 type ext2 (rw,loop=/dev/loop3)
(ry
 
$ mount | grep "loop=" | wc -l
256

max_loopの値を256より大きくすると、(どこでひっかかるのかわからないが) 8に戻されるようだ。
また、max_loopを起動時に設定しても、何の効果もなかった。
しばらくはこのカーネルで遊ぶか。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。