UFS スライスのマウント (block size==16384) Subject: UFS スライスのマウント (block size==16384) From: Jun Naito Date: Fri, 22 Feb 2002 04:05:44 +0900 Distribution: fj Newsgroups: fj.os.linux Organization: WAKWAK Internet service User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.8+) Gecko/20020221 Xref: news.dinf.ne.jp fj.os.linux:19056 内藤といいます。 FreeBSD のパーティションを最近切りなおしたのですが、 [root@jun root]# mount -tufs -oufstype=44bsd,ro /dev/hdc7 /bsd mount: 間違ったファイルシステムタイプ、不正なオプション、 /dev/hdc7 のスーパーブロックが不正、或いはファイルシステムのマウント が多すぎます [root@jun root]# tail -1 /var/log/messages Feb 21 12:16:50 jun kernel: ufs_read_super: fs_bsize 16384 != {4096, 8192, 32768} というエラーがでるようになってしまいました。 そこでいろいろ検索してみたら、 http://www.uwsg.iu.edu/hypermail/linux/kernel/9910.1/0847.html こんなのがでてきました。 同様の修正を以下のようにやってみましたが、特に問題ないようです。 --- linux-2.4.17/fs/ufs/super.c.orig Tue Nov 20 07:55:46 2001 +++ linux-2.4.17/fs/ufs/super.c Thu Feb 21 12:45:51 2002 @@ -652,13 +652,13 @@ uspi->s_fshift = fs32_to_cpu(sb, usb1->fs_fshift); if (uspi->s_bsize != 4096 && uspi->s_bsize != 8192 - && uspi->s_bsize != 32768) { - printk("ufs_read_super: fs_bsize %u != {4096, 8192, 32768}\n", uspi->s_bsize); + && uspi->s_bsize != 16384 && uspi->s_bsize != 32768) { + printk("ufs_read_super: fs_bsize %u != {4096, 8192, 16384, 32768}\n", uspi->s_bsize); goto failed; } if (uspi->s_fsize != 512 && uspi->s_fsize != 1024 && uspi->s_fsize != 2048 && uspi->s_fsize != 4096) { - printk("ufs_read_super: fs_fsize %u != {512, 1024, 2048. 4096}\n", uspi->s_fsize); + printk("ufs_read_super: fs_fsize %u != {512, 1024, 2048, 4096}\n", uspi->s_fsize); goto failed; } if (uspi->s_fsize != block_size || uspi->s_sbsize != super_block_size) { FreeBSD 4.5-R の newfs(8) には、 http://www.jp.freebsd.org/cgi/mroff.cgi?sect=8&cmd=&lc=1&subdir=man&dir=jpman-4.5.0%2Fman&subdir=man&man=newfs > -b block-size > ファイルシステムのブロックサイズをバイト単位で指定します。 2 のべ > き乗である必要があります。デフォルトサイズは 16384 バイトであり、 : とあるので、今後(4.4-R では 8192 がデフォルトだった)必要になると思うのですが、 どこに投げたらよいのかわからない上に英語がさっぱりなので、ここに来ました。 カーネル開発者の方、いらっしゃいましたらこのパッチいれてもらえますでしょうか。 宜しくお願いします。 -- Jun Naito