kuroの覚え書き

96の個人的覚え書き

SDカードをext2でフォーマットする?



openWRT/LaFoneraでSDカードを認識させる為にSDカードをext2フォーマットにしようと思い、あれこれやってみたんだがどうもよくわからない。まあLinuxが走るPCがないのでVirtualPC上でごにょごにょしているのが原因の可能性も高いのだけれど。

そもそもSDカードのFATフォーマットってPanasonicの呪いがかけられているのか、パーティションの設定からしてどうも普通のFATとは違っているらしい。なのでかどうかこれまたわからないんだが、LinuxにUSBカードリーダ経由でSDカードをマウントしようとすると、どうやっても出来なかった。

SDカードのext2フォーマットに関する情報はリナザウ系コミュニティーで盛んにやり取りされて入るんだが、PC-Linuxではイマイチ話題に上らないみたいなんだな。



と、悩みつつmmcドライバの配布元のディレクトリを漁ってみると

http://fon.testbox.dk/packages/mmc/phrozendriver/STOP.txt

こんな情報発見。


You need a filesystem driver to use MMC cards. Make sure you install kmod-fs-ext2 or kmod-fs-vfat in addition to the other dependencies (kmod-nls-cp437, kmod-nls-iso8859-1, and kmod-nls-base).

だと。ファイルシステムを入れないといかんらしい。もしかしてkmod-fs-vfatをインストールすればext2にフォーマットしなくても使えたりしないだろうか?


というわけでやってみた。まずは

root@OpenWrt:/# ipkg install kmod-fs-vfat

でモジュールをインストール。

そのうえで

root@OpenWrt:/# mount -t vfat /dev/mmc /tmp

結果はX。やはりエラーが出て使えない。

その後Packagesを眺めているとfdiskがあることを発見。

root@OpenWrt:/# ipkg install fdisk

でfdiskをインストールし、

root@OpenWrt:/# fdisk /dev/mmc

Command (m for help):

と出たのでまずはディスクの状態をみてみる。


Command (m for help): p

Disk /dev/mmc: 6 MB, 6782976 bytes
1 heads, 32 sectors/track, 414 cylinders
Units = cylinders of 32 * 512 = 16384 bytes

Device Boot Start End Blocks Id System
/dev/mmc1 1 415 6627+ 1 FAT12
Partition 1 has different physical/logical endings:
phys=(207, 0, 32) logical=(414, 0, 32)

ちなみに8MBのパナのSDカード。

パーティションを消して新たに作り直す。


Command (m for help): d
Selected partition 1

Command (m for help): p

Disk /dev/mmc: 6 MB, 6782976 bytes
1 heads, 32 sectors/track, 414 cylinders
Units = cylinders of 32 * 512 = 16384 bytes

Device Boot Start End Blocks Id System

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (2-414, default 2):
Using default value 2
Last cylinder or +size or +sizeM or +sizeK (2-414, default 414):
Using default value 414

こんな感じに出来上がり。


Command (m for help): p

Disk /dev/mmc: 6 MB, 6782976 bytes
1 heads, 32 sectors/track, 414 cylinders
Units = cylinders of 32 * 512 = 16384 bytes

Device Boot Start End Blocks Id System
/dev/mmc1 2 414 6608 83 Linux

で、これをフォーマットしたいのだけれどmke2fsコマンドが無いようなのでまたPackageを漁るとそれらしいもの発見。

root@OpenWrt:/# ipkg install e2fsprogs

早速フォーマットしてみる


root@OpenWrt:/# mke2fs /dev/mmc
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
832 inodes, 6624 blocks
331 blocks (5.00%) reserved for the super user
First data block=1
1 block group
8192 blocks per group, 8192 fragments per group
832 inodes per group

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

やった!成功。

マウントしてみると


root@OpenWrt:/# mount /dev/mmc /mnt
root@OpenWrt:/# ls /mnt/
lost+found

ばっちりじゃないの。