(放棄本方案,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 。注意大小要大於分區大小。