1.overlay分区挂载不上,总被/dev/loop0占用

每次更新固件版本以后,删掉 sdcard/etc 目录里的文件,然后重启路由器。

https://www.right.com.cn/forum/thread-4058097-1-1.html

备注:建议检查文件,如果/etc/为空,则可以删除,如果有内容还得检查是否需要备份。

建议用 uuid 去挂载,没必要用设备号挂载,因为升级设备之后这个挂在项还会丢失,除非用的网页 web 升级并选择保留配置。

2.更新系统采用 web 更新和 dd 更新区别

web更新时,可以选择不保留配置,配置都在 overlay 中,所以不影响。

web更新

web更新后会重复挂载一个分区 ,但使用并不影响。

/dev/sda1 => /boot

Openwrt更新 x86_64 固件常见问题记录-LMLPHP

dd方案

介绍下默认dd后的分区:

/dev/sda1boot 分区
/dev/sda2rom 分区
/dev/sda3overlay 分区(需要自己新建分区,默认不存在)

写入镜像

采用上传文件到 /tmp/upload 目录

dd if=ddd.img of=/dev/sda

也可以更新,不会导致重复挂载。

无论哪种更新方式,都必须选择同一种固件类型,比如旧版本使用不带 efi 标志的,更新版本也不要选择带 efi 标志的,否则会导致分区有问题,存在数据丢失风险。建议选择 efi 格式固件

删除存在的 etc

更新完毕后,进入系统,应该默认会挂载 /dev/sda3 到 /mnt/sda3 这个位置,删除 /mnt/sda3/etc 目录。(可以检查是否存在文件考虑备份,一般没有)然后在挂载点,新增挂载点 /dev/sda3 到 /overlay,删除失效挂载,重启进入系统即可使用。

格式化 overlay

如果是更新系统,存在旧数据在这个分区里,就不要格式化了,只需要把分区建出来就行了,直接可以挂载。

mkfs.ext4 /dev/sda3

3.恢复数据

恢复数据前提是需要自己备份数据

你通过 web 网页中 【备份升级 - 备份/恢复 - 生成备份】下载备份包,这里面包包含两个目录。

你可以手动备份这两个目录,如果是别的目录位置文件,自行备份。

/etc
/usr/share

首先得把 overlay 挂载好,然后再从网页中【备份升级 - 上传备份存档以恢复配置】恢复数据,恢复完数据这个挂载点可能又没了,你又得重新挂载。

重新挂载完毕后,你得确认数据是否还在,如果不在或者不完整,建议使用以下方案。

挂载 overlay 对应分区

如果你是 dd 刷机的,建议你把对应的磁盘重新分区好,如果有数据就不要格式化。

临时命令直接挂载,或者在网页"挂载点"进行挂载

mount /dev/sda3 /mnt/sda3

恢复数据

直接把备份的包传到服务器,解压后,覆盖到 overlay 中配置的位置。

mkdir /mnt/sda3/test && cd /mnt/sda3/test
wget http://你本机IP/backup-OpenWrt-2022-02-03.tar.gz
tar -xzf backup-OpenWrt-2022-02-03.tar.gz
cp -rf /mnt/sda3/test/etc/* /mnt/sda3/upper/etc/

usr/share 里面的数据我不要,所以不恢复。

覆盖完毕后,在网页端【挂载点】重新挂载 overlay,重启系统

/dev/sda3 => /overlay

开机后查看挂载点是否正常,如果没挂载上,再次把 overlay 挂载,再重启直到挂载上数据就都有了。

4.luci 密码错误

版本跨度太大,luci 密码错误,ssh 却可以连,通过这个修正。

uci set [email protected][0].socket='/var/run/ubus/ubus.sock'
uci commit rpcd
/etc/init.d/rpcd restart
03-11 19:40