我的建议是先把你原本的rootfs用mksquashfs压缩,
然后直接换张大容量SD卡,重灌过后把里面原本rootfs挖空(用rm删除),
再用unsquashfs解开你原本的rootfs到你刚刚挖空的地方就好。
这一篇比下面那篇‘[问题] linux可以完整克隆到其他电脑吗’ 还要简单一点。
因为要做到clone,除了rootfs档案系统外还要考虑到grub (boot loader),磁区分割,
考虑到别台电脑可能硬件不同,说不定连linux kernel (driver)都要更换或修改才行。
树莓派都省了,上述问题一个都不存在:
1. 没有boot loader,树莓派不像传统采用uboot,博通是写死在GPU rom code开机
2. 磁区分割,这个你如果是灌NOOBS等,都会帮你割好,不用你自己动手
3. 硬件相同,树莓派硬件相同,你只换大容量SD卡。linux kernel不用修改,重编译
只须先把SD卡插进电脑,假设rootfs是/dev/sdg6,系统自动帮你挂载到/media/ROOTFS
那就sudo mksquashfs /media/ROOTFS ~/rootfs.sfs (我假设你PC家目录空间够大)
然后换新的SD卡,你先安装一模一样的系统在上面,装完后一样把那张卡插到你桌机。
当然两张卡磁区分割一定会一模一样。所以还是会帮妳挂到桌机端的/media/ROOTFS。
删除该资料夹所有东西:sudo rm -rf /media/ROOTFS(小心千万不要sudo rm -rf / )
在cd过去解开第一步压缩的rootfs.sfs:
cd /media/ROOTFS && sudo unsquashfs -d ./rootfs ~/rootfs.sfs
sudo mv ./rootfs/* . && sudo mv ./rootfs/.* .
sudo rmdir rootfs && sudo sync (到这完成,可以把卡片安全退出插回树莓派了)
最后把你存在家目录的rootfs.sfs删掉:sudo rm ~/rootfs.sfs
p.s :
1. 由于没有磁区分割的问题要考虑,我不会建议用dd。
2. 压缩rootfs你想要用tar来压缩也是可以。只是我觉得mksquashfs比较无脑。
3. /dev/sdg6跟/media/ROOTFS我瞎掰的,你自己得找找对应的地方。
4. 这个作法你还会需要一台linux桌机。