找回密码
 立即注册
img_loading
智能检测中

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
查看: 6108|回复: 5

OPENWRT 运行在U盘之后,dd if=/dev/sda1怎么恢复?

[复制链接]
发表于 2017-2-14 15:24 | 显示全部楼层 |阅读模式
按照网上的教程,这样操作

1.查看 firmware 分区所对应的 mtd 设备

cat /proc/mtd

显示:
dev:    size   erasesize  name
mtd0: 00020000 00010000 "u-boot"
mtd1: 0011f61c 00010000 "kernel"
mtd2: 006b09e4 00010000 "rootfs"
mtd3: 00480000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "art"
mtd5: 007d0000 00010000 "firmware"


2.得到固件备份文件 ******_backup.bin,在 /dev/sda3 目录下

dd if=/dev/mtd0 of=/mnt/sda3/u-boot_backup.bin
dd if=/dev/mtd1 of=/mnt/sda3/kernel_backup.bin
dd if=/dev/mtd2 of=/mnt/sda3/rootfs_backup.bin
dd if=/dev/mtd3 of=/mnt/sda3/rootfs_data_backup.bin
dd if=/dev/mtd4 of=/mnt/sda3/art_backup.bin
dd if=/dev/mtd5 of=/mnt/sda3/firmware_backup.bin
自己写了下面这条,想备份U盘第一分区(openwrtU盘的启动分区)
dd if=/dev/sda1 of=/mnt/sda3/upan_openwrt_backup.bin

3.恢复该固件:
将 firmware_backup.bin 上传至 /tmp,使用命令

mtd -r write /mnt/sda3/u-boot_backup.bin u-boot
mtd -r write /mnt/sda3/kernel_backup.bin kernel
mtd -r write /mnt/sda3/rootfs_backup.bin rootfs
mtd -r write /mnt/sda3/rootfs_data_backup.bin rootfs_data
mtd -r write /mnt/sda3/art_backup.bin art
mtd -r write /mnt/sda3/firmware_backup.bin firmware
下面恢复的时候就出问题了,
即可恢复,恢复完成路由器会自行重启】

mtd -r write /mnt/sda3/upan_openwrt_backup.bin firmware
上面不管是插上U盘启动或拔掉U盘启动恢复都会恢复到路由器flash,


这样操作后,恢复时出现下面这样的错误
root@OpenWrt:~# mtd -r write /mnt/sda3/upan_openwrt_backup.bin rootfs
Could not open mtd device: rootfs
Can't open device for writing!
root@OpenWrt:~# mtd -r write /mnt/sda3/upan_openwrt_backup.bin /overlay
Could not open mtd device: /overlay
Can't open device for writing!
root@OpenWrt:~# mtd -r write /mnt/sda3/upan_openwrt_backup.bin /
Could not open mtd device: /
Can't open device for writing!



想实现U盘第一分区的备份和恢复,求大神指导!!!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2017-2-14 16:42 来自手机 | 显示全部楼层
本帖最后由 icanon 于 2017-2-14 17:15 编辑

只恢复U盘分区,似乎不需要 mtd 命令吧?用 dd 命令就行了。
dd 命令的用法是这样:
dd if=输入设备或文件 of=输出设备或文件 bs=每次写入的大小 count=写入多少次
bs 与 count 为可选参数。



dd if=/dev/sda1 of=/mnt/sda3/upan_openwrt_backup.bin
是将 sda1 也就是 U盘第1分区 备份到
sda3 也就是 U盘第3分区的 upan_openwrt_backup.bin 文件


如果想恢复的时候可以倒过来
dd if=/mnt/sda3/upan_openwrt_backup.bin of=/dev/sda1
就行了。
不过 dd 命令很不安全,如果操作失误容易将整个硬盘的资料毁掉,所以尽量别用。


如只是恢复文件还有个方法你可以试试。
新建一个文件夹
mkdir /mnt/backup
挂载备份文件
mount -o ro,loop /mnt/sda3/upan_openwrt_backup.bin /mnt/backup
然后就可以在 /mnt/backup 文件夹里看到备份的文件了。
然后可以用其他可视化工具操作,或者用 cp 命令复制。
比如
cp -a /mnt/backup /mnt/sda1
以上手机输入,没有测试,尝试之前千万要备份所有重要资料。






点评

第一种方法挂了,第二种方法出现下面这个问题 root@OpenWrt:~# mount /dev/sda1 /mnt/backup root@OpenWrt:~# mount -o /mnt/sda3/upan_openwrt_backup.bin /mnt/backup mount: can't read '/etc/fstab': No such  详情 回复 发表于 2017-2-14 17:48
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-14 17:48 | 显示全部楼层
icanon 发表于 2017-2-14 16:42
只恢复U盘分区,似乎不需要 mtd 命令吧?用 dd 命令就行了。
dd 命令的用法是这样:
dd if=输入设备或文 ...

第一种方法挂了,第二种方法出现下面这个问题
root@OpenWrt:~# mount /dev/sda1 /mnt/backup
root@OpenWrt:~# mount -o /mnt/sda3/upan_openwrt_backup.bin /mnt/backup
mount: can't read '/etc/fstab': No such file or directory
root@OpenWrt:~#
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2017-2-14 20:48 来自手机 | 显示全部楼层
mount -o ro,loop
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2017-2-14 20:53 来自手机 | 显示全部楼层
需要 kmod-loop 好像是这个名,记不清了。
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-15 11:05 | 显示全部楼层
嗯,此方案可行。
直接mount -o loop 就行
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛

只谈技术、莫论政事!切勿转播谣言!为了你也为了他人。
只谈技术、莫论政事!(点击见详情) 切记不要随意传播谣言,把自己的日子过安稳了就行,为了自己好也为了大家好。 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。

查看 »

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-6-14 15:54

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表