备份BPI-M3的sd卡img镜像(loseup、resize2fs)

(放弃本方案,sd卡文件太大了,制做效率低,改用 https://www.cnblogs.com/Baron-Lu/p/11403375.html)html

 

系统装在sd上,挂了,修复两天都没搞定,想一想安装ros,编译工程的繁琐,一把辛酸泪!坚决先去制做备份镜像文件吧。node

没找到香蕉派的镜像制做方法,树莓派倒不少,参考了   http://www.fendou.info/raspberry-pi-sd-card-backup-and-recovery/comment-page-1/    ,惋惜作出来用不了,不过折腾了两天,也算是积累了失败的经验。ide

今天开始用回几年前的老方法,dd命令,简单可靠,惋惜有点慢,镜像文件太大了,并且不必定能烧到新的sd卡上(一样大小的sd卡,空间大小仍是有差别的!坑).Anyway,先备份,数据无价嘛,备份好再解决体积问题。oop

 

第一步:dd 制做镜像orm

1.df -h 查看sd卡的设备挂载点,个人是sdb1,sdb2,结果以下htm

/dev/sdb2 6.7G 4.7G 1.7G 74% /media/robot/BPI-ROOT
/dev/sdb1 256M 13M 244M 5% /media/robot/BPI-BOOTblog

2.运行dd制做镜像,32G大小,时间会比较久raspberry-pi

sudo dd if=/dev/sdb of=/home/robot/bpi.imgit

 

第二步:拷贝一下刚刚生成的bpi.img,预防万一嘛io

第三步:缩小bpi.img体积

1.查看loop设备状况

losetup -l

 

2.挂载img文件到一个空闲的loop设备号

sudo losetup /dev/loop0 /home/robot/bpi.img

 

3.查看img中的分区sudo fdisk -l /dev/loop0

结果以下:

Disk /dev/loop0: 29.6 GiB, 31719424000 bytes, 61952000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xed35698e

Device Boot Start End Sectors Size Id Type
/dev/loop0p1 204800 729087 524288 256M c W95 FAT32 (LBA)
/dev/loop0p2 729088 14940159 14211072 6.8G 83 Linux

 

4.挂载root分区/dev/loop0p2

sudo losetup -o $[729088 *512]  /dev/loop3 /home/robot/bpi.img

 

5. 查看并缩小root分区的文件系统大小

sudo e2fsck -f /dev/loop3

结果以下:

e2fsck 1.42.13 (17-May-2015)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
BPI-ROOT: 206956/1890720 files (0.1% non-contiguous), 1333945/7652864 blocks

 

6.修改文件系统大小

sudo resize2fs /dev/loop3 1500000

返回:

resize2fs 1.42.13 (17-May-2015)
Resizing the filesystem on /dev/loop3 to 1500000 (4k) blocks.
The filesystem on /dev/loop3 is now 1500000 (4k) blocks long.

 

7.fdisk分区情形

sudo fdisk -l /dev/loop0

Disk /dev/loop0: 29.6 GiB, 31719424000 bytes, 61952000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xed35698e

Device Boot Start End Sectors Size Id Type
/dev/loop0p1 204800 729087 524288 256M c W95 FAT32 (LBA)
/dev/loop0p2 729088 14940159 14211072 6.8G 83 Linux

 

8.重建分区,分区开始分区必定不能变,结束分区得大于文件系统。

9.最后一步:

 dd if=/dev/loop0 of=/home/pi/my.img bs=4M count=xxx

size=bs*count 。注意大小要大于分区大小。

相关文章
相关标签/搜索