====== How To Make A SD Image From SD Bootable OS ====== //__About this Article__// * **Author**: sam --- sam@cubietech.com --- 2014/03/13 01:33 * **Copyrights**: [[http://creativecommons.org/licenses/by-sa/3.0/|CC Attribution-Share Alike 3.0 Unported]] * **Contributors**: [[http://cubieboard.org/|Cubieboard Community]] : ... ===== Abstract ===== we may want to backup our SD bootable OS which have installed many application software. We can make SD Bootable OS into a SD card image.here is guide for you.This guide is for Linux platform only. ===== Prerequisites ===== * Any Linux environment,​ we want fdisk, dd, tar, commands * An SD Card which must have installed a OS ==== Steps:==== ==== (1) Unpacking you SD card OS. ==== ==== 1.Unpacking the first partition (including script.bin uImag bootscr ) ==== $sudo umount /media/* $sudo mount /dev/sdb1 /mnt $sudo tar -cp * |sudo gzip -9 > ~/bootfs.tar.gz $sudo umount /mnt ==== 2.Unpacking the second partion (file systerm) ==== $sudo mount /dev/sdb2 /mnt $sudo tar -cp * |sudo gzip -9 > ~/rootfs.tar.gz ==== (2) Begining making imgae ==== ==== 1.Create a empty image and write uboot in it ==== $ mkdir WORK_DIR $cd $WORK_DIR //creating empty image , this space is 2.5G,you can change by yourself $sudo dd if=/dev/zero of=disk.img count=5000000 //associating /dev/loop0 with the image $sudo losetup /dev/loop0 disk.img $sudo dd if=/dev/zero of=/dev/loop0 bs=1k count=1024 $sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/loop0 bs=1024 seek=8 //write uboot in image ==== 2.Partitioning==== $sudo fdisk /dev/loop0 Using the fdisk command to create 2 partitions on the SD Card, e.g. * 1st partitions start from 2048 sectors, 64MB in size * 2nd partitions just keep it all default Show bellow Device Boot Start End Blocks Id System /dev/loop0p1 2048 133119 65536 83 Linux /dev/loop0p2 133120 4999999 2433440 83 Linu Also we recommend you to look at [[http://linux-sunxi.org/Bootable_SD_card |Bootable_SD_card]] ==== 3.Mounting the partition and move OS to image ==== $cd $WORK_DIR associateing /dev/loop0 with image again $sudo losetup -d /dev/loop0 && sudo losetup /dev/loop0 disk.img //associateing /dev/loop1 with the first partition of /dev/loop0,1048576=512*2048) $sudo losetup -o 1048576 /dev/loop1 /dev/loop0 //format the first partition $sudo mkfs.vfat /dev/loop1 //format the second partitions $sudo mkfs.ext4 /dev/loop2 $sudo mount /dev/loop1 /mnt //decompressing bootfs.tar.gz to the first partition $sudo tar -zxvf ~/bootfs.tar.gz -C /mnt $sudo umount /mnt $sudo mount /dev/loop2 /mnt //decompressing rootfs.tar.gz to second partition $sudo tar -zxvf ~/rootfs.tar.gz -C /mnt $sync && umount /mnt //cancel associating $losetup -d /dev/loop2 //cancel associating $losetup -d /dev/loop1 //cancel associating $losetup -d /dev/loop0