工业级方案——利用 fstab 绑定挂载 (Mount Bind)
底层逻辑:什么是“绑定挂载” (Bind Mount)?
传统的挂载是把“整块硬盘”塞进一个文件夹。而绑定挂载(mount --bind)可以将“文件夹 A”映射到“文件夹 B”。
物理位置:
/mnt/data/****(在 新盘里)映射位置:
/etc/****(在系统 Overlay 里)结果:所有对
/etc/****的读写,都会被静默重定向到新盘。Overlay 空间占用始终为 0。
这是最专业的做法,连“软链接”都不需要,直接在内核层面把 D 盘的某个文件夹“映射”给 C 盘。
原理: 在 系统 -> 挂载点 中,除了挂载整个硬盘,你还可以设置“绑定挂载”。
源路径:
/mnt/data/****目标路径:
/etc/****
优点: * 刷机不丢:如果你在刷机时勾选了“保留配置”,OpenWrt 会保留 /etc/config/fstab 文件。
无缝衔接:刷机重启后,系统会自动把独立硬盘里的文件夹“塞进”系统目录,你甚至感觉不到路径改变过。
当你下次 刷入新固件并选择**“保留配置”**时:
配置文件不丢:
/etc/config/fstab会被系统自动备份并还原。自动识别:新系统启动时,读取到
fstab里的“绑定挂载”指令。瞬间复活:系统会自动寻找
/mnt/data/****并将其塞回/etc/****。无需重新配置:你打开 ****界面时,内核(Core)、订阅、规则都在,直接点击“启动”即可。
第一步:物理搬家(腾出系统盘空间)
我们将最占空间的程序文件和配置文件夹搬到你的 10GB 新硬盘 (/mnt/data) 上。
移动主程序(释放约 30MB):
Bash
mkdir -p /mnt/data/AdGuardHome/bin mv /usr/bin/AdGuardHome /mnt/data/AdGuardHome/bin/AdGuardHome_bin移动配置文件目录(释放日志和数据库空间):
Bash
mkdir -p /mnt/data/AdGuardHome/config # 如果 /etc/AdGuardHome 存在,将其内容拷走并清空 [ -d /etc/AdGuardHome ] && cp -a /etc/AdGuardHome/* /mnt/data/AdGuardHome/config/ rm -rf /etc/AdGuardHome/*
第二步:配置内核级绑定 (fstab)
我们要让系统自动关联这两个路径,确保刷机后“原地复活”。
编辑 fstab 文件:
Bash
vi /etc/config/fstab按
G跳到末尾,按i进入编辑模式,粘贴以下内容:代码段
config mount option target '/etc/AdGuardHome' option device '/mnt/data/AdGuardHome/config' option options 'bind' option enabled '1'按
Esc,输入:wq回车保存。
第三步:建立软链接并激活
建立程序软链接(让系统在
/usr/bin依然能找到它):Bash
ln -s /mnt/data/AdGuardHome/bin/AdGuardHome_bin /usr/bin/AdGuardHome生效挂载并检查空间:
Bash
block mount df -h /overlay
评论区