[baseimage]: build root filesystem via overlay fs instead of aufs
This commit is contained in:
parent
72d70e98be
commit
f64ffe8571
@ -116,7 +116,7 @@ sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/initramfs-tools_*.deb || \
|
||||
sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/linux-image-${LINUX_KERNEL_VERSION}-amd64_*.deb || \
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f
|
||||
|
||||
## Update initramfs for booting with squashfs+aufs
|
||||
## Update initramfs for booting with squashfs+overlay
|
||||
cat files/initramfs-tools/modules | sudo tee -a $FILESYSTEM_ROOT/etc/initramfs-tools/modules > /dev/null
|
||||
|
||||
## Hook into initramfs: change fs type from vfat to ext4 on arista switches
|
||||
@ -148,6 +148,7 @@ sudo cp files/initramfs-tools/mgmt-intf-dhcp $FILESYSTEM_ROOT/etc/initramfs-tool
|
||||
sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-bottom/mgmt-intf-dhcp
|
||||
sudo cp files/initramfs-tools/union-fsck $FILESYSTEM_ROOT/etc/initramfs-tools/hooks/union-fsck
|
||||
sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/hooks/union-fsck
|
||||
pushd $FILESYSTEM_ROOT/usr/share/initramfs-tools/scripts/init-bottom && sudo patch -p1 < $OLDPWD/files/initramfs-tools/udev.patch; popd
|
||||
sudo chroot $FILESYSTEM_ROOT update-initramfs -u
|
||||
|
||||
## Install latest intel igb driver
|
||||
@ -273,7 +274,7 @@ sudo sed -i '
|
||||
' $FILESYSTEM_ROOT/etc/monit/monitrc
|
||||
|
||||
sudo tee -a $FILESYSTEM_ROOT/etc/monit/monitrc > /dev/null <<'EOF'
|
||||
check filesystem root-aufs with path /
|
||||
check filesystem root-overlay with path /
|
||||
if space usage > 90% for 5 times within 10 cycles then alert
|
||||
check filesystem var-log with path /var/log
|
||||
if space usage > 90% for 5 times within 10 cycles then alert
|
||||
|
@ -1,5 +1,5 @@
|
||||
squashfs
|
||||
aufs
|
||||
overlay
|
||||
vfat
|
||||
nls_cp437
|
||||
nls_utf8
|
||||
|
10
files/initramfs-tools/udev.patch
Normal file
10
files/initramfs-tools/udev.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- a/udev 2017-09-02 23:13:45.078773236 +0000
|
||||
+++ b/udev 2017-09-02 22:40:08.502773236 +0000
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
-PREREQS=""
|
||||
+PREREQS="union-mount"
|
||||
|
||||
prereqs() { echo "$PREREQS"; }
|
||||
|
@ -11,18 +11,19 @@ case $1 in
|
||||
;;
|
||||
esac
|
||||
|
||||
## Mount the aufs file system: rw layer over squashfs
|
||||
## Mount the overlay file system: rw layer over squashfs
|
||||
image_dir=$(cat /proc/cmdline | sed -e 's/.*loop=\(\S*\)\/.*/\1/')
|
||||
mkdir -p ${rootmnt}/host/$image_dir/rw
|
||||
mount -n -o dirs=${rootmnt}/host/$image_dir/rw:${rootmnt}=ro -t aufs root-aufs ${rootmnt}
|
||||
mkdir -p ${rootmnt}/host/$image_dir/work
|
||||
mount -n -o lowerdir=${rootmnt},upperdir=${rootmnt}/host/$image_dir/rw,workdir=${rootmnt}/host/$image_dir/work -t overlay root-overlay ${rootmnt}
|
||||
## Check if the root block device is still there
|
||||
[ -b ${ROOT} ] || mdev -s
|
||||
## Mount the raw partition again
|
||||
mount ${ROOT} ${rootmnt}/host
|
||||
## Mount the working directory of docker engine in the raw partition, bypass the aufs
|
||||
## Mount the working directory of docker engine in the raw partition, bypass the overlay
|
||||
mkdir -p ${rootmnt}/var/lib/docker
|
||||
mount --bind ${rootmnt}/host/$image_dir/{{ DOCKERFS_DIR }} ${rootmnt}/var/lib/docker
|
||||
## Mount the boot directory in the raw partition, bypass the aufs
|
||||
## Mount the boot directory in the raw partition, bypass the overlay
|
||||
mkdir -p ${rootmnt}/boot
|
||||
mount --bind ${rootmnt}/host/$image_dir/boot ${rootmnt}/boot
|
||||
## Mount loop device for /var/log
|
||||
|
Loading…
Reference in New Issue
Block a user