1
0
Fork 0

Separate mount point

This commit is contained in:
Braiden Vasco 2017-07-03 00:24:50 +00:00
parent 9c467c86ac
commit 36c5caad1e
4 changed files with 39 additions and 35 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
/deploy/
/mnt/
/rootfs/
/work/

View File

@ -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

View File

@ -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

View File

@ -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"