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
dd方案
介绍下默认dd后的分区:
/dev/sda1 | boot 分区 |
/dev/sda2 | rom 分区 |
/dev/sda3 | overlay 分区(需要自己新建分区,默认不存在) |
写入镜像
采用上传文件到 /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