mirror of
				https://github.com/Telecominfraproject/ols-nos.git
				synced 2025-10-31 01:57:48 +00:00 
			
		
		
		
	[baseimage]: build root filesystem via overlay fs instead of aufs
This commit is contained in:
		| @@ -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 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 |     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 | 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 | ## 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 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 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 | 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 | sudo chroot $FILESYSTEM_ROOT update-initramfs -u | ||||||
|  |  | ||||||
| ## Install latest intel igb driver | ## Install latest intel igb driver | ||||||
| @@ -273,7 +274,7 @@ sudo sed -i ' | |||||||
|     ' $FILESYSTEM_ROOT/etc/monit/monitrc |     ' $FILESYSTEM_ROOT/etc/monit/monitrc | ||||||
|  |  | ||||||
| sudo tee -a $FILESYSTEM_ROOT/etc/monit/monitrc > /dev/null <<'EOF' | 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 |   if space usage > 90% for 5 times within 10 cycles then alert | ||||||
| check filesystem var-log with path /var/log | check filesystem var-log with path /var/log | ||||||
|   if space usage > 90% for 5 times within 10 cycles then alert |   if space usage > 90% for 5 times within 10 cycles then alert | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| squashfs | squashfs | ||||||
| aufs | overlay | ||||||
| vfat | vfat | ||||||
| nls_cp437 | nls_cp437 | ||||||
| nls_utf8 | 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 | 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/') | image_dir=$(cat /proc/cmdline | sed -e 's/.*loop=\(\S*\)\/.*/\1/') | ||||||
| mkdir -p ${rootmnt}/host/$image_dir/rw | 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 | ## Check if the root block device is still there | ||||||
| [ -b ${ROOT} ] || mdev -s | [ -b ${ROOT} ] || mdev -s | ||||||
| ## Mount the raw partition again | ## Mount the raw partition again | ||||||
| mount ${ROOT} ${rootmnt}/host | 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 | mkdir -p ${rootmnt}/var/lib/docker | ||||||
| mount --bind ${rootmnt}/host/$image_dir/{{ DOCKERFS_DIR }} ${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 | mkdir -p ${rootmnt}/boot | ||||||
| mount --bind ${rootmnt}/host/$image_dir/boot ${rootmnt}/boot | mount --bind ${rootmnt}/host/$image_dir/boot ${rootmnt}/boot | ||||||
| ## Mount loop device for /var/log | ## Mount loop device for /var/log | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Guohan Lu
					Guohan Lu