備份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 。注意大小要大於分區大小。

相關文章
相關標籤/搜索