ラズパイのSDカードにOpenWrtを書き込んだ後、rootパーティションを拡張する方法です。ラズパイでOpenWrtを起動した後だとオンラインで拡張することができなかったので、Ubuntu 18.06.1で処理しました。
/dev/sdb2がrootパーティションになります。
$ df | grep sdb
/dev/sdb1 20422 9106 11316 45% /media/soma/4B3E-B3A3
/dev/sdb2 258016 12012 240764 5% /media/soma/57f8f4bc-abf4-655f-bf67-946fc0f9f25b
$ sudo fdisk /dev/sdb
fdisk (util-linux 2.31.1) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。
コマンド (m でヘルプ): p
ディスク /dev/sdb: 14.9 GiB, 16009658368 バイト, 31268864 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x5452574f
デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/sdb1 * 8192 49151 40960 20M c W95 FAT32 (LBA)
/dev/sdb2 57344 581631 524288 256M 83 Linux
コマンド (m でヘルプ): d
パーティション番号 (1,2, 既定値 2): 2
パーティション 2 を削除しました。
コマンド (m でヘルプ): n
パーティションタイプ
p 基本パーティション (1 プライマリ, 0 拡張, 3 空き)
e 拡張領域 (論理パーティションが入ります)
選択 (既定値 p): p
パーティション番号 (2-4, 既定値 2): 2
最初のセクタ (2048-31268863, 既定値 2048): 57344
最終セクタ, +セクタ番号 または +サイズ{K,M,G,T,P} (57344-31268863, 既定値 31268863):
新しいパーティション 2 をタイプ Linux、サイズ 14.9 GiB で作成しました。
パーティション #2 には ext4 署名が書き込まれています。
署名を削除しますか? [Y]es/[N]o: N
コマンド (m でヘルプ): w
パーティション情報が変更されました。
ディスクを同期しています。
$ umount /dev/sdb1
$ umount /dev/sdb2
$ sudo e2fsck -f /dev/sdb2
e2fsck 1.44.1 (24-Mar-2018)
Pass 1: Checking iノードs, blocks, and sizes
Pass 2: Checking ディレクトリ structure
Pass 3: Checking ディレクトリ connectivity
Pass 4: Checking reference counts
Pass 5: Checking グループ summary information
/dev/sdb2: 1260/16384 files (0.0% non-contiguous), 4035/65536 blocks
$ sudo resize2fs /dev/sdb2
resize2fs 1.44.1 (24-Mar-2018)
Resizing the filesystem on /dev/sdb2 to 3901440 (4k) blocks.
The filesystem on /dev/sdb2 is now 3901440 (4k) blocks long.
SDカードを抜き差しすると/dev/sdb2が拡張されたのがわかります。
$ df | grep sdb
/dev/sdb1 20422 9106 11316 45% /media/soma/4B3E-B3A3
/dev/sdb2 15358960 12492 15330084 1% /media/soma/57f8f4bc-abf4-655f-bf67-946fc0f9f25b