This shows you the differences between two versions of the page.
|
how_to_make_a_sd_image_from_sd_bootable_os [2014/03/13 13:31] sam created |
how_to_make_a_sd_image_from_sd_bootable_os [2014/03/13 14:22] (current) sam |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== How To Make A SD Image From SD Bootable OS ====== | ====== How To Make A SD Image From SD Bootable OS ====== | ||
| + | |||
| + | <WRAP noprint><WRAP left box 60%> | ||
| + | //__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]] : ... | ||
| + | </WRAP></WRAP> | ||
| + | |||
| + | ===== 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 | ||
| + | |||
| + | |||
| + | |||
| - | <WRAP noprint> | ||
| - | {{tag>Cubieboard Cubietruck}} | ||
| - | </WRAP> | ||