Intel EdisonでOpenSim SDカード準備編

rikachann Aabye

2015年01月11日 12:57


EdisonでSDカードを使えるように設定します。

まずはデバイスファイルの確認からおこないましょう。
SDカードをEdison Board for Arduinoに挿入して、sshで接続している端末から
接続情報を確認します。

root@ubilinux:~# dmesg

いろんな情報が出力されますがその中で 次のようなメーッセージが確認できました。

[ 143.900119] mmc1: new high speed SDHC card at address 59b4
[ 143.901074] mmcblk1: mmc1:59b4 USD 14.7 GiB
[ 143.912418] mmcblk1: p1

この情報から デバイスフィアルは mmcblk1p1 と推測されます。

SDカードは /homeと/varの2つのパーティションを切りますのでその作業をおこないます。
今回はSDカードが16GBなので
/homeに 12GB
/varに残りすべてを割り当てることにします。

パーテーションの設定は以前にRaspberry PiでOpenSim:USB-HD接続編にて行っていますので
参考にしてください。

ではパーティションを切る作業に移ります。
まずは、今のSDカードの認識状況を確認します。

root@ubilinux:~# fdisk -l /dev/mmcblk1

Disk /dev/mmcblk1: 15.8 GB, 15811477504 bytes
255 heads, 63 sectors/track, 1922 cylinders, total 30881792 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: 0x000a94de

Device Boot Start End Blocks Id System
/dev/mmcblk1p1 2048 30881791 15439872 b W95 FAT32

ちゃんと認識しているようです 今回はFAT32でフォーマットされているようです。
フォーマットしますので、中身が消えます。新品か不要なSDカードを用意してください

パーテーションを切ります。
root@ubilinux:~# fdisk /dev/mmcblk1

Command (m for help): p            :現在のパーテーション情報を表示します

Disk /dev/mmcblk1: 15.8 GB, 15811477504 bytes
255 heads, 63 sectors/track, 1922 cylinders, total 30881792 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: 0x000a94de

Device Boot Start End Blocks Id System
/dev/mmcblk1p1 2048 30881791 15439872 b W95 FAT32

Command (m for help): d           :パーテーションを仕切りなおすために、現在のパーテーションを削除します。
Selected partition 1

Command (m for help): p       :削除されたか確認します

Disk /dev/mmcblk1: 15.8 GB, 15811477504 bytes
255 heads, 63 sectors/track, 1922 cylinders, total 30881792 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: 0x000a94de

Device Boot Start End Blocks Id System

Command (m for help): n        :新たにパーテーションを切ります。
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1          :パーテーションの1番目を指定
First sector (2048-30881791, default 2048):       :最初から(単にEnter)   
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-30881791, default 30881791): +12G   :12GB 確保

Command (m for help): t        :確保したパーテーションをlinux用にタイプ(83)を決定します
Selected partition 1
Hex code (type L to list codes): 83

Command (m for help): n        :/var用に残りすべてを割り当てます
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (1-4, default 2): 2      :パーテーションの2番めを指定
First sector (25167872-30881791, default 25167872):    1番目のパーテーションの続きから(単にEnter)
Using default value 25167872
Last sector, +sectors or +size{K,M,G} (25167872-30881791, default 30881791):   :最後まで (単にEnter)
Using default value 30881791

Command (m for help): t        :確保したパーテーションをlinux用にタイプ(83)を決定します
Partition number (1-4): 2
Hex code (type L to list codes): 83

Command (m for help): p         :新たに確保したパーテーションを確認します

Disk /dev/mmcblk1: 15.8 GB, 15811477504 bytes
255 heads, 63 sectors/track, 1922 cylinders, total 30881792 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: 0x000a94de

Device Boot Start End Blocks Id System
/dev/mmcblk1p1 2048 25167871 12582912 83 Linux
/dev/mmcblk1p2 25167872 30881791 2856960 83 Linux

Command (m for help): w         :最後にパーテーション情報を書き込みします。
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

デバイスファイル /dev/mmcblk1p1 には /home用の12GB
デバイスファイル /dev/mmcblk1p2 には /var用に残りすべてが割り当てられました。

続いて 作成したパーティションをフォーマットします。
フォーマットタイプは ext4としました。

まずは /dev/mmcblk1p1から

root@ubilinux:~# mkfs -t ext4 /dev/mmcblk1p1
mke2fs 1.42.5 (29-Jul-2012)
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
786432 inodes, 3145728 blocks
157286 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=3221225472
96 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

続いて /dev/mmcblk1p2

root@ubilinux:~# mkfs -t ext4 /dev/mmcblk1p2
mke2fs 1.42.5 (29-Jul-2012)
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
178816 inodes, 714240 blocks
35712 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=734003200
22 block groups
32768 blocks per group, 32768 fragments per group
8128 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

現在の/homeと/varをコピーするために、USB-HDをマウントします。
その前に、マウント用のデレクトリを作成します。

root@ubilinux:~# mkdir /mnt/home_new
root@ubilinux:~# mkdir /mnt/var_new

マウントします。

root@ubilinux:~# mount /dev/mmcblk1p1 /mnt/home_new
root@ubilinux:~# mount /dev/mmcblk1p2 /mnt/var_new

現在の/home及び /varをマウントしたSDカードにコピーします。

root@ubilinux:~# cp -a /home/* /mnt/home_new
root@ubilinux:~# cp -a /var/* /mnt/var_new

現在の/varの中身を消去します。

root@ubilinux:/# rm -Rf /var
root@ubilinux:/# mkdir /var      :新たに/varを作成します。これ忘れると立ち上げに失敗します^^;


現在の/homeに割り当てられいるmmcblk0p10をフォーマットして新たに/optに割り当てます。
まずは mmcblk0p10をフォーマットします。
その前に アンマウントします。

root@ubilinux:/# umount /dev/mmcblk0p10

フォーマットタイプ ext4でフォーマットします。

root@ubilinux:/# mkfs -t ext4 /dev/mmcblk0p10
mke2fs 1.42.5 (29-Jul-2012)
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
103584 inodes, 413691 blocks
20684 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=423624704
13 block groups
32768 blocks per group, 32768 fragments per group
7968 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: done

現在の/optをmmcblk0p10にコピーします。

root@ubilinux:/# mkdir /mnt/opt_new
root@ubilinux:/# mount /dev/mmcblk0p10 /mnt/opt_new
root@ubilinux:/# cp -a /opt/* /mnt/opt_new

元の/optを消去して、新たにマウントポイントを作成します。

root@ubilinux:/# rm -Rf /opt
root@ubilinux:/# mkdir /opt

ブート時に自動でマウントされるように /etc/fstabを編集します。

root@ubilinux:/# vim /etc/fstab

#rootfs / auto nodev,noatime,discard,barrier=1,data=ordered,noauto_da_alloc 1 1
/dev/root / ext4 defaults,noatime 0 0
proc /proc proc defaults 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
#usbdevfs /proc/bus/usb usbdevfs auto 0 0
debugfs /sys/kernel/debug debugfs auto 0 0
tmpfs /run tmpfs mode=0755,nodev,nosuid,strictatime 0 0
tmpfs /var/volatile tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0

/dev/mmcblk0p7 /boot auto defaults 1 1
/dev/mmcblk0p10 /opt auto defaults 1 1    :/homeを /optに変更
/dev/mmcblk1p1 /home auto defaults 1 1   :新たに追加
/dev/mmcblk1p2 /var auto defaults 1 1    :新たに追加

これで 移管の作業は終了しました
リブートします。

root@ubilinux:/# shutdown -r now

再度 sshでログインします。

dfでマウント状況を確認します。

root@ubilinux:/# df

Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 1441648 532168 814456 40% /
/dev/root 1441648 532168 814456 40% /
devtmpfs 491712 0 491712 0% /dev
tmpfs 98408 308 98100 1% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 196800 0 196800 0% /run/shm
tmpfs 492024 0 492024 0% /tmp
/dev/mmcblk0p7 32686 5186 27500 16% /boot
/dev/mmcblk0p10 1595948 2492 1494336 1% /opt
/dev/mmcblk1p1 12254384 30708 11578148 1% /home


ちゃんと予定通りマウント出来ているみたいです^^

次は、環境設定してみたいと思います。

Intel Edison