备份sd卡上的操作系统

     我们的嵌入式开发板上的ubuntu操作系统存在于一张sdcard上。怎么备份这个系统到另外一张sdcard上呢?简单地拷贝似乎行不通,无法启动。我使用linux dd命令圆满完成备份任务,经过验证,系统能够启动,运行正常。

     步骤如下:

    准备两张sd卡,源卡和目标卡。目标卡的容量必须大于等于源卡。dd命令使用比较容易,将两张sd卡插入读卡器,用dmesg | tail 命令查看两个sd卡的名称,我看到的是sdb,sdc等。以sdb是源卡,sdb卡是目标卡为例,将sdb中的系统备份到sdc中,命令是dd  if=/dev/sdb of=/dev/sdc。千万不要将if和of弄反。

   为了以防万一,我没有进行两张sd卡之间的直接拷贝,而是将源卡备份到文件中,再从文件备份到目标卡。这样的好处有两点:1.不用担心弄反了源卡和目标卡,而误将源卡覆盖;2.将源卡的内容备份到系统上,以后再备份的时候,不用再读源卡,直接从该文件备份即可。缺点也有一个,我的sd卡是4G的,这么多数据放在电脑上,还是挺占空间的。

   我使用的命令:

   1.将源卡中的系统备份到文件

   sudo dd if=/dev/sdb of=~/sdcar1

   我拷贝了4G的数据,耗时10分钟左右。

   2.将文件中的数据备份到目标卡

   sudo dd if=~/sdcard of=/dev/sdc

   这个比较耗时,用了近1个小时。不知道是不是因为我是在虚拟机里面操作的缘故。据说,dd命令拷贝4G这么大的数据容易失败,但是我试过多次,就有1次失败了,其他几次都是成功的。还比较幸运。

  以下是我三次运行dd命令的记录,没有出错。注意到第2次拷贝文件大小与第1次和第3次稍有差异,估计虽然都是4G的sdcard,由于厂商不同,容量上面稍有差异。不过经过验证系统能够正常启动。

1. sudo dd if=/dev/sdc of=/mnt/hgfs/D/sdcard1
7744512+0 records in
7744512+0 records out
3965190144 bytes (4.0 GB) copied, 788.622 s, 5.0 MB/s

3965190144

 

2. sudo dd if=/mnt/hgfs/D/sdcard1 of=/dev/sdb
7741441+0 records in
7741440+0 records out
3963617280 bytes (4.0 GB) copied, 3799.31 s, 1.0 MB/s

 

3. sudo dd if=/mnt/hgfs/D/sdcard1 of=/dev/sdb
7744512+0 records in
7744512+0 records out
3965190144 bytes (4.0 GB) copied, 4830.33 s, 821 kB/s


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值