こんにちは。 FreeBSD4.11Rと6.0Rでデュアルブートにしています。 6.0Rでブロックサイズ65536のUFS1を扱うと、少々挙動がおかしいです。 よろしくお願い致します。
症状 (1) 6.0Rでブロックサイズ65536のUFS1を作ると、fsckでエラーが出ます。 (2) 4.11Rで書き込んで、6.0Rでdfすると使用量が変化していません。 (3) 4.11Rで作ったUFS1と、6.0Rで作ったUFS1で挙動が異なります。 ブロックサイズ16384では問題ありません。 再現方法 (1) 6.0Rで newfs -b 65536 -f 8192 -O1 でフォーマットします。 そのまま fsckするだけでエラーが出ます。 修復して、mountして何か1つでもファイルを書き込むとまたエラーが出て、 いつまでも修復できません。 (2) 4.11Rでnewfs -b 65536 -f 8192でフォーマットして何か書き込みます。 6.0Rでマウントしてdfすると、ディスク使用量が正しくありません。 fsckで修復すると一旦直りますが、4.11Rで何か書き込む度に、使用量 が正しく無くなります。 (3) 上記(2)のdfの使用量テストで、4.11Rでnewfsする変わりに6.0Rでnewfs -O1 して作ったUFS1で同じ事をすると、エラーが増えます。 ---以下詳細です---- ※プロンプト6.0#が6.0Rで、4.11#が4.11Rで実行している物です。 ※10GBほどの領域を確保しておきます。 =====(1) 6.0Rでブロックサイズ65536のUFS1を作ると、fsckでエラーが出ます。====== -----6.0Rでブロックサイズ65536でnewfsします。----- -----ブロックとフラグメントの比率は 8:1にします。-------- 6.0# newfs -U -b 65536 -f 8192 -O1 /dev/ad0s4g /dev/ad0s4g: 10005.4MB (20491152 sectors) block size 65536, fragment size 8192 using 4 cylinder groups of 2501.38MB, 40022 blks, 80384 inodes. with soft updates super-block backups (for fsck -b #) at: 128, 5122944, 10245760, 15368576 -----そのままfsckするだけでエラーが出ます。-------- 6.0# fsck /dev/ad0s4g ** /dev/ad0s4g ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups SUMMARY BLK COUNT(S) WRONG IN SUPERBLK SALVAGE? [yn] y 2 files, 2 used, 1275598 free (22 frags, 159447 blocks, 0.0% fragmentation) ***** FILE SYSTEM WAS MODIFIED ***** -----マウントして何かファイルを書き込んでみます。----- 6.0# mount /dev/ad0s4g /usr/home1 6.0# echo test > /usr/home1/test1 6.0# sync 6.0# sync 6.0# sync 6.0# umount /usr/home1 -----またエラーします。いつまでも修復できません。----- 6.0# fsck /dev/ad0s4g ** /dev/ad0s4g ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups SUMMARY BLK COUNT(S) WRONG IN SUPERBLK SALVAGE? [yn] y 3 files, 3 used, 1275597 free (21 frags, 159447 blocks, 0.0% fragmentation) ***** FILE SYSTEM WAS MODIFIED ***** ========(2) 4.11Rで書き込んで、6.0Rでdfすると使用量が変化しません。================== -----4.11Rでブロックサイズ65536でnewfsします。----- 4.11# newfs -U -b 65536 -f 8192 /dev/ad0s4g Warning: Block size and bytes per inode restrict cylinders per group to 1457. Warning: 1136 sector(s) in last cylinder unallocated /dev/ad0s4g: 20491152 sectors in 5003 cylinders of 1 tracks, 4096 sectors 10005.4MB in 4 cyl groups (1457 c/g, 2914.00MB/g, 79872 i/g) SOFTUPDATES super-block backups (for fsck -b #) at: 128, 5968000, 11935872, 17903744 -----200MBほどファイルを書き込みます。----- 4.11# mount /dev/ad0s4g /usr/home1 4.11# dd if=/dev/zero of=/usr/home1/test1 bs=10240 count=20000 20000+0 records in 20000+0 records out 204800000 bytes transferred in 10.387703 secs (19715620 bytes/sec) -----dfすると使用量が増えています。----- 4.11# df /usr/home1 Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ad0s4g 10205056 200072 9188584 2% /usr/home1 -----6.0Rで起動して、そのままマウントすると使用量が0のままです。----- 6.0# mount -r /dev/ad0s4g /usr/home1 6.0# df /usr/home1 Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ad0s4g 10205056 8 9388648 0% /usr/home1 6.0# umount /usr/home1 -----fsckすると直ります。----- 6.0# fsck /dev/ad0s4g ** /dev/ad0s4g ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups SUMMARY BLK COUNT(S) WRONG IN SUPERBLK SALVAGE? [yn] y 2 files, 25009 used, 1250623 free (15 frags, 156326 blocks, 0.0% fragmentation) ***** FILE SYSTEM WAS MODIFIED ***** -----dfすると使用量が増えています。----- 6.0# mount -r /dev/ad0s4g /usr/home1 6.0# df /usr/home1 Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ad0s4g 10205056 200072 9188584 2% /usr/home1 ========(3) 4.11Rで作ったUFS1と、6.0Rで作ったUFS1で挙動が異なります。================== -----6.0Rでブロックサイズ65536でnewfsしてUFS1を作ります。----- 6.0# newfs -U -b 65536 -f 8192 -O1 /dev/ad0s4g /dev/ad0s4g: 10005.4MB (20491152 sectors) block size 65536, fragment size 8192 using 4 cylinder groups of 2501.38MB, 40022 blks, 80384 inodes. with soft updates super-block backups (for fsck -b #) at: 128, 5122944, 10245760, 15368576 -----前述(1)の様にfsckでエラーするので修復しておきます。----- 6.0# fsck /dev/ad0s4g ** /dev/ad0s4g ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups SUMMARY BLK COUNT(S) WRONG IN SUPERBLK SALVAGE? [yn] y 2 files, 2 used, 1275598 free (22 frags, 159447 blocks, 0.0% fragmentation) ***** FILE SYSTEM WAS MODIFIED ***** -----4.11で起動してfsckするとなぜかエラーするので修復します。----- 4.11# fsck /dev/ad0s4g ** /dev/ad0s4g ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups SUMMARY INFORMATION BAD SALVAGE? [yn] y 2 files, 2 used, 1275598 free (22 frags, 159447 blocks, 0.0% fragmentation) ***** FILE SYSTEM WAS MODIFIED ***** -------------------------(2)と違う操作はここまで、あと同じです。----- -----同様に200MBほどファイルを書き込みます。----- 4.11# mount /dev/ad0s4g /usr/home1 4.11# dd if=/dev/zero of=/usr/home1/test1 bs=10240 count=20000 20000+0 records in 20000+0 records out 204800000 bytes transferred in 10.413885 secs (19666052 bytes/sec) -----dfすると使用量が増えています。----- 4.11# df /usr/home1 Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ad0s4g 10204800 200080 9188336 2% /usr/home1 -----6.0Rで起動してマウントすると使用量が0のままです。----- 6.0# mount -r /dev/ad0s4g /usr/home1 6.0# df /usr/home1 Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ad0s4g 10204800 16 9388400 0% /usr/home1 6.0# umount /usr/home1 -----fsckすると直りますが、6.0Rで作ったUFS1の方がエラーが増えます。----- 6.0# fsck /dev/ad0s4g ** /dev/ad0s4g ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups SUMMARY INFORMATION BAD SALVAGE? [yn] y SUMMARY BLK COUNT(S) WRONG IN SUPERBLK SALVAGE? [yn] y 3 files, 25010 used, 1250590 free (22 frags, 156321 blocks, 0.0% fragmentation) ***** FILE SYSTEM WAS MODIFIED ***** -----dfすると使用量が増えています。----- 6.0# mount -r /dev/ad0s4g /usr/home1 6.0# df /usr/home1 Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ad0s4g 10204800 200080 9188336 2% /usr/home1 =============他の領域の状況================= 他に4.11で利用している領域を6.0でリードオンリーでマウントしてみました。 Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ad0s2a 120926 47228 64024 42% /usr/tmp/t1 /dev/ad0s2g 1726328 1409016 179206 89% /usr/tmp/t2 /dev/ad0s2f 1209630 1012654 100206 91% /usr/tmp/t3 /dev/ad1s1e 39987736 8 36788712 0% /usr/home3 最後の/usr/home3だけブロックサイズ 65536で、後は16384です。 /usr/home3は40GBで、ファイルが9割くらい有ります。 他のパーティションは使用量が正しく出ます。 ブロックサイズ65536の物だけ、ディスク使用量がおかしいです。 ==========