第9章 ストレージ

9.1. ストレージとして使用可能なデバイス

開発ボードでは、表9.1「ストレージデバイス」に示すデバイスをストレージとして使用することができます。

表9.1 ストレージデバイス

デバイス種類ディスクデバイス先頭パーティション
オンボードNANDフラッシュ/dev/flash/nand.*/dev/flash/nand.ipl
コンパクトフラッシュ/dev/hda/dev/hda1
MMC/SDカード/dev/mmcblk/dev/mmcblk0p1
USBメモリ/dev/sd*/dev/sda1

9.2. ストレージの初期化とマウント

ストレージの初期化とマウント方法について説明します。

9.2.1. NANDフラッシュデバイス

ここでは、パーティション/dev/flash/nand.free(/dev/mtd7、/dev/mtdblock7)を例にとります。

MTDのパーティション情報は、図9.1「MTDパーティション一覧」のようにコマンドを実行すると表示されます。

[armadillo ~]# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00008000 "nor.bootloader"
mtd1: 00200000 00020000 "nor.kernel"
mtd2: 00dc0000 00020000 "nor.userland"
mtd3: 00020000 00020000 "nor.config"
mtd4: 00020000 00020000 "nand.ipl"
mtd5: 00400000 00020000 "nand.kernel"
mtd6: 01600000 00020000 "nand.userland"
mtd7: 0e5e0000 00020000 "nand.free"

図9.1 MTDパーティション一覧


9.2.1.1. ファイルシステムをJFFS2にする場合

ファイルシステムをJFFS2(Journalling Flash File System v2)にする場合は、デバイスの初期化と同時にファイルシステムを構築することができます。図9.2「NANDの初期化例」のようにコマンドを実行してください。

[armadillo ~]# flash_eraseall --jffs2 /dev/flash/nand.free
Erasing 128 Kibyte @ e5e0000 -- 100 % complete.Cleanmarker written at e5c0000.

図9.2 NANDの初期化例


9.2.1.2. マウント

初期化後、マウントするには、図9.3「NANDのマウント方法」のようにコマンドを実行します。

[armadillo ~]# mount -t jffs2 /dev/mtdblock7 /mnt

図9.3 NANDのマウント方法


9.2.2. その他のデバイス

9.2.2.1. ディスクの初期化

ここでは、コンパクトフラッシュ(/dev/hda)を例にとり、パーティションを1つ作ります。

[armadillo ~]# fdisk /dev/hda
Command (m for help): d
Selected partition 1

Command (m for help): d
No partition is defined yet!

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

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
 hda: hda1
 hda: hda1
Syncing disks.

図9.4 ディスク初期化方法


9.2.2.2. ファイルシステムの構築

初期化したディスクのパーティションにファイルシステムを構築します。ここでは、コンパクトフラッシュのパーティション1(/dev/hda1)にEXT2を構築します。

[armadillo ~]# mke2fs -O none /dev/hda1
mke2fs 1.25 (20-Sep-2001)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
15680 inodes, 62651 blocks
3132 blocks (4%) reserved for the super user
First data block=1
8 block groups
8192 blocks per group, 8192 fragments per group
1960 inodes per group
Superblock backups stored on blocks:
        8193, 16385, 24577, 32769, 40961, 49153, 57345

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

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

図9.5 ファイルシステムの構築


9.2.2.3. マウント

ファイルシステムを作成後、図9.6「マウント方法」のようにコマンドを実行する事で、ext2ファイルシステムを使用して/dev/hda1を/mntにマウントします。

[armadillo ~]# mount -t ext2 /dev/hda1 /mnt

図9.6 マウント方法