第7章 ストレージ

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

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

表7.1 ストレージデバイス

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

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

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

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

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

mount -t fstype device dir

図7.1 mountコマンド書式


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

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

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

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

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

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


ストレージを安全に取り外すには、アンマウントする必要があります。アンマウントを行うコマンドは、umountです。オプションとして、アンマウントしたいデバイスがマウントされているディレクトリを指定します。

[armadillo ~]# umount /mnt

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


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

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

パーティション構成を変更したい場合、fdiskコマンドを使用します。fdiskコマンドの使用例として、一つのパーティションで構成されているmicroSDカードのパーティションを、2つに分割する例を図7.4「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.

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


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

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

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




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

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