软路由安装 OpenWrt

在 x86 软路由上面首次安装 OpenWrt 还是有点麻烦的,但是安装完成之后更新系统就比较简单了。推荐 x86-64-generic-squashfs-combined-efi 的系统。

需要提前准备好 Ventoy, PEdd 工具OpenWrt 系统镜像

其他可用的可以代替 dd 的工具有 physdiskwriteRoadkil’s Disk Image

在 PE 中执行 dd 命令有可能会报 wow32.dll 不存在,需要提前准备好。

通过 Ventoy 启动 PE 之后,执行如下的命令:

# 先删除安装磁盘的分区表,使磁盘没有任何的分区
# 列出系统中的磁盘
dd --list
# 查找到要安装的磁盘的路径,\\?\Device\Harddisk0\Partition0
# 其中 Partition0 表示整个磁盘
dd if=openwrt-25.12.4-x86-64-generic-squashfs-combined-efi.img bs=1M of=\\?\Device\Harddisk0\Partition0
# 然后重启即可

但是 OpenWrt 官方镜像的 x86 镜像的数据分区是 104M,安装完系统之后可用的空间是 86M,如果需要安装的插件占用的空间比较多,可能会面临空间不够的情况,一般使用 x86 的软路由磁盘空间都是比较足的,推荐使用官方扩容脚本进行扩容。

# Install packages
apk update
apk add parted losetup resize2fs blkid

# Download expand-root.sh
wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/expand_root?codeblock=0"
chmod +x expand-root.sh

# Source the script (creates /etc/uci-defaults/70-rootpt-resize and /etc/uci-defaults/80-rootfs-resize, and adds them to /etc/sysupgrade.conf so they will be re-run after a sysupgrade)
. ./expand-root.sh

# Resize root partition and filesystem (will resize partiton, reboot resize filesystem, and reboot again)
sh /etc/uci-defaults/70-rootpt-resize

或者可以通过下面的命令对 overlay 分区进行扩容。

apk update
apk add parted losetup resize2fs blkid e2fsprogs f2fs-tools
# 1. 检查当前状态(扩容前必看)
parted /dev/sda print
# Loop 设备详情
losetup -l /dev/loop0
blkid /dev/loop0
# 2. 扩展物理分区,方案 A 和 方案 B 二选一
# 方案 A. 扩展到磁盘末尾,我选择方案 A
parted -s /dev/sda resizepart 2 100%
# 方案 B. 扩展到指定大小
# parted -s /dev/sda resizepart 2 4GB
# 验证分区是否已扩展
parted /dev/sda print
# 3. 重启(必须)
reboot

# 重新登陆后继续执行
# 4. 重启后,扩展文件系统
# 关键:刷新 loop 设备容量,让它"感知"到底层 sda2 变大了
losetup -c /dev/loop0
# 再次确认文件系统类型(确保用对工具)
blkid /dev/loop0
# 预期输出类似:/dev/loop0: UUID="xxx" TYPE="ext4"
# 执行扩容
resize2fs -f /dev/loop0
# 5. 验证结果
# 扩容后空间
df -h /overlay
# Loop 设备确认
losetup -l /dev/loop0
# 分区表确认
parted /dev/sda print

通过上面的方式对 overlay 进行扩容,并不会使恢复出厂设置失效。但是如果刷写了新的固件,那么就会将分区的大小恢复成 OpenWrt 默认的大小,如果使用官方扩容命令,需要安装依赖软件后执行最后一条命令,如果是手动扩容需要将上面的扩容命令再执行一遍。

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 5.8M      5.8M         0 100% /rom
tmpfs                     3.8G    256.0K      3.8G   0% /tmp
/dev/loop0                7.5G      1.4M      104M   0% /overlay
overlayfs:/overlay        7.5G      1.4M      104M   0% /
/dev/sda1                16.0M      6.2M      9.7M  39% /boot
/dev/sda1                16.0M      6.2M      9.7M  39% /boot
tmpfs                   512.0K         0    512.0K   0% /dev

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>