| tags:raspberry pi openwrt categories:computing

Disk容量の拡張

OpenWrtを使っていて(Wifiルーターとしてな安定問題なく動いてます。)、 ふと気がついてみたらディスクの状況が以下の様になっています。 全体で500MBくらい(RAMの大きさ?)の領域しか使われていません。

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 19.07.2, r10947-65030d81f3
 -----------------------------------------------------
root@OpenWrt:~$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root               258016     16996    235780   7% /
tmpfs                   217064       652    216412   0% /tmp
/dev/mmcblk0p1           20422     14884      5538  73% /boot
tmpfs                      512         0       512   0% /dev

ファイルシステム自体もルーターということで少し変わってる様です。あまり理解はしていないのだけれども、 少量のRAMとFlashRAMで運用を考えられているのかしら、、圧縮ファイルが使われていたりします。

ちょっとウェブサーチをして、/overlayはデータ領域と考えれば良い様なので、/を弄るのは気が引けたので、 overlayを別のパーティションに割り当てる方法にする。

作業に必要なソフトをインストールします。

root@OpenWrt:~$ opkg install fdisk block-mount kmod-fs-ext4

カーネルモジュールをインストールしたので再起動。


新しいパーティションの作成

OpenWrtではMicroSDカードはMMC扱の様で割り当ては /dev/mmcblk0 になっています。

root@OpenWrt:~$ fdisk /dev/mmcblk0

元のディスク構成はこんな感じです。

oot@OpenWrt:~$ fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/mmcblk0: 29.83 GiB, 32010928128 bytes, 62521344 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
Disklabel type: dos
Disk identifier: 0x5452574f

Device         Boot Start    End Sectors  Size Id Type
/dev/mmcblk0p1 *     8192  49151   40960   20M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      57344 581631  524288  256M 83 Linux

パーティションの隙間に4MB (8193?)の空きがあるのが不思議だけど、 まぁ、習って同じ感じで新しいパーティションを作成しました。 こな感じ。

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *      8192    49151    40960   20M  c W95 FAT32 (LBA)
/dev/mmcblk0p2       57344   581631   524288  256M 83 Linux
/dev/mmcblk0p3      589824 62521343 61931520 29.5G 83 Linux

そしてmkfs.ext4でフォーマットをします。

root@OpenWrt:~$ mkfs.ext4 /dev/mmcblk0p3
mke2fs 1.44.5 (15-Dec-2018)
Discarding device blocks: done
Creating filesystem with 7741440 4k blocks and 1937712 inodes

/overlayはデーター領域になっているはずですが空の様です。

root@OpenWrt:~$ ls -a /overlay/
.   ..
root@OpenWrt:~$

もし色々とすでにあったらコピーしましょう。

root@OpenWrt:~$ mount /dev/mmcblk0p3 /mnt
root@OpenWrt:~$ cp -a -f /overlay/. /mnt
root@OpenWrt:~$ umount /mnt

OpenWrtをリブートします。

root@OpenWrt:~$ reboot

管理画面でマウント処理

ウェブ管理画面に新メニュー [System > Mount Points] が追加されます。 OpenWrtのドキュメントではコマンドを使った方法が記載されてますが、 ここで作業は完結できました。(多分)

OpenWRT: Mount Point

作成したパーティションがすでにあるものと一緒に表示されます。/がマウントされていなくて、 ちょっと謎なところもあるが。動いているので放置。

OpenWRT: Mount Point

青いEditボタンより編集。有効化にチェックを入れ、割り当て先を/overlayに選択し保存します。 (/を選択すると方法まで書いてあります。)

OpenWRT: Mount Point

そして、再起動します。

結果この様な感じになりました。/romなんてのが出てきてる。。展開されるファイルはどこにあるんやろ?。

OpenWRT: Mount Point

root@OpenWrt:~$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root               258016     17688    235088   7% /rom
tmpfs                   217064      1152    215912   1% /tmp
/dev/mmcblk0p3        30348144     45116  28738356   0% /overlay
overlayfs:/overlay    30348144     45116  28738356   0% /
/dev/mmcblk0p1           20422     14884      5538  73% /boot
tmpfs                      512         0       512   0% /dev

ソフトウェアのインストール領域も一気に増えました。

OpenWRT: Mount Point

弄りも最小限ですので、ファームウェアのアップデート時も問題なく動くはずだと思います。

さてお次は何を入れよ。

参考:https://openwrt.org/docs/guide-user/additional-software/extroot_configuration

See Also