|
最近折腾armbian 想备份折腾好的armbian直接烧录到别的U盘使用,ddbr不可以直接烧录。网上搜索一番,还真发现一个可用的方法。分享出来
新建个2G的img文件,不要小于系统占用空间大小:使用 df -h查看大概 占用空间
1创建5g文件(大小看情况更改)
fallocate -l 5g ubuntu.img
2分区:
cat > fdisk.cmd <<-EOF
o
n
p
1
+128MB
t
c
n
p
2
w
EOF
fdisk ubuntu.img < fdisk.cmd
3挂载img为loop设备:
losetup -f -P --show ubuntu.img
4格式化及挂载:
mkfs.vfat -n "BOOT" /dev/loop0p1
mke2fs -F -q -t ext4 -L ROOTFS -m 0 /dev/loop0p2
mkdir /img
mount /dev/loop0p2 /img
mkdir /img/boot
mount /dev/loop0p1 /img/boot
5备份系统
cd /
DIR_INSTALL=/img
cp -r /boot/* /img/boot/
mkdir -p $DIR_INSTALL/dev
mkdir -p $DIR_INSTALL/media
mkdir -p $DIR_INSTALL/mnt
mkdir -p $DIR_INSTALL/proc
mkdir -p $DIR_INSTALL/run
mkdir -p $DIR_INSTALL/sys
mkdir -p $DIR_INSTALL/tmp
tar -cf - bin | (cd $DIR_INSTALL; tar -xpf -)
tar -cf - boot | (cd $DIR_INSTALL; tar -xpf -)
tar -cf - etc | (cd $DIR_INSTALL; tar -xpf -)
tar -cf - home | (cd $DIR_INSTALL; tar -xpf -)
tar -cf - lib | (cd $DIR_INSTALL; tar -xpf -)
tar -cf - opt | (cd $DIR_INSTALL; tar -xpf -)
tar -cf - root | (cd $DIR_INSTALL; tar -xpf -)
tar -cf - sbin | (cd $DIR_INSTALL; tar -xpf -)
tar -cf - selinux | (cd $DIR_INSTALL; tar -xpf -)
tar -cf - srv | (cd $DIR_INSTALL; tar -xpf -)
tar -cf - usr | (cd $DIR_INSTALL; tar -xpf -)
tar -cf - var | (cd $DIR_INSTALL; tar -xpf -)
tar -cf - py | (cd $DIR_INSTALL; tar -xpf -)
sync
6用作U盘启动,boot/uEnv.ini文件//一般不需要操作这步
bootargs=root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0
etc/fstab文件:
LABEL=ROOTFS / ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 1
LABEL=BOOTFS /boot vfat defaults 0 2
tmpfs /tmp tmpfs defaults,nosuid 0 0
7移动到磁盘
mv /ubuntu.img /mnt/disk1
按步骤操作,注意备份前使用umount卸载挂载的硬盘或U盘等大型存储设备,直接复制步骤下命令粘贴到终端回车,注意不要复制中文,等待命令结束即可,一般操作到第五步U盘根目录下就已经有了备份好的可烧录的img文件ubuntu.img,一般第六步不需要操作,mv命令移动到外置U盘硬盘就可以使用balenaEtcher烧录了,第五步执行完毕如果出现问题就重新启动下,再mv ubuntu.img,到外置硬盘。
|
|