シングルボードコンピュータ起動用SDカード作成
今回はLinuxのOSですべて行っています
- まずは普通にLinuxのOSのイメージをダウンロードしてSDカードに焼き付けます
私の環境がdell latutude6230の古いノートパソコンのFedra35serverでコマンドラインですべてやっているため、コマンドラインの説明になります
ddコマンドでif=ダウンライトしたimgファイル
of= はSDカードのデバイス名
dellのノートPCはSDカードスロットがありそれが使えるのが便利です
/dev/mmcblk0 がSDカードが挿入されていると認識されています - lsblkコマンドで認識されているかどうか確認します
- 今回orangepizero3のubuntu serverイメージで2.6GBの大きさですが
ddコマンドで5分くらいでイメージを転送できました
dd if=/var/ftp/pub/iso/orangepi/Orangepizero3_1.0.4_ubuntu_jammy_server_linux6.1.31/Orangepizero3_1.0.4_ubuntu_jammy_server_linux6.1.31.img of=/dev/mmcblk0 bs=16M status=progress
失敗した手順
- まずSDカードが古いと原因不明の失敗が連続しました
監視カメラで使っていたSDカードを使ったため多く時間をロスしました
書き込み回数でSDカードは大幅に劣化することを痛感しました - 書き込み成功後、そのままorangepiに差し込み起動させると自動でSDカードの最大サイズまで拡張してくれますがこれが今回の目的ではないため一度拡張されると任意の領域を作成できなくなってしまいます
- 領域縮小は失敗して起動できなくなるので焼き付け後すぐに指定領域をpartedで手動で拡張する必要がある
- partedで指定領域拡張してそのままorangepiで起動させると領域を手動で拡張したにもかかわらずSDカード最大領域まで自動で拡張され手動の操作が意味なかった

焼き付け後の手順
- 領域拡張
parted /dev/mmcblk0
(parted) resizepart
(parted) 1 (パティーション番号)
(parted) 14GB (使用しているSDカードは32GBなので半分は残したいため)
(parted) quit
e2fsck -f /dev/mmcblk0p1 (数秒で終わる)
resize2fs /dev/mmcblk0p1
* 2つめの領域の作成
fdisk /dev/mmcblk0
(n でprimaryを指定して開始ポジションはpartedで一つ目のサイズ14GBを入力しましたが、それで問題なく次のパティーションが作成されました)
上記は一つの例ですが任意の次のパティーションを作成しておく
* フォーマットも念のためやる
[root@dellnote ~]# mkfs.ext4 /dev/mmcblk0p2
orangepiに差し込み起動確認
以上になります