第6章 ストレージ

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

Armadillo-460では、表6.1「ストレージデバイス」に示すデバイスをストレージとして使用することができます。

表6.1 ストレージデバイス

デバイス種類ディスクデバイス先頭パーティション
USBフラッシュメモリ/dev/sd*/dev/sd*1
MMC/SDカード/dev/mmcblk*/dev/mmcblk*p1

6.2. ストレージの使用方法

ここでは、SDカードを例にストレージの使用方法を説明します。

Linuxでは、アクセス可能なファイルやディレクトリは、一つの木構造にまとめられています。あるストレージデバイスのファイルシステムを、この木構造に追加することを、マウントするといいます。マウントを行うコマンドは、mountです。

mountコマンドの典型的なフォーマットは、図6.1「mountコマンド書式」の通りです。

mount -t [FSTYPE] [DEVICE FILE] [MOUNT DIR]

図6.1 mountコマンド書式


-t オプションに続いて、ファイルシステムを指定します[8]。FAT32ファイルシステムの場合はvfat[9]、EXT3ファイルシステムの場合はext3を指定します。

[DEVICE FILE]には、ストレージデバイスのデバイスファイル名を指定します。SDカードのパーティション1の場合は/dev/mmcblk0p1、パーティション2の場合は/dev/mmcblk0p2となります。

[MOUNT DIR]には、ストレージデバイスのファイルシステムをマウントするディレクトリを指定します。

SDスロットにSDカードを挿入した状態で図6.2「ストレージのマウント」に示すコマンドを実行すると、/mntディレクトリにSDカードのファイルシステムをマウントします。SDカード内のファイルは、/mntディレクトリ以下に見えるようになります。

[armadillo ~]# mount -t vfat /dev/mmcblk0p1 /mnt

図6.2 ストレージのマウント


ストレージを安全に取り外すには、アンマウントする必要があります。アンマウントを行うコマンドは、umountです。

umountコマンドの典型的なフォーマットは、図6.3「umountコマンド書式」の通りです。

umount [DEVICE FILE]|[MOUNT DIR]

図6.3 umountコマンド書式


[DEVICE FILE]|[MOUNT DIR]には、ストレージデバイスのデバイスファイル名または、ファイルシステムがマウントされているディレクトリを指定します。

/mntディレクトリにマウントされているファイルシステムをアンマウントするコマンド例を、図6.4「ストレージのアンマウント」に示します。

[armadillo ~]# umount /mnt

図6.4 ストレージのアンマウント


6.3. ストレージのパーティション変更とフォーマット

通常、購入したばかりのSDカードやUSBメモリは、一つのパーティションを持ち、FAT32ファイルシステムでフォーマットされています。

パーティション構成を変更したい場合、fdiskコマンドを使用します。fdiskコマンドの使用例として、一つのパーティションで構成されているSDカードのパーティションを、2つに分割する例を図6.5「fdiskコマンドによるパーティション変更」に示します。一度、既存のパーティションを削除してから、新たにプライマリパーティションを二つ作成しています。先頭のパーティションには100MByte、二つめのパーティションに残りの容量を割り当てています。先頭のパーティションは/dev/mmcblk0p1、二つめは/dev/mmcblk0p2となります。fdiskコマンドの詳細な使い方は、manページ等をご参照ください。

[armadillo ~]# fdisk /dev/mmcblk0

The number of cylinders for this disk is set to 62528.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): d
Selected partition 1

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

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

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

Calling ioctl() to re-read partition table.
 mmcblk0: p1 p2
 mmcblk0: p1 p2
Syncing disks.

図6.5 fdiskコマンドによるパーティション変更


FAT32ファイルシステムでストレージデバイスをフォーマットするには、mkfs.vfatコマンドを使用します。また、EXT2やEXT3ファイルシステムでフォーマットするには、mke2fsコマンドを使用します。SDカードのパーティション1をEXT3ファイルシステムでフォーマットするコマンド例を、図6.6「EXT3ファイルシステムの構築」に示します。

[armadillo ~]# mke2fs -j /dev/mmcblk0p1

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




[8] ファイルシステムの指定は省略可能です。省略した場合、mountコマンドは、ファイルシステムを推測します。この推測は、必ずしも適切なものとは限りませんので、ファイルシステムが分かっている場合は、明示的に指定した方が良いでしょう。

[9] 通常、購入したばかりのSDカードは、FAT32ファイルシステムでフォーマットされています。