ブログ

Armadillo-X1, Armadillo-IoT G3/G3L: USBメモリにルートファイルシステムを構築する

at_ito
2017年8月7日 8時09分

Armadillo-X1, Armadillo-IoT G3/G3Lでは、SDカードをルートファイルシステムとして構築できず、USBメモリに構築する必要がある場合があります。その際のUSBメモリにルートファイルシステムを構築する手順を紹介します。

1. USBメモリのパーティション設定

ATDEにUSBメモリを接続した後、以下のコマンドを実行し、USBメモリのパーティション設定を行ってください。

[atde ~]$ sudo fdisk /dev/sdb
[sudo] password for atmark: 
 
Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
 
 
Command (m for help): o
Created a new DOS disklabel with disk identifier 0x2cf79549.
 
Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-7913471, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-7913471, default 7913471): 
 
Created a new partition 1 of type 'Linux' and of size 3.8 GiB.
 
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

2. USBメモリのフォーマット

以下のコマンドを実行しUSBメモリをEXT4でフォーマットしてください。

[atde ~]$ sudo mkfs.ext4 /dev/sdb1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 988928 4k blocks and 247504 inodes
Filesystem UUID: a29a9d20-dcd5-4c70-8e72-62b5d7b8120b
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736
 
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

3. USBメモリにルートファイルシステムを展開

事前にArmadillo用の「Debian GNU/Linux 8(jessie)ユーザーランド」をATDEにダウンロードしておき、以下のコマンドを実行しUSBメモリにルートファイルシステムを展開してください。

[atde ~]$ mkdir usb
[atde ~]$ sudo mount -t ext4 /dev/sdb1 usb
[atde ~]$ sudo tar zxf debian-jessie-armhf_ax1_20170419.tar.gz -C usb
[atde ~]$ sudo umount usb
[atde ~]$ rmdir usb

4. Armadilloのブートローダーの設定

USBメモリをPCから抜去した後、Armadilloに挿入し、保守モードで起動してください。

保守モードで起動した後、以下のコマンドを実行し、USBメモリのルートファイルシステムを使用するように設定してください。

=> printenv mmcroot
mmcroot=/dev/mmcblk2p2 rootwait rw
 
=> setenv mmcroot /dev/sda1 rootwait rw
=> printenv mmcroot
mmcroot=/dev/sda1 rootwait rw

※: 次回以降もUSBメモリから起動したい場合はsaveenvコマンドを実行してください。

5. Armadilloの起動

以下のコマンドを実行し、Linuxを起動してください。

=> boot