@@ -830,35 +830,42 rm -f $R/var/lib/urandom/random-seed | |||||
830 | rm -f $R/etc/machine-id |
|
830 | rm -f $R/etc/machine-id | |
831 | rm -fr $R/etc/apt/apt.conf.d/10proxy |
|
831 | rm -fr $R/etc/apt/apt.conf.d/10proxy | |
832 |
|
832 | |||
833 | # Calculate size of the chroot directory |
|
833 | # Calculate size of the chroot directory in KB | |
834 |
CHROOT_SIZE=$(expr `du -s $R | awk '{ print $1 }'` |
|
834 | CHROOT_SIZE=$(expr `du -s $R | awk '{ print $1 }'`) | |
835 |
|
835 | |||
836 | # Calculate required image size |
|
836 | # Calculate the amount of needed 512 Byte sectors | |
837 | IMAGE_SIZE=`expr $(expr ${CHROOT_SIZE} / 1024 + 1) \* 1024` |
|
837 | TABLE_SECTORS=$(expr 1 \* 1024 \* 1024 \/ 512) | |
|
838 | BOOT_SECTORS=$(expr 64 \* 1024 \* 1024 \/ 512) | |||
|
839 | ROOT_OFFSET=$(expr ${TABLE_SECTORS} + ${BOOT_SECTORS}) | |||
838 |
|
840 | |||
839 | # Calculate number of sectors for the partition |
|
841 | # The root partition is EXT4 | |
840 | IMAGE_SECTORS=`expr $(expr ${IMAGE_SIZE} \* 1048576) / 512 - 133120` |
|
842 | # This means more space than the actual used space of the chroot is used. | |
|
843 | # As overhead for journaling and reserved blocks 20% are added. | |||
|
844 | ROOT_SECTORS=$(expr $(expr ${CHROOT_SIZE} + ${CHROOT_SIZE} \/ 100 \* 20) \* 1024 \/ 512) | |||
|
845 | ||||
|
846 | # Calculate required image size in 512 Byte sectors | |||
|
847 | IMAGE_SECTORS=$(expr ${TABLE_SECTORS} + ${BOOT_SECTORS} + ${ROOT_SECTORS}) | |||
841 |
|
848 | |||
842 | # Prepare date string for image file name |
|
849 | # Prepare date string for image file name | |
843 | DATE="$(date +%Y-%m-%d)" |
|
850 | DATE="$(date +%Y-%m-%d)" | |
844 |
|
851 | |||
845 | # Prepare image file |
|
852 | # Prepare image file | |
846 |
dd if=/dev/zero of="$BASEDIR/${DATE}-debian-${RELEASE}.img" bs= |
|
853 | dd if=/dev/zero of="$BASEDIR/${DATE}-debian-${RELEASE}.img" bs=512 count=${TABLE_SECTORS} | |
847 |
dd if=/dev/zero of="$BASEDIR/${DATE}-debian-${RELEASE}.img" bs= |
|
854 | dd if=/dev/zero of="$BASEDIR/${DATE}-debian-${RELEASE}.img" bs=512 count=0 seek=${IMAGE_SECTORS} | |
848 |
|
855 | |||
849 | # Write partition table |
|
856 | # Write partition table | |
850 |
sfdisk -q |
|
857 | sfdisk -q -f "$BASEDIR/${DATE}-debian-${RELEASE}.img" <<EOM | |
851 | unit: sectors |
|
858 | unit: sectors | |
852 |
|
859 | |||
853 |
1 : start= |
|
860 | 1 : start= ${TABLE_SECTORS}, size= ${BOOT_SECTORS}, Id= c, bootable | |
854 |
2 : start= |
|
861 | 2 : start= ${ROOT_OFFSET}, size= ${ROOT_SECTORS}, Id=83 | |
855 | 3 : start= 0, size= 0, Id= 0 |
|
862 | 3 : start= 0, size= 0, Id= 0 | |
856 | 4 : start= 0, size= 0, Id= 0 |
|
863 | 4 : start= 0, size= 0, Id= 0 | |
857 | EOM |
|
864 | EOM | |
858 |
|
865 | |||
859 | # Set up temporary loop devices and build filesystems |
|
866 | # Set up temporary loop devices and build filesystems | |
860 | VFAT_LOOP="$(losetup -o 1M --sizelimit 64M -f --show $BASEDIR/${DATE}-debian-${RELEASE}.img)" |
|
867 | VFAT_LOOP="$(losetup -o 1M --sizelimit 64M -f --show $BASEDIR/${DATE}-debian-${RELEASE}.img)" | |
861 |
EXT4_LOOP="$(losetup -o 65M |
|
868 | EXT4_LOOP="$(losetup -o 65M -f --show $BASEDIR/${DATE}-debian-${RELEASE}.img)" | |
862 | mkfs.vfat "$VFAT_LOOP" |
|
869 | mkfs.vfat "$VFAT_LOOP" | |
863 | mkfs.ext4 "$EXT4_LOOP" |
|
870 | mkfs.ext4 "$EXT4_LOOP" | |
864 |
|
871 |
General Comments 0
Vous devez vous connecter pour laisser un commentaire.
Se connecter maintenant