OpenWrt Fortinet FortiGate 50E /overlay 領域の拡張

# はじめに
5ch の【無線 LAN】OpenWrt【強化ファーム】（[#25](https://itest.5ch.net/mao/test/read.cgi/network/1721217342/797-), [#26](https://itest.5ch.net/mao/test/read.cgi/network/1721470536/17-)）において/overlay領域の拡張が話題となりました。

発端となった機種はBUFFALO WSR-3200AX4Sです。この機種はスペックが高く、OpenWrtの導入も容易なことから人気がありますが、欠点として、Flashは128MBあるにもかかわらず、OpenWrt導入後使用できる/overlay領域は約7MBしかありません。

>BUFFALO WSR-3200AX4Sの特徴
>- RAM:512MB
>- Flash:128MB
>- wi-fi:wi-fi6(ax)
>- 導入方法:ファームウェア更新ページでfactory.binを選択するのみ

有志の方々の解析により、BUFFALO WSR-3200AX4Sの未使用Flash領域を/overlay領域として活用することで、/overlay領域は**約7MB**から**約80MB**に拡張することが可能となりました。

BUFFALO WSR-3200AX4Sにおける/overlay領域の具体的な拡張方法は[このページ](https://writening.net/page?uLy3gN)や他機種の簡易的な拡張方法は[このページ](https://qiita.com/Bacalhau/items/6ce9c30da2b17f64cbe3)にありますが、Fortinet FortiGate 50E（以下、50E）における具体的な拡張方法をまとめたページはありません。そのため、自分の備忘も兼ねて50Eの/overlay領域の拡張についてまとめました。

:::note warn
素人がまとめた記事になります。/overlay領域の拡張は自己責任でお願いします。
:::

# 拡張前の状況

前提として、50Eには既にOpenWrtが導入済みとします。
ファームウェアのバージョンが24.10.1の場合、拡張前の50Eの/overlay領域は約20MBとなります。

![スクリーンショット 2025-05-04 221003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236258/a38dbe18-e78f-4a90-b53b-03b793d6a1b9.png)


```terminal
root@OpenWrt:~# cat /etc/openwrt_release
DISTRIB_ID='OpenWrt'
DISTRIB_RELEASE='24.10.1'
DISTRIB_REVISION='r28597-0425664679'
DISTRIB_TARGET='mvebu/cortexa9'
DISTRIB_ARCH='arm_cortex-a9_vfpv3-d16'
DISTRIB_DESCRIPTION='OpenWrt 24.10.1 r28597-0425664679'
DISTRIB_TAINTS=''
```

```terminal
root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 2.5M      2.5M         0 100% /rom
tmpfs                  1008.6M    236.0K   1008.3M   0% /tmp
/dev/mtdblock7           21.5M    684.0K     20.8M   3% /overlay
overlayfs:/overlay       21.5M    684.0K     20.8M   3% /
tmpfs                   512.0K         0    512.0K   0% /dev
```

```terminal
root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 001c0000 00010000 "u-boot"
mtd1: 00010000 00010000 "firmware-info"
mtd2: 00010000 00010000 "dtb"
mtd3: 00010000 00010000 "u-boot-env"
mtd4: 00010000 00010000 "board-info"
mtd5: 00600000 00010000 "kernel"
mtd6: 01800000 00010000 "rootfs"
mtd7: 01580000 00010000 "rootfs_data"
mtd8: 00600000 00010000 "kn2"
mtd9: 01800000 00010000 "rfs2"
mtd10: 01200000 00010000 "part1"
mtd11: 01200000 00010000 "part2"
mtd12: 01e00000 00010000 "config"
```

# ファームウェアのビルド方法
ProxmoxにUbuntuのVMを立て、そこでビルドを行いました。
基本的には[このページ](https://writening.net/page?uLy3gN)に沿って、OpenWrtの最新バージョン（24.10.1）を例にビルド方法を説明します。異なるバージョンで行う場合は24.10.1とvermagic変更するとうまくいくと思います。
ビルドに使用するdtsファイルは、有志の方が[作成したもの](https://pastebin.com/raw/fGRaMBuS)を使用します。（圧倒的感謝！！）

<details>

<summary>Ubuntuのバージョン</summary>

```terminal
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.2 LTS
Release:        24.04
Codename:       noble
```

</details>

## ビルド環境整備
```terminal
$ git clone https://git.openwrt.org/openwrt/openwrt.git
$ cd openwrt
$ git checkout v24.10.1
$ ./scripts/feeds update -a
$ ./scripts/feeds install -a
$ wget https://downloads.openwrt.org/releases/24.10.1/targets/mvebu/cortexa9/config.buildinfo -O .config

$ make menuconfig
//Target Profile (Multiple devices) でFortinet FortiGate 50Eを選択しsave

$ wget https://pastebin.com/raw/fGRaMBuS -O ./target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fg-50e.dts
$ echo "CONFIG_MTD_VIRT_CONCAT=y" >> ./target/linux/mvebu/cortexa9/config-6.6
```
## vermagicの変更
カーネル設定を変更するとvermagicの値がオフィシャルビルドと変わってしまいオフィシャルのドライバ系(kmod)はインストールできなくなるため、オフィシャルと同じ値に変更します。

### vermagicの確認方法
以下のページにアクセス。
https://downloads.openwrt.org/releases/24.10.1/targets/mvebu/cortexa9/kmods/

File Nameに「6.6.86-1-61475e4a70aee1a9b3116d1b382dbe4f/」とあり、「61475e4a70aee1a9b3116d1b382dbe4f」がvermagicの値となります。

### vermagicを記載したファイルの作成
```terminal
$ echo 61475e4a70aee1a9b3116d1b382dbe4f > ./vermagic
```

### ファイルの一部を変更
```terminal
$ vi ./include/kernel-defaults.mk
```
```diff
## 130行目くらい
- grep '=[ym]' $(LINUX_DIR)/.config.set | LC_ALL=C sort | $(MKHASH) md5 > $(LINUX_DIR)/.vermagic
+ cp $(TOPDIR)/vermagic $(LINUX_DIR)/.vermagic　 
```
```terminal
$ vi ./package/kernel/linux/Makefile
```
```diff
## 29行目くらい
- STAMP_BUILT:=$(STAMP_BUILT)_$(shell $(SCRIPT_DIR)/kconfig.pl $(LINUX_DIR)/.config | $(MKHASH) md5)
+ STAMP_BUILT:=$(STAMP_BUILT)_$(shell cat $(LINUX_DIR)/.vermagic)　 
```

## ビルド
```terminal
$ make -j$(nproc)
```
[このページ](https://writening.net/page?uLy3gN)では`make -j$(nproc) defconfig download clean world`でmakeしていますが、私の環境ではうまくいかず、`make -j$(nproc)`でmakeしました。

make完了後、`./bin/targets/mvebu/cortexa9/`に以下のファイルがあります。
- openwrt-24.10.1-mvebu-cortexa9-fortinet_fg-50e-initramfs-kernel.bin
- openwrt-24.10.1-mvebu-cortexa9-fortinet_fg-50e-squashfs-sysupgrade.bin


# ファームウェアの適用
SCPを使用し、50Eへ`～squashfs-sysupgrade.bin`を転送し、sysupgradeを実行する。（おそらくluciから書き込んでも問題ないはず。。）
再度、アクセスできるまで5分くらいかかります。

```terminal
root@OpenWrt:~# sysupgrade -F openwrt-24.10.0-mediatek-mt7622-buffalo_wsr-3200ax4s-squashfs-factory-uboot.bin
```

<details>

<summary>起動ログ</summary>

```terminal
FortiGate-50E (17:37-01.31.2017)
Ver:05000016
Serial number: FGT50E5618050792
CPU(00): 1600MHz
Total RAM: 2GB
Initializing boot device...
Initializing MAC... egiga1
Please wait for OS to boot, or press any key to display configuration menu..........

Booting OS...

Reading boot image... 3827712 bytes.
Initializing firewall...
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.6.86 (builder@buildhost) (arm-openwrt-linux-muslgnueabi-gcc (OpenWrt GCC 13.3.0 r28597-0425664679) 13.3.0, GNU ld (GNU Binutils) 2.42) #0 SMP Sun Apr 13 16:38:32 2025
[    0.000000] CPU: ARMv7 Processor [414fc091] revision 1 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Fortinet FortiGate 50E
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000002fffffff]
[    0.000000]   HighMem  [mem 0x0000000030000000-0x000000007fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000007fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000007fffffff]
[    0.000000] percpu: Embedded 12 pages/cpu s19348 r8192 d21612 u49152
[    0.000000] Kernel command line:
[    0.000000] Bootloader command line not present
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 522560
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 2064512K/2097152K available (9216K kernel code, 669K rwdata, 1300K rodata, 1024K init, 248K bss, 32640K reserved, 0K cma-reserved, 1310720K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] L2C: DT/platform modifies aux control register: 0x06070000 -> 0x16070000
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[    0.000000] L2C-310 D prefetch enabled, offset 1 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 Coherent cache controller enabled, 16 ways, 1024 kB
[    0.000000] L2C-310 Coherent: CACHE_ID 0x410054c9, AUX_CTRL 0x56070001
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000001] sched_clock: 64 bits at 800MHz, resolution 1ns, wraps every 4398046511103ns
[    0.000013] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0xb881274fa3, max_idle_ns: 440795210636 ns
[    0.000026] Switching to timer-based delay loop, resolution 1ns
[    0.000152] Ignoring duplicate/late registration of read_current_timer delay
[    0.000156] clocksource: armada_370_xp_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 76450417870 ns
[    0.000313] Calibrating delay loop (skipped), value calculated using timer frequency.. 1600.00 BogoMIPS (lpj=8000000)
[    0.000320] CPU: Testing write buffer coherency: ok
[    0.000337] CPU0: Spectre v2: using BPIALL workaround
[    0.000340] pid_max: default: 32768 minimum: 301
[    0.003406] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.003413] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.006176] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.006536] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2.
[    0.006594] Setting up static identity map for 0x100000 - 0x100060
[    0.006666] mvebu-soc-id: MVEBU SoC ID=0x6820, Rev=0x4
[    0.006737] mvebu-pmsu: Initializing Power Management Service Unit
[    0.006804] rcu: Hierarchical SRCU implementation.
[    0.006806] rcu:     Max phase no-delay instances is 1000.
[    0.006952] smp: Bringing up secondary CPUs ...
[    0.007122] Booting CPU 1
[    0.007245] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.007251] CPU1: Spectre v2: using BPIALL workaround
[    0.007305] smp: Brought up 1 node, 2 CPUs
[    0.007309] SMP: Total of 2 processors activated (3200.00 BogoMIPS).
[    0.007313] CPU: All CPU(s) started in SVC mode.
[    0.010150] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.010216] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.010224] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.011843] pinctrl core: initialized pinctrl subsystem
[    0.012756] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.013217] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.013671] thermal_sys: Registered thermal governor 'step_wise'
[    0.013705] cpuidle: using governor ladder
[    0.013822] mvebu-pmsu: CPU hotplug support is currently broken on Armada 38x: disabling
[    0.013826] mvebu-pmsu: CPU idle is currently broken on Armada 38x: disabling
[    0.015358] /soc: Fixed dependency cycle(s) with /soc/internal-regs/interrupt-controller@d000
[    0.019022] cryptd: max_cpu_qlen set to 1000
[    0.020449] SCSI subsystem initialized
[    0.020627] usbcore: registered new interface driver usbfs
[    0.020658] usbcore: registered new interface driver hub
[    0.020689] usbcore: registered new device driver usb
[    0.021492] clocksource: Switched to clocksource arm_global_timer
[    0.024928] NET: Registered PF_INET protocol family
[    0.025030] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.025896] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.025910] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.025917] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.025953] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
[    0.026068] TCP: Hash tables configured (established 8192 bind 8192)
[    0.026299] MPTCP token hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.026426] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.026450] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.026693] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.026714] PCI: CLS 0 bytes, default 64
[    0.027826] workingset: timestamp_bits=14 max_order=19 bucket_order=5
[    0.031892] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.031897] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.035557] bounce: pool size: 64 pages
[    0.035759] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[    0.036800] armada-38x-pinctrl f1018000.pinctrl: registered pinctrl driver
[    0.037501] gpio gpiochip0: Static allocation of GPIO base is deprecated, use dynamic allocation.
[    0.037597] debugfs: Directory 'f1018100.gpio' with parent 'regmap' already present!
[    0.037866] gpio gpiochip1: Static allocation of GPIO base is deprecated, use dynamic allocation.
[    0.037946] debugfs: Directory 'f1018140.gpio' with parent 'regmap' already present!
[    0.038340] mv_xor f1060800.xor: Marvell shared XOR driver
[    0.092011] mv_xor f1060800.xor: Marvell XOR (Descriptor Mode): ( xor cpy intr )
[    0.092191] mv_xor f1060900.xor: Marvell shared XOR driver
[    0.151999] mv_xor f1060900.xor: Marvell XOR (Descriptor Mode): ( xor cpy intr )
[    0.152198] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.153530] printk: console [ttyS0] disabled
[    0.173723] f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 38, base_baud = 15625000) is a 16550A
[    0.173752] printk: console [ttyS0] enabled
[    8.568771] loop: module loaded
[    8.609173] spi-nor spi1.0: mx66l1g45g (131072 Kbytes)
[    8.670925] 7 fixed-partitions partitions found on MTD device spi1.0
[    8.747131] Creating 7 MTD partitions on "spi1.0":
[    8.804545] 0x000000000000-0x0000001c0000 : "u-boot"
[    8.864275] 0x0000001c0000-0x0000001d0000 : "firmware-info"
[    8.931280] 0x0000001d0000-0x0000001e0000 : "dtb"
[    8.987875] 0x0000001e0000-0x0000001f0000 : "u-boot-env"
[    9.051735] 0x0000001f0000-0x000000200000 : "board-info"
[    9.115606] OF: Bad cell count for /soc/spi@10680/flash@0/partitions
[    9.191892] 0x000000200000-0x000000800000 : "kernel"
[    9.251651] 0x000000800000-0x000008000000 : "rootfs"
[    9.311422] mtd: setting mtd6 (rootfs) as root device
[    9.372061] 1 squashfs-split partitions found on MTD device rootfs
[    9.446146] 0x000000a80000-0x000008000000 : "rootfs_data"
[    9.571696] hwmon hwmon0: temp1_input not attached to any thermal zone
[    9.701576] hwmon hwmon1: temp1_input not attached to any thermal zone
[    9.791761] mv88e6085 f1072004.mdio-mii:02: switch 0x1760 detected: Marvell 88E6176, revision 1
[    9.949914] mvneta_bm f10c8000.bm: Buffer Manager for network controller enabled
[   10.040308] mvneta f1070000.ethernet eth0: Using device tree mac address e8:1c:ba:6e:42:48
[   10.140706] mvneta f1030000.ethernet eth1: Using device tree mac address e8:1c:ba:6e:42:49
[   10.241062] mvneta f1034000.ethernet eth2: Using device tree mac address e8:1c:ba:6e:42:4a
[   10.340602] xhci-hcd f10f0000.usb3: xHCI Host Controller
[   10.404295] xhci-hcd f10f0000.usb3: new USB bus registered, assigned bus number 1
[   10.494103] xhci-hcd f10f0000.usb3: hcc params 0x0a000990 hci version 0x100 quirks 0x0000000000000010
[   10.604694] xhci-hcd f10f0000.usb3: irq 44, io mem 0xf10f0000
[   10.673652] xhci-hcd f10f0000.usb3: xHCI Host Controller
[   10.737328] xhci-hcd f10f0000.usb3: new USB bus registered, assigned bus number 2
[   10.827074] xhci-hcd f10f0000.usb3: Host supports USB 3.0 SuperSpeed
[   10.903599] hub 1-0:1.0: USB hub found
[   10.948693] hub 1-0:1.0: 1 port detected
[   10.995921] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[   11.093192] hub 2-0:1.0: USB hub found
[   11.138124] hub 2-0:1.0: 1 port detected
[   11.185369] usbcore: registered new interface driver usb-storage
[   11.257903] armada38x-rtc f10a3800.rtc: registered as rtc0
[   11.323726] armada38x-rtc f10a3800.rtc: setting system clock to 2025-05-04T13:25:10 UTC (1746365110)
[   11.433397] i2c_dev: i2c /dev entries driver
[   11.484958] pca953x 0-0024: supply vcc not found, using dummy regulator
[   11.564332] pca953x 0-0024: using no AI
[   11.613667] orion_wdt: Initial timeout 171 sec
[   11.667156] sdhci: Secure Digital Host Controller Interface driver
[   11.741252] sdhci: Copyright(c) Pierre Ossman
[   11.793570] sdhci-pltfm: SDHCI platform and OF driver helper
[   11.871589] marvell-cesa f1090000.crypto: CESA device successfully registered
[   11.957904] NET: Registered PF_INET6 protocol family
[   12.018298] Segment Routing with IPv6
[   12.062202] In-situ OAM (IOAM) with IPv6
[   12.109242] NET: Registered PF_PACKET protocol family
[   12.169798] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[   12.325256] 8021q: 802.1Q VLAN Support v1.8
[   12.375428] Registering SWP/SWPB emulation handler
[   12.461643] mv88e6085 f1072004.mdio-mii:02: switch 0x1760 detected: Marvell 88E6176, revision 1
[   12.615722] hwmon hwmon3: temp1_input not attached to any thermal zone
[   12.714798] hwmon hwmon4: temp1_input not attached to any thermal zone
[   12.809611] hwmon hwmon5: temp1_input not attached to any thermal zone
[   12.907004] hwmon hwmon6: temp1_input not attached to any thermal zone
[   13.004079] hwmon hwmon7: temp1_input not attached to any thermal zone
[   13.856659] mv88e6085 f1072004.mdio-mii:02: configuring for fixed/rgmii-id link mode
[   13.957073] mv88e6085 f1072004.mdio-mii:02: Link is Up - 1Gbps/Full - flow control off
[   14.086001] mv88e6085 f1072004.mdio-mii:02 lan5 (uninitialized): PHY [mv88e6xxx-0:00] driver [Marvell 88E1540] (irq=60)
[   14.306055] mv88e6085 f1072004.mdio-mii:02 lan4 (uninitialized): PHY [mv88e6xxx-0:01] driver [Marvell 88E1540] (irq=61)
[   14.525828] mv88e6085 f1072004.mdio-mii:02 lan3 (uninitialized): PHY [mv88e6xxx-0:02] driver [Marvell 88E1540] (irq=62)
[   14.750783] mv88e6085 f1072004.mdio-mii:02 lan2 (uninitialized): PHY [mv88e6xxx-0:03] driver [Marvell 88E1540] (irq=63)
[   14.966143] mv88e6085 f1072004.mdio-mii:02 lan1 (uninitialized): PHY [mv88e6xxx-0:04] driver [Marvell 88E1540] (irq=64)
[   15.100069] mvneta f1070000.ethernet eth0: entered promiscuous mode
[   15.175234] DSA: tree 0 setup
[   15.211029] clk: Disabling unused clocks
[   15.281987] VFS: Mounted root (squashfs filesystem) readonly on device 31:6.
[   15.367059] Freeing unused kernel image (initmem) memory: 1024K
[   15.438179] Run /sbin/init as init process
[   16.339218] init: Console is alive
[   16.380058] init: - watchdog -
[   16.967603] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[   17.075663] gpio_button_hotplug: loading out-of-tree module taints kernel.
[   17.159130] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[   17.251721] init: - preinit -
[   21.611498] random: crng init done
Cannot parse config file '/etc/fw_env.config': No such file or directory
Failed to find NVMEM device
[   22.509415] mvneta f1070000.ethernet eth0: configuring for fixed/rgmii-id link mode
[   22.602064] mv88e6085 f1072004.mdio-mii:02 lan1: configuring for phy/gmii link mode
[   22.694911] mvneta f1070000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[   26.347591] mv88e6085 f1072004.mdio-mii:02 lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[   27.262440] jffs2_scan_eraseblock(): End of filesystem marker found at 0x10000
[   27.349170] jffs2_build_filesystem(): unlocking the mtd device...
[   27.349182] done.

[   27.446375] jffs2_build_filesystem(): erasing all blocks after the end marker...
[  530.628229] done.
[  530.740978] jffs2: notice: (837) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[  530.926527] mount_root: overlay filesystem has not been fully initialized yet
[  531.012864] mount_root: switching to jffs2 overlay
[  531.072496] overlayfs: upper fs does not support tmpfile.
- config restore -
[  531.517109] urandom-seed: Seed file not found (/etc/urandom.seed)
[  531.836591] mv88e6085 f1072004.mdio-mii:02 lan1: Link is Down
[  531.908605] procd: - early -
[  531.943184] procd: - watchdog -
[  532.499021] procd: - watchdog -
[  532.536771] procd: - ubus -
[  532.755233] procd: - init -
```

</details>


# 拡張後の状況
/overlay領域が約20MBから**約120MB**となりました。
容量が大きいtailscaleやAdGuardHomeもUSBメモリーなしで導入することができ、貴重なUSBポートを空けておくことができます。

![スクリーンショット 2025-05-04 224243.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1236258/62870396-d358-415a-9c25-422b45da15ca.png)

```terminal
root@OpenWrt:~# cat /etc/openwrt_release
DISTRIB_ID='OpenWrt'
DISTRIB_RELEASE='24.10.1'
DISTRIB_REVISION='r28597-0425664679'
DISTRIB_TARGET='mvebu/cortexa9'
DISTRIB_ARCH='arm_cortex-a9_vfpv3-d16'
DISTRIB_DESCRIPTION='OpenWrt 24.10.1 r28597-0425664679'
DISTRIB_TAINTS=''
```

```terminal
root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 2.5M      2.5M         0 100% /rom
tmpfs                  1008.6M    236.0K   1008.3M   0% /tmp
/dev/mtdblock7          117.5M      2.8M    114.8M   2% /overlay
overlayfs:/overlay      117.5M      2.8M    114.8M   2% /
tmpfs                   512.0K         0    512.0K   0% /dev
```

```terminal
root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 001c0000 00010000 "u-boot"
mtd1: 00010000 00010000 "firmware-info"
mtd2: 00010000 00010000 "dtb"
mtd3: 00010000 00010000 "u-boot-env"
mtd4: 00010000 00010000 "board-info"
mtd5: 00600000 00010000 "kernel"
mtd6: 07800000 00010000 "rootfs"
mtd7: 07580000 00010000 "rootfs_data"
```


# おわりに
　初めてQiitaに投稿をしました。つたない説明ですが、最後までご覧いただきありがとうございました。OpenWrtを弄るのが好きな素人になります。間違いなどあれば指摘いただけると助かります。良いOpenWrtライフを～。

 # 参考
https://qiita.com/Bacalhau/items/6ce9c30da2b17f64cbe3

https://writening.net/page?uLy3gN

https://pastebin.com/raw/fGRaMBuS