はじめに

NanoPIにはNAS kit が存在し、簡単にHDD/SSD(以下単にSSD)を搭載できます。
現在、SSDから起動する方法は見つかっていませんが、root partitionをSSDにしTFには/bootだけを残すことにより、TFへの書き込みをせず運用することができます。先にNanoPIでHDD/SSDを活用するを発表しましたが、その後の成果をまとめます。
FB NanoPIの部屋の成果物です。

Backup

ddrescueでSDをコピーします。

設定方法

fdiskの実行

私は256GBのSSDを使いました。
fdiskで2つのパーティーションに分けました。

Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 8390655 8388608 4G 82 Linux swap / Solaris
/dev/sda2 8390656 500118191 491727536 234.5G 83 Linux

mkfsとコピー

mkdir /a
mkfs -t ext4 /dev/sda2
mount /dev/sda1 /a
cd /
rsync -av bin etc home lib media mnt opt root run sbin usr var /a
mkswap /dev/sda1
mkdir /a/sys /a/tmp /a/proc /a/dev
umount /a

/etc/fstab の変更

/dev/mmcblk0p1 /boot vfat defaults 0 0
/dev/sda2 / ext4 defaults 0 1
/dev/sda1 none swap sw 0 0
tmpfs /tmp tmpfs defaults 0 0

/bootの設定

boot.scrを現状に合わせ得る必要があります。
そのためにboot.cmdを編集します。
まずは、backup
cd /boot
mv boot.scr boot.scr.bak
cp -p boot.cmd boot.cmd.bak
vi boot.cmd# Recompile with:
# mkimage -C none -A arm -T script -d boot.cmd boot.scr

setenv fsck.repair yes
setenv ramdisk rootfs.cpio.gz
setenv kernel Image

setenv env_addr 0x45000000
setenv kernel_addr 0x46000000
setenv ramdisk_addr 0x47000000
setenv dtb_addr 0x48000000

fatload mmc 0 \${kernel_addr} \${kernel}
fatload mmc 0 \${ramdisk_addr} \${ramdisk}
fatload mmc 0 \${dtb_addr} sun50i-h5-\${board}.dtb
fdt addr \${dtb_addr}

# setup MAC address
fdt set ethernet0 local-mac-address \${mac_node}

# setup boot_device
fdt set mmc\${boot_mmc} boot_device <1>

setenv fbcon map:0
setenv bootargs earlyprintk root=/dev/sda2 rootfstype=ext4 rw rootwait fsck.repair=\${fsck.repair} panic=10 ${extra} fbcon=\${fbcon}
booti \${kernel_addr} \${ramdisk_addr}:500000 \${dtb_addr}

Compile

mkimage -C none -A arm -T script -d boot.cmd boot.scr

試験のための再起動

reboot
立ち上がってコマンドが実行できれば合格です。
df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
udev 231M 0 231M 0% /dev
tmpfs 49M 3.0M 46M 7% /run
/dev/sda2 230G 4.9G 214G 3% /
tmpfs 242M 0 242M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 242M 0 242M 0% /sys/fs/cgroup
tmpfs 242M 40K 242M 1% /tmp
/dev/mmcblk0p1 100M 17M 83M 17% /boot
tmpfs 49M 0 49M 0% /run/user/0

不要データーの消去

ここまで来ればssdに移動したsdのデーターは不要です。
mmcblk0p2は使われていません。
消去するなり、もっと小さいTFにコピーしてかまいません。

結論

あっさりSSD Machineになりました。

訂正

2018年5月4日:竹花 文士さんの指摘による訂正。1行削除、1行修正。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.