新建个2G的img文件,不要小于系统占用空间大小:
1 | fallocate -l $(( 2048 * 1024 *1024 )) ubuntu.img |
分区:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | cat > fdisk.cmd <<-EOFonp1+128MBtcnp2wEOFfdisk ubuntu.img < fdisk.cmd |
挂载img为loop设备:
1 | losetup -f -P --show ubuntu.img |
格式化及挂载:
1 2 3 4 5 6 | mkfs.vfat -n "BOOTFS" /dev/loop0p1mke2fs -F -q -t ext4 -L ROOTFS -m 0 /dev/loop0p2mkdir /imgmount /dev/loop0p2 /imgmkdir /img/bootmount /dev/loop0p1 /img/boot |
备份系统:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | cd /DIR_INSTALL=/imgcp -r /boot/* /img/boot/mkdir -p $DIR_INSTALL/devmkdir -p $DIR_INSTALL/mediamkdir -p $DIR_INSTALL/mntmkdir -p $DIR_INSTALL/procmkdir -p $DIR_INSTALL/runmkdir -p $DIR_INSTALL/sysmkdir -p $DIR_INSTALL/tmptar -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 -)sync |
用作U盘启动,boot/uEnv.ini文件:
1 | 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文件:
1 2 3 | LABEL=ROOTFS / ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 1LABEL=BOOTFS /boot vfat defaults 0 2tmpfs /tmp tmpfs defaults,nosuid 0 0 |