前言
今天终于把自己折腾炸了的旁路由修好了,但是为了防止自己手贱,完决定把部署好的 OpenWrt 打包成 img 镜像备份,下次炸了就可以一键还原。
废话少说我们开始吧!
OpenWrt 系统打包
- 查看磁盘分区,使用
lsblk
命令,可以看到 sda 就是我们 OpenWrt 系统使用的磁盘了,而 sdb 是我们新挂载的磁盘,挂载在 /newssd 目录下。
[root@OpenWrt:02:11 AM ~] # lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 956.6M 0 loop /overlay
sda 8:0 0 1G 0 disk
├─sda1 8:1 0 16M 0 part /mnt/sda1
│ /boot
│ /boot
└─sda2 8:2 0 1004M 0 part /rom
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part /newssd
sr0 11:0 1 1024M 0 rom
zram0 253:0 0 661M 0 disk [SWAP]
- 使用 dd 命令把 sda 磁盘分区完整的打包并且放在 newssd 目录下
[root@OpenWrt:02:01 AM /newssd] # dd if=/dev/sda of=/newssd/openwrt.img count=4048 bs=1024k conv=sync
1024+0 records in
1024+0 records out
等待dd命令运行完成后,就得到了RAW格式的openwrt.img镜像
dd命令参数的含义:
- if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=/dev/sdb >
- of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=./backup/backup.img, 这里的.img是镜像的格式,转成.img格式的文件后方便后续使用etcher烧录镜像 >
- bs = bytes:同时设置读入/输出的块大小为bytes个字节,此处填的是1024k,表示1M大小。
- count = blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数,此处设置的是2048, 表示2048个bs,也就是2g。
- conv= sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
注意
新磁盘的大小一定要大于 OpenWrt 系统磁盘的大小,不然会出错!