第7章 USB SSDシステム構築

Armadillo-500 FX 液晶モデルでは、USB接続Solid State Disk(以降、SSDと表記)にLinuxシステムを構築することができます。この章では、起動可能なSSDシステムの構築手順について説明します。

[警告]

SSDにLinuxカーネルをインストールしてブートさせることができません。ここで構築するファイルシステムを起動する時でも、Linuxカーネルは フラッシュメモリに書き込まれている物を使用します。

この章では、表7.1「SSDシステム例」のようなSSDシステムを例に、構築手順を説明します。

表7.1 SSDシステム例

パーティション

タイプ

容量

説明

/dev/sda1

ext3

1GB

ルートファイルシステムを配置する領域です。


7.1. SSDの初期化

ここでは、SSDをフォーマットし、パーティション1にEXT3ファイルシステムを作成するところまでの手順を説明します。

7.1.1. ディスクフォーマット

図7.1「ディスク初期化方法」のように、ディスクをフォーマットします。

[armadillo ~]# fdisk /dev/sda

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-1324, 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): p

Disk /dev/sda: 1027 MB, 1027604480 bytes
32 heads, 62 sectors/track, 1011 cylinders
Units = cylinders of 1984 * 512 = 1015808 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        1011     1002881   83  Linux

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

Calling ioctl() to re-read partition table.
sd 1:0:0:0: [sda] 2007040 512-byte hardware sectors (1028 MB)
sd 1:0:0:0: [sda] Write Protect is off
sd 1:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 1:0:0:0: [sda] 2007040 512-byte hardware sectors (1028 MB)
sd 1:0:0:0: [sda] Write Protect is off
sd 1:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
Syncing disks.

図7.1 ディスク初期化方法


7.1.2. ファイルシステムの作成

図7.2「ファイルシステムの構築」のように初期化したディスクのパーティションにファイルシステムを作成します。

[armadillo ~]# mke2fs -j /dev/sda1
mke2fs 1.25 (20-Sep-2001)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
125440 inodes, 250720 blocks
12536 blocks (5%) reserved for the super user
First data block=0
8 block groups
32768 blocks per group, 32768 fragments per group
15680 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 35 mounts or
180.00 days, whichever comes first.  Use tune2fs -c or -i to override.

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


7.2. ルートファイルシステムの構築

ここでは、SSDにルートファイルシステムを構築する手順について説明します。

7.2.1. Debian GNU/Linuxを構築する

Debianを構築する場合、付属CDのdebianディレクトリ以下のアーカイブを使用します。これは、純粋なDebianでインストールされるファイルを分割してアーカイブ化したものとなります。これらをファイルシステム上に展開することでルートファイルシステムを構築することができます。図7.3「Debianアーカイブの展開例」に展開例を示します。

[ティップ]

ルートファイルシステムにDebianを構築する場合は、パーティションの空き容量が最低でも256MB必要です。

[armadillo ~]# mount /dev/sda1 /mnt
[armadillo ~]# cd /mnt

[armadillo /mnt]# wget http://download.atmark-techno.com/armadillo-500/debian/debian-etch-arm1.tgz
Connecting to download.atmark-techno.com [210.191.215.172]:80
debian-etch-1.tgz    100% |************************|  **** KB    00:00 ETA
[armadillo /mnt]# tar -xzf debian-etch-arm1.tgz
[armadillo /mnt]# rm -f debian-etch-arm1.tgz

同様に、debian-etch-arm2.tgzからdebian-etch-arm5.tgzについて繰り返します。

[armadillo /mnt]# cd ~
[armadillo ~]# umount /mnt

図7.3 Debianアーカイブの展開例


7.2.2. atmark-distイメージから構築する

atmark-distで作成されるシステムイメージをSSDのルートファイルシステムとして構築する方法を説明します。ここでは、ユーザーランドイメージ(romfs.img.gz)から構築する手順を図7.4「romfs.img.gzからの作成例」で示します。

[armadillo ~]# mount /dev/sda1 /mnt
[armadillo ~]# cd /mnt
[armadillo /mnt]# wget http://download.atmark-techno.com/armadillo-500-fx/image/romfs-a500-fx-[version].img.gz
Connecting to download.atmark-techno.com [210.191.215.172]:80
romfs-a500-fx-[version].img.gz 100% |**********************|  **** KB    00:00 ETA
[armadillo /mnt]# gzip -dc romfs-a500-fx-[version].img.gz > romfs.img
[armadillo /mnt]# mkdir romfs
[armadillo /mnt]# mount -o loop romfs.img romfs
[armadillo /mnt]# (cd romfs/; tar cf - *) | (cd /mnt; tar xf -)
[armadillo /mnt]# umount romfs
[armadillo /mnt]# rm -rf romfs
[armadillo /mnt]# rm -f romfs-a500-fx-[version].img.gz
[armadillo /mnt]# cd ~
[armadillo ~]# umount /mnt

図7.4 romfs.img.gzからの作成例


7.3. SSDシステムの起動

ジャンパにより起動モードを保守モードに設定し、再起動してください。

保守モードで立ち上げ、SSDのルートファイルシステムで起動するためには、図7.5「ルートファイルシステム指定例」を実行してください。

hermit> setenv console=ttymxc0 root=/dev/sda1 rootwait usb-storage.delay_use=0 noinitrd video=mxcfb:KYOCERA-VGA,16bpp,enable

図7.5 ルートファイルシステム指定例


7.4. システム設定例

新しくシステムを構築した場合、システム起動時にWARNINGが表示される場合があります。それらのWARNINGを解決する方法を説明します。

7.4.1. Debianシステム

7.4.1.1. modulesディレクトリの更新

WARNING

modprobe: FATAL: Could not load /lib/modules/2.6.18/modules.dep: No such file or directory

図7.6 WARNING:modules.dep


解決方法

システムにログインし、図7.7「解決方法:modules.dep」のようにコマンド[9]を実行します。

[debian ~]# mkdir -p /lib/modules/`uname -r`
[debian ~]# depmod

図7.7 解決方法:modules.dep


7.4.2. atmark-distシステム

7.4.2.1. fstabの更新

WARNING

fsck.ext2: Bad magic number in super-block while trying to open /dev/ram0
(null):
The superblock could not be read or does not describe a correct ext2
filesystem.  If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>

WARNING: Error while checking root filesystem.
You can login as root now, the system will reboot after logout.

Give root password for system maintenance
(or type Control-D for normal startup):

図7.8 WARNING:fstab


解決方法

システムにログインし、/etc/fstab図7.9「解決方法:fstab」のように変更します。

[debian ~]# vi /etc/fstab

/dev/sda1       /               ext3    defaults    0   1
proc            /proc           proc    defaults    0   0
usbfs           /proc/bus/usb   usbfs   defaults    0   0
sysfs           /sys            sysfs   defaults    0   0

図7.9 解決方法:fstab




[9] 「uname -r」の前後の記号はクォートではなくバッククォートです。