ユーザ用ツール

サイト用ツール


mae3xx_ope:extend_by_sd:start

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
mae3xx_ope:extend_by_sd:start [2014/03/13 15:42]
admin
mae3xx_ope:extend_by_sd:start [2019/12/17 20:34] (現在)
admin
ライン 1: ライン 1:
 +====== SDカードを利用したストレージ領域の拡張 ======
 +
 +[[mae3xx_ope:​package_install:​start]] での例の通り、本体のみでもある程度のパッケージの導入が可能です。\\
 +セルフ環境での開発もできますが、更新部分を本体RAMの tmpfs 領域に確保する必要がありますので、\\
 +パッケージの追加には、
 +
 +  * tmpfs の容量
 +  * 更新分保存領域の容量
 +
 +上記それぞれの制限を受けることになります。
 +
 +  * tmpfsに入りきらないような、大量のパッケージを導入したい
 +  * tmpfsによるメモリ消費が問題になるような、メモリ消費が大きなソフトウェアを動作させたい
 +  * 突然の電源断があっても、データが消えないような運用を行いたい (データベースなど)
 +
 +といった要望に応えるため、SDカード((USB Storage での拡張も検討中です))をファイルシステムの拡張領域として用いることができるようになっています。
 +
 +=== ※ 特徴/​注意点 ===
 +
 +  * aufsでファイルシステム全体にかぶせる形でマウントするため、どの場所でもRead/​Write可能です。
 +  * SDカードを使用しない方法([[mae3xx_ope:​boot_from_nand:​start]])とは、設定内容は共通化されません。
 +
 +\\
 +
 +===== 利用方法 =====
 +
 +==== 準備 ====
 +
 +拡張領域に使用するためのSDカードを準備します。
 +32GB SDHC規格までのSDカードが利用可能です。
 +
 +市販されているSDカード(MLC(([[http://​e-words.jp/​w/​MLC.html]]))のものがほとんどです)でも、試験的な運用には使用することができますが、\\
 +開発や実運用に利用する場合は書替寿命の問題がありますので、SLC(([[http://​e-words.jp/​w/​SLC.html]]))のSDカードで、ウェアレベリング機構に\\
 +問題のないデバイスの利用をお勧めします。
 +
 +※ SLC の SD カードは、弊社でも販売しております。お問い合わせは [[http://​www.centurysys.co.jp/​company/​contact.html#​init_tab2|こちら]] からお願い致します。
 +
 +\\
 +
 +==== 設定ファイルの作成 ====
 +
 +MA-E3xx に、準備したSDカードを "​拡張領域"​ として利用させるため、SDカードに設定ファイルを作成する必要があります。
 +
 +Windows PCなどにSDカードを挿入し、"​devel"​ というファイルを作成します。
 +
 +{{:​mae3xx_ope:​extend_by_sd:​exploper_00.png|"​devel"​ ファイルを新規作成}}
 +
 +
 +設定はこれだけでOKです。\\
 +
 +  * SDカード 空き容量の80%
 +  * 2GiB
 +
 +のいずれかの小さい方の容量のイメージファイルを自動的に作成し、拡張領域として利用します。
 +
 +  * マニュアルで拡張領域の容量を設定したい
 +  * 2GiB以上の拡張領域を作成したい
 +
 +といった場合には、後述するマニュアル設定を行う必要があります。 ​
 +
 +==== MA-E3xxの起動 ====
 +
 +準備したSDカードを、MA-E3xxのSDカードスロットに挿入し、NAND Flashをrootfsとするモードで起動します。\\
 +自動的に拡張領域を確保して利用します。
 +
 +
 +{{:​mae3xx_ope:​extend_by_sd:​putty_04.png|}}
 +
 +<​code>​
 +Begin: Running /​scripts/​init-bottom ...
 +       ​root-overlay: ​ Setting up aufs on /root as root file system
 +
 +MMC Filesystem: vfat detected.
 +'​devel'​ file found.
 +create loopback image file (1531 [MiB]) ...[   ​36.275969] random: nonblocking pool is initialized
 +1531+0 records in
 +1531+0 records out
 +done.
 +creating ext4 filesystem on image file...done.
 +[  123.746246] EXT4-fs (loop0): mounted filesystem with ordered data mode. Opts: (null)
 +</​code>​
 +
 +
 +下記の通り、1.5GiB程度 /rw, / に mount されていることがわかります。
 +
 +<​code>​
 +root@plum:​~#​ df
 +Filesystem ​    ​1K-blocks ​   Used Available Use% Mounted on
 +rootfs ​          ​1510304 ​   2484   ​1491436 ​  1% /
 +udev              503824 ​      ​4 ​   503820 ​  1% /dev
 +tmpfs             ​102644 ​    ​236 ​   102408 ​  1% /run
 +/​dev/​mtdblock8 ​    ​55296 ​  ​55296 ​        0 100% /ro
 +overlay-tmpfs ​    ​513212 ​  ​22608 ​   490604 ​  5% /rw.tmpfs
 +/​dev/​mmcblk0p1 ​  ​1960960 1567756 ​   393204 ​ 80% /​rw.tmpfs/​mnt/​mmc <-- SDカード全体の80%利用中
 +/​dev/​loop0 ​      ​1510304 ​   2484   ​1491436 ​  1% /rw               <​-- 拡張領域
 +/​dev/​loop1 ​         1024    1024         0 100% /​ro/​lib/​modules
 +/​dev/​loop2 ​        ​21504 ​  ​21504 ​        0 100% /​ro/​usr/​lib/​jvm
 +overlay ​         1510304 ​   2484   ​1491436 ​  1% /                 <​---- aufsにより / の上にかぶせてmount中
 +overlay.log ​      ​513212 ​  ​22608 ​   490604 ​  5% /var/log
 +overlay.kmod ​    ​1510304 ​   2484   ​1491436 ​  1% /​lib/​modules
 +overlay.jvm ​     1510304 ​   2484   ​1491436 ​  1% /​usr/​lib/​jvm
 +ubi0:​overlay ​      ​40292 ​    ​116 ​    ​38116 ​  1% /​rw.tmpfs/​.overlay
 +none                   ​4 ​      ​0 ​        ​4 ​  0% /​sys/​fs/​cgroup
 +none                5120       ​0 ​     5120   0% /run/lock
 +none              513212 ​      ​0 ​   513212 ​  0% /run/shm
 +none              102400 ​      ​0 ​   102400 ​  0% /run/user
 +root@plum:​~# ​
 +</​code>​
 +
 +このモードで起動しているときは、『SDカードを利用中』を表すために、"​POWER"​ LEDが 緑+赤 の点灯となります。
 +
 +{{:​mae3xx_ope:​extend_by_sd:​mae3xx_front_02.jpg|POWER LED 緑+赤(SDカード利用中)}}
 +
 +\\
 +
 +==== イメージファイルサイズのマニュアル設定 ====
 +
 +"​devel"​ ファイルに作成したいイメージファイルのサイズを KiB 単位で書いておくことで、\\
 +イメージファイルのサイズをマニュアルで設定することができます。
 +
 +{{:​mae3xx_ope:​extend_by_sd:​editor_00.png|1GiBのイメージファイルを作成}}
 +
 +
 +サイズを指定する際は、数値だけでなく上の例の通りシェルスクリプトで計算可能な数式での指定も可能です。
 +
 +この設定ファイルを保存したSDカードを使用した場合、下のとおり 1GiB の拡張領域を作成して利用します。
 +
 +{{:​mae3xx_ope:​extend_by_sd:​putty_05.png|1GiBの拡張領域を作成}}
 +
 +この方法では、FATファイルシステムのファイルサイズ上限 4GiB までの拡張領域を利用することができます。
 +
 +
 +
 +==== 4GiBを超えるサイズの拡張領域を利用する ====
 +
 +SDカードにイメージファイルを作成し、ループバックマウントして利用する方式をとっている関係上、\\
 +前述の通りイメージファイルのサイズはベースとなるSDカードのファイルシステムの制限を受けることになります。
 +
 +4GiB以上の拡張領域を利用する場合、SDカードを **ext4** ファイルシステムでフォーマットする必要があります。
 +
 +作業は MA-E3xx で可能です。手順は下記のとおりとなります。
 +
 +  * SDカードをMA-E3xxに挿入する。
 +  * fdiskコマンドで、パーティションのタイプを 83(Linux) に変更する。
 +
 +<​code>​
 +root@plum:​~#​ fdisk /​dev/​mmcblk0  ​
 +
 +Command (m for help): p
 +
 +Disk /​dev/​mmcblk0:​ 7969 MB, 7969177600 bytes
 +221 heads, 20 sectors/​track,​ 3521 cylinders, total 15564800 sectors
 +Units = sectors of 1 * 512 = 512 bytes
 +Sector size (logical/​physical):​ 512 bytes / 512 bytes
 +I/O size (minimum/​optimal):​ 512 bytes / 512 bytes
 +Disk identifier: 0x00000000
 +
 +        Device Boot      Start         ​End ​     Blocks ​  ​Id ​ System
 +/​dev/​mmcblk0p1 ​           8192    15564799 ​    ​7778304 ​   b  W95 FAT32
 +
 +Command (m for help): t
 +Selected partition 1
 +Hex code (type L to list codes): L
 +
 + ​0 ​ Empty           ​24 ​ NEC DOS         ​81 ​ Minix / old Lin bf  Solaris ​       ​
 + ​1 ​ FAT12           ​27 ​ Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 + ​2 ​ XENIX root      39  Plan 9          83  Linux           ​c4 ​ DRDOS/sec (FAT-
 + ​3 ​ XENIX usr       ​3c ​ PartitionMagic ​ 84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 + ​4 ​ FAT16 <​32M ​     40  Venix 80286     ​85 ​ Linux extended ​ c7  Syrinx ​        
 + ​5 ​ Extended ​       41  PPC PReP Boot   ​86 ​ NTFS volume set da  Non-FS data    ​
 + ​6 ​ FAT16           ​42 ​ SFS             ​87 ​ NTFS volume set db  CP/M / CTOS / .
 + ​7 ​ HPFS/​NTFS/​exFAT 4d  QNX4.x ​         88  Linux plaintext de  Dell Utility ​  
 + ​8 ​ AIX             ​4e ​ QNX4.x 2nd part 8e  Linux LVM       ​df ​ BootIt ​        
 + ​9 ​ AIX bootable ​   4f  QNX4.x 3rd part 93  Amoeba ​         e1  DOS access ​    
 + ​a ​ OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        ​
 + ​b ​ W95 FAT32       ​51 ​ OnTrack DM6 Aux 9f  BSD/​OS ​         e4  SpeedStor ​     ​
 + ​c ​ W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        ​
 + ​e ​ W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD ​        ​ee ​ GPT            ​
 + ​f ​ W95 Ext'd (LBA) 54  OnTrackDM6 ​     a6  OpenBSD ​        ​ef ​ EFI (FAT-12/16/
 +10  OPUS            55  EZ-Drive ​       a7  NeXTSTEP ​       f0  Linux/​PA-RISC b
 +11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor ​     ​
 +12  Compaq diagnost 5c  Priam Edisk     ​a9 ​ NetBSD ​         f4  SpeedStor ​     ​
 +14  Hidden FAT16 <3 61  SpeedStor ​      ​ab ​ Darwin boot     ​f2 ​ DOS secondary  ​
 +16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    ​
 +17  Hidden HPFS/NTF 64  Novell Netware ​ b7  BSDI fs         ​fc ​ VMware VMKCORE ​
 +18  AST SmartSleep ​ 65  Novell Netware ​ b8  BSDI swap       ​fd ​ Linux raid auto
 +1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep ​       ​
 +1c  Hidden W95 FAT3 75  PC/IX           ​be ​ Solaris boot    ff  BBT            ​
 +1e  Hidden W95 FAT1 80  Old Minix      ​
 +Hex code (type L to list codes): 83
 +Changed system type of partition 1 to 83 (Linux)
 +
 +Command (m for help): w
 +The partition table has been altered!
 +
 +Calling ioctl() to re-read partition table.
 +
 +WARNING: If you have created or modified any DOS 6.x
 +partitions, please see the fdisk manual page for additional
 +information.
 +Syncing disks.
 +root@plum:​~# ​
 +</​code>​
 +
 +  * SDカードを **ext4** ファイルシステムでフォーマットする。((ext4 lazy init オプションを無効にする必要があります。bootloaderで認識されないケースがあります。))
 +
 +<​code>​
 +root@plum:​~#​ mkfs.ext4 -m 0 -E lazy_itable_init=0,​lazy_journal_init=0 /​dev/​mmcblk0p1
 +mke2fs 1.42.8 (20-Jun-2013)
 +Discarding device blocks: done                            ​
 +Filesystem label=
 +OS type: Linux
 +Block size=4096 (log=2)
 +Fragment size=4096 (log=2)
 +Stride=0 blocks, Stripe width=0 blocks
 +486720 inodes, 1944576 blocks
 +0 blocks (0.00%) reserved for the super user
 +First data block=0
 +Maximum filesystem blocks=1992294400
 +60 block groups
 +32768 blocks per group, 32768 fragments per group
 +8112 inodes per group
 +Superblock backups stored on blocks: ​
 + 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
 +
 +Allocating group tables: done                            ​
 +Writing inode tables: done                            ​
 +Creating journal (32768 blocks): done
 +Writing superblocks and filesystem accounting information:​ done 
 +
 +root@plum:​~# ​
 +</​code>​
 +
 +  * SDカードをマウントする。
 +
 +<​code>​
 +root@plum:​~#​ mount /​dev/​mmcblk0p1 /​mnt/​sd ​
 +root@plum:​~#​ df
 +Filesystem ​     1K-blocks ​ Used Available Use% Mounted on
 +rootfs ​            ​513212 ​  ​120 ​   513092 ​  1% /
 +udev               ​503824 ​    ​8 ​   503816 ​  1% /dev
 +tmpfs              102644 ​  ​244 ​   102400 ​  1% /run
 +/​dev/​mtdblock8 ​     55296 55296         0 100% /ro
 +overlay-tmpfs ​     513212 22760    490452 ​  5% /rw.tmpfs
 +overlay-persist ​   513212 ​  ​120 ​   513092 ​  1% /rw
 +/​dev/​loop0 ​          ​1024 ​ 1024         0 100% /​ro/​lib/​modules
 +/​dev/​loop1 ​         21504 21504         0 100% /​ro/​usr/​lib/​jvm
 +overlay ​           513212 ​  ​120 ​   513092 ​  1% /
 +overlay.log ​       513212 22760    490452 ​  5% /var/log
 +overlay.kmod ​      ​513212 ​  ​120 ​   513092 ​  1% /​lib/​modules
 +overlay.jvm ​       513212 ​  ​120 ​   513092 ​  1% /​usr/​lib/​jvm
 +ubi0:​overlay ​       40292   ​120 ​    ​38112 ​  1% /​rw.tmpfs/​.overlay
 +none                    4     ​0 ​        ​4 ​  0% /​sys/​fs/​cgroup
 +none                 ​5120 ​    ​0 ​     5120   0% /run/lock
 +none               ​513212 ​    ​0 ​   513212 ​  0% /run/shm
 +none               ​102400 ​    ​0 ​   102400 ​  0% /run/user
 +/​dev/​mmcblk0p1 ​   7525000 17088   ​7491528 ​  1% /​mnt/​sd ​  <​----
 +</​code>​
 +
 +  * "​devel"​ ファイルを作成し、作成したい拡張領域のサイズを設定する。
 +
 +  4GiB の拡張領域を作成する例です。
 +
 +<​code>​
 +root@plum:​~#​ echo "​4*1024*1024"​ > /​mnt/​sd/​devel
 +root@plum:​~#​ cat /​mnt/​sd/​devel ​
 +4*1024*1024
 +</​code>​
 +
 +  * 再起動を行う。
 +
 +<​code>​
 +root@plum:​~#​ reboot
 +root@plum:​~# ​
 +Broadcast message from root@plum
 + (/​dev/​pts/​0) at 16:11 ...
 +
 +The system is going down for reboot NOW!
 +</​code>​
 +
 +再起動後の状態は下記のようになります。
 +
 +{{:​mae3xx_ope:​extend_by_sd:​putty_06.png|4GiB 拡張領域作成中}}
 +
 +4GiBの拡張領域が作成されていることがわかります。
  
mae3xx_ope/extend_by_sd/start.1394692959.txt.bz2 · 最終更新: 2014/03/13 15:42 by admin