diff --git a/.gitignore b/.gitignore index ed4c30a..2bf9d56 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /deploy/ +/mnt/ /rootfs/ /work/ diff --git a/build.sh b/build.sh index cd6a0b6..74d4add 100755 --- a/build.sh +++ b/build.sh @@ -6,6 +6,7 @@ export FUNCTIONS_DIR="$BASE_DIR/functions" export DEPLOY_DIR="$BASE_DIR/deploy" export ROOTFS_DIR="$BASE_DIR/rootfs" export BOOTFS_DIR="$ROOTFS_DIR/boot" +export MOUNT_DIR="$BASE_DIR/mnt" export IMG_DATE export WORK_DIR diff --git a/stage0/00-substage/18-run.sh b/stage0/00-substage/18-run.sh index 05daa43..1c9e405 100755 --- a/stage0/00-substage/18-run.sh +++ b/stage0/00-substage/18-run.sh @@ -99,16 +99,18 @@ ROOT_DEV=$(losetup --show -f -o $ROOT_OFFSET --sizelimit $ROOT_LENGTH "$IMG_FILE mkdosfs -n boot -F 32 -v $BOOT_DEV > /dev/null mkfs.ext4 -O ^huge_file $ROOT_DEV > /dev/null -mkdir -p "$ROOTFS_DIR" -mount -v $ROOT_DEV "$ROOTFS_DIR" -t ext4 +mkdir -p "$MOUNT_DIR" +mount -v $ROOT_DEV "$MOUNT_DIR" -t ext4 -mkdir -p "$BOOTFS_DIR" -mount -v $BOOT_DEV "$BOOTFS_DIR" -t vfat +mkdir -p "$MOUNT_DIR/boot" +mount -v $BOOT_DEV "$MOUNT_DIR/boot" -t vfat -if [ -e ${ROOTFS_DIR}/etc/ld.so.preload ]; then - mv ${ROOTFS_DIR}/etc/ld.so.preload ${ROOTFS_DIR}/etc/ld.so.preload.disabled +rsync -aHAXx --exclude var/cache/apt/archives "$ROOTFS_DIR/" "$MOUNT_DIR/" + +if [ -e ${MOUNT_DIR}/etc/ld.so.preload ]; then + mv ${MOUNT_DIR}/etc/ld.so.preload ${MOUNT_DIR}/etc/ld.so.preload.disabled fi -if [ ! -x ${ROOTFS_DIR}/usr/bin/qemu-arm-static ]; then - cp /usr/bin/qemu-arm-static ${ROOTFS_DIR}/usr/bin/ +if [ ! -x ${MOUNT_DIR}/usr/bin/qemu-arm-static ]; then + cp /usr/bin/qemu-arm-static ${MOUNT_DIR}/usr/bin/ fi diff --git a/stage0/00-substage/24-run.sh b/stage0/00-substage/24-run.sh index 89765fb..f2f3aa5 100755 --- a/stage0/00-substage/24-run.sh +++ b/stage0/00-substage/24-run.sh @@ -6,62 +6,62 @@ apt-get -y dist-upgrade apt-get clean EOF -install -m 644 files/resolv.conf ${ROOTFS_DIR}/etc/ +install -m 644 files/resolv.conf ${MOUNT_DIR}/etc/ IMGID="$(fdisk -l "$IMG_FILE" | sed -n 's/Disk identifier: 0x\([^ ]*\)/\1/p')" BOOT_PARTUUID="$IMGID-01" ROOT_PARTUUID="$IMGID-02" -sed -i "s/BOOTDEV/PARTUUID=$BOOT_PARTUUID/" "$ROOTFS_DIR/etc/fstab" -sed -i "s/ROOTDEV/PARTUUID=$ROOT_PARTUUID/" "$ROOTFS_DIR/etc/fstab" -sed -i "s/ROOTDEV/PARTUUID=$ROOT_PARTUUID/" "$BOOTFS_DIR/cmdline.txt" +sed -i "s/BOOTDEV/PARTUUID=$BOOT_PARTUUID/" "$MOUNT_DIR/etc/fstab" +sed -i "s/ROOTDEV/PARTUUID=$ROOT_PARTUUID/" "$MOUNT_DIR/etc/fstab" +sed -i "s/ROOTDEV/PARTUUID=$ROOT_PARTUUID/" "$MOUNT_DIR/boot/cmdline.txt" on_chroot << EOF /etc/init.d/fake-hwclock stop hardlink -t /usr/share/doc EOF -if [ -d "$ROOTFS_DIR/home/$USERNAME/.config" ]; then - chmod 700 "$ROOTFS_DIR/home/$USERNAME/.config" +if [ -d "$MOUNT_DIR/home/$USERNAME/.config" ]; then + chmod 700 "$MOUNT_DIR/home/$USERNAME/.config" fi -rm -f "$ROOTFS_DIR/etc/apt/apt.conf.d/51cache" -rm -f "$ROOTFS_DIR/usr/sbin/policy-rc.d" -rm -f "$ROOTFS_DIR/usr/bin/qemu-arm-static" +rm -f "$MOUNT_DIR/etc/apt/apt.conf.d/51cache" +rm -f "$MOUNT_DIR/usr/sbin/policy-rc.d" +rm -f "$MOUNT_DIR/usr/bin/qemu-arm-static" -if [ -e "$ROOTFS_DIR/etc/ld.so.preload.disabled" ]; then - mv "$ROOTFS_DIR/etc/ld.so.preload.disabled" "$ROOTFS_DIR/etc/ld.so.preload" +if [ -e "$MOUNT_DIR/etc/ld.so.preload.disabled" ]; then + mv "$MOUNT_DIR/etc/ld.so.preload.disabled" "$MOUNT_DIR/etc/ld.so.preload" fi -rm -f "$ROOTFS_DIR/etc/apt/sources.list~" -rm -f "$ROOTFS_DIR/etc/apt/trusted.gpg~" +rm -f "$MOUNT_DIR/etc/apt/sources.list~" +rm -f "$MOUNT_DIR/etc/apt/trusted.gpg~" -rm -f "$ROOTFS_DIR/etc/passwd-" -rm -f "$ROOTFS_DIR/etc/group-" -rm -f "$ROOTFS_DIR/etc/shadow-" -rm -f "$ROOTFS_DIR/etc/gshadow-" +rm -f "$MOUNT_DIR/etc/passwd-" +rm -f "$MOUNT_DIR/etc/group-" +rm -f "$MOUNT_DIR/etc/shadow-" +rm -f "$MOUNT_DIR/etc/gshadow-" -rm -f "$ROOTFS_DIR/var/cache/debconf/*-old" -rm -f "$ROOTFS_DIR/var/lib/dpkg/*-old" +rm -f "$MOUNT_DIR/var/cache/debconf/*-old" +rm -f "$MOUNT_DIR/var/lib/dpkg/*-old" -rm -f "$ROOTFS_DIR/usr/share/icons/*/icon-theme.cache" +rm -f "$MOUNT_DIR/usr/share/icons/*/icon-theme.cache" -rm -f "$ROOTFS_DIR/var/lib/dbus/machine-id" +rm -f "$MOUNT_DIR/var/lib/dbus/machine-id" -true > "$ROOTFS_DIR/etc/machine-id" +true > "$MOUNT_DIR/etc/machine-id" -ln -nsf /proc/mounts "$ROOTFS_DIR/etc/mtab" +ln -nsf /proc/mounts "$MOUNT_DIR/etc/mtab" -for _FILE in $(find "$ROOTFS_DIR/var/log/" -type f); do +for _FILE in $(find "$MOUNT_DIR/var/log/" -type f); do true > "$_FILE" done -rm -f "$ROOTFS_DIR/root/.vnc/private.key" +rm -f "$MOUNT_DIR/root/.vnc/private.key" -ROOT_DEV=$(mount | grep "$ROOTFS_DIR " | cut -f1 -d' ') +ROOT_DEV=$(mount | grep "$MOUNT_DIR " | cut -f1 -d' ') -unmount "$ROOTFS_DIR" +unmount "$MOUNT_DIR" zerofree -v "$ROOT_DEV" unmount_image "$IMG_FILE"