標準ファームと Debian との mke2fs の違い

Debian LS-AVL/A LS-VL

LS-AVL でも
ローカルディスクにディレクトリツリーを作るところまではセルフで、
HDD に書きこむところだけをクロス(別マシン)で、
ようやくハックキットが動くようになったが、、、、

一つ目の謎。

LS-VL の
標準ファームで mke2fs -j -I 128 /dev/sdb1 したら起動するのに、
Debian でmke2fs -j -I 128 /dev/sdb1 したら起動しない。

それぞれを tune2fs で見てみる。

標準ファーム

LS-VL を標準ファームで起動して、mkfs する。
root@LS-VL815:~# mke2fs -j -I 128 /dev/sdb1
mke2fs 1.40.5 (27-Jan-2008)
/dev/sdb1 is mounted; will not make a filesystem here!
root@LS-VL815:~# df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/sda2              4923420    818748   3854576  18% /
udev                     10240       116     10124   1% /dev
/dev/ram1                15360       152     15208   1% /mnt/ram
/dev/sda1               992036    256312    685728  27% /boot
/dev/usbdisk1_1         992036     17636    924404   2% /mnt/usbdisk1
/dev/disk1_6         237023872    582132 236441740   0% /mnt/disk1
tmpfs                     8192      2032      6160  25% /mnt/ram/com.kernel.org
root@LS-VL815:~# umount /mnt/usbdisk1/
root@LS-VL815:~# mke2fs -j -I 128 /dev/sdb1
mke2fs 1.40.5 (27-Jan-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
62720 inodes, 249995 blocks
12499 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=260046848
8 block groups
32768 blocks per group, 32768 fragments per group
7840 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
root@LS-VL815:~# tune2fs -l /dev/sdb1
tune2fs 1.40.5 (27-Jan-2008)
Filesystem volume name:   
Last mounted on:          
Filesystem UUID:          7493f641-4175-429f-9217-906ae515f2fe
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         unsigned_directory_hash
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              62720
Block count:              249995
Reserved block count:     12499
Free blocks:              243596
Free inodes:              62709
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      61
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         7840
Inode blocks per group:   245
Filesystem created:       Thu Dec 22 22:38:22 2011
Last mount time:          n/a
Last write time:          Thu Dec 22 22:38:22 2011
Mount count:              0
Maximum mount count:      26
Last checked:             Thu Dec 22 22:38:22 2011
Check interval:           15552000 (6 months)
Next check after:         Tue Jun 19 22:38:22 2012
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal inode:            8
Default directory hash:   tea
Directory Hash Seed:      28a722fe-ac25-42a6-a01a-d0ac40c893b9
Journal backup:           inode blocks
root@LS-VL815:~#

Debian

次は、ハックキットで起動して、 mkfs する
root@vl:~# mke2fs -j -I 128 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
62720 inodes, 249995 blocks
12499 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=260046848
8 block groups
32768 blocks per group, 32768 fragments per group
7840 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
root@vl:~# tune2fs -l /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   
Last mounted on:          
Filesystem UUID:          6b9f94ef-b8c3-41f6-8e96-a72a69e0145f
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         unsigned_directory_hash
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              62720
Block count:              249995
Reserved block count:     12499
Free blocks:              243597
Free inodes:              62709
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      61
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         7840
Inode blocks per group:   245
Filesystem created:       Thu Dec 22 22:44:37 2011
Last mount time:          n/a
Last write time:          Thu Dec 22 22:44:37 2011
Mount count:              0
Maximum mount count:      28
Last checked:             Thu Dec 22 22:44:37 2011
Check interval:           15552000 (6 months)
Next check after:         Tue Jun 19 22:44:37 2012
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      6ad8e150-c767-48b6-b9bc-8ff8e5d04ac1
Journal backup:           inode blocks
root@vl:~#

違いは?

UUID が違う。まぁあたりまえ。
Free blocks が違う。
Default directory hash が違う。なにこれ?
Directory Hash Seed も違う。

いろいろググッて mke2fs -E hash_alg=tea とすれば

Default directory hash:   tea
とできそうである。

Default directory hash を tea にする

ハックキット(Debian)にて、
root@vl:~# mke2fs -j -I 128 -E hash_alg=tea /dev/sdb1
mke2fs 1.41.12 (17-May-2010)

Bad option(s) specified: hash_alg

Extended options are separated by commas, and may take an argument which
        is set off by an equals ('=') sign.

Valid extended options are:
        stride=
        stripe-width=
        resize=
        lazy_itable_init=<0 to disable, 1 to enable>
        test_fs

root@vl:~#
むむむ。

LS-AVL の U-Boot は

Default directory hash:   tea
でないと boot しないようだ。
でも Debian の mke2fs は
Default directory hash:   tea
で mkfs できないようだ。。。困った

まぁ、標準ファームがあるのでいいんだけれど、、、消化不良




LS-AVL/A
楽天市場
Amazon
uWorks
ValuMore
Yahoo!ショッピング
LS-VL

楽天市場
Amazon


LinkStation Cloud Edition シリーズ ファームウェア アップデーター Ver.1.12
ハックの記録
LinkStation/玄箱 をハックしよう

LinkStation Cloud Edition シリーズ ファームウェア アップデーターをみる

Copyright (C) 2003-2011 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市