在raspberry pi开发中,常常修改系统配置。有时候也不知道该了什么东西,因此就制做了几个镜像来保存进度。linux
问题:ide
所以,须要完成如下内容oop
首先查看分区fdisk -ul xxx.img
,再按p
。.net
Disk ros.ima: 14.9 GiB, 15924142080 bytes, 31101840 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: 0x87ec3003 Device Boot Start End Sectors Size Id Type ros.ima1 8192 93814 85623 41.8M c W95 FAT32 (LBA) ros.ima2 94208 31116287 31022080 14.8G 83 Linux Device: ros.ima2 Start: 94208 End: 31116287 Sectors: 31022080 Cylinders: 1932 Size: 14.8G Id: 83 Type: Linux Start-C/H/S: 5/24/220 End-C/H/S: 1023/63/254
能够看到ros.ima2的偏移量为94208*512,键入sudo mount -o loop,offset=48234496 ros.ima /mnt/ras/
。
遗憾的是,出现以下错误:code
EXT4-fs (loop0): bad geometry: block count 3877760 exceeds size of device (3875954 blocks)orm
因为磁盘镜像的容量与内容大小不匹配,因此致使了这个问题。镜像的实际容量应为:3877760*4096 + 94208*512
blog
truncate -s 15931539456 ros.ima sudo mount -o loop,offset=48234496 ros.ima /mnt/ras/
到此,成功加载磁盘镜像。开发
使用tar备份能够减小系统的体积。 tar -cvpzf ros.tgz -C /mnt/ras/ .
备份时没有剔除任何目录,由于另外一个linux没有运行,里面没有临时文件。get
解压的时候使用 tar -xvpzf ros.tgz -C /mnt
cmd
树莓派不是传统的磁盘引导,而是会自动去寻找启动分区。启动分区和root分区的制做
所以只须要在cmdline.txt中填入正确的值就好了。
首先使用fdisk
建立分区。
格式化分区 sudo mkfs.ext4 /dev/sdb2
解压文件tar -xvpzf ros.tgz -C /media/ras