mirror of
https://github.com/home-assistant/operating-system.git
synced 2025-07-28 07:26:28 +00:00
Use systemd-growfs (#1133)
* Use systemd-growfs instead of resize2fs (#1106) Since systemd 236 systemd has a built-in file system growing mechanism. The mechanism relies on the kernels online file system resize capabilities instead of the external resize2fs utility. Online resizing is supposedly much faster since the kernel takes care of things. This also makes sure that external file systems get resized which previously have not been taken care of. * Drop HA OS specific file system resizing Since we have systemd-growfs in place now we can drop our file system resizing code. * Make sure /dev/disk/by-label/hassos-data is present after resizing Note: systemd will retry mnt-data.mount later, so at least in theory this shouldn't really matter. However, the journal has a lot of churn due to that reordering.
This commit is contained in:
parent
0e7310e8db
commit
103ddb150b
@ -35,7 +35,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_IBT=y
|
||||
|
@ -37,7 +37,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
|
||||
|
@ -37,7 +37,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
|
||||
|
@ -37,7 +37,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
|
||||
|
@ -37,7 +37,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_MFC_V8=y
|
||||
|
@ -36,7 +36,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y
|
||||
|
@ -38,7 +38,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y
|
||||
|
@ -38,7 +38,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y
|
||||
|
@ -38,7 +38,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y
|
||||
|
@ -38,7 +38,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y
|
||||
|
@ -38,7 +38,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y
|
||||
|
@ -38,7 +38,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y
|
||||
|
@ -38,7 +38,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI=y
|
||||
|
@ -39,7 +39,6 @@ BR2_PACKAGE_PROCPS_NG=y
|
||||
BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE=y
|
||||
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
|
||||
|
@ -6,7 +6,7 @@ After=hassos-expand.service
|
||||
Before=umount.target local-fs.target
|
||||
Conflicts=umount.target
|
||||
After=systemd-fsck@dev-disk-by\x2dlabel-hassos\x2ddata.service
|
||||
Wants=systemd-fsck@dev-disk-by\x2dlabel-hassos\x2ddata.service
|
||||
Wants=systemd-fsck@dev-disk-by\x2dlabel-hassos\x2ddata.service systemd-growfs@mnt-data.service
|
||||
|
||||
[Mount]
|
||||
What=/dev/disk/by-label/hassos-data
|
||||
|
@ -0,0 +1,18 @@
|
||||
#
|
||||
# Extracted from fstab-generator
|
||||
#
|
||||
|
||||
[Unit]
|
||||
Description=Grow File System on %f
|
||||
Documentation=man:systemd-growfs@.service(8)
|
||||
DefaultDependencies=no
|
||||
BindsTo=%i.mount
|
||||
Conflicts=shutdown.target
|
||||
After=%i.mount
|
||||
Before=shutdown.target local-fs.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/usr/lib/systemd/systemd-growfs %f
|
||||
TimeoutSec=0
|
@ -52,11 +52,17 @@ else
|
||||
sfdisk -V "${DEVICE_ROOT}"
|
||||
fi
|
||||
|
||||
# Reload partition table
|
||||
partx -u "${DEVICE_ROOT}"
|
||||
udevadm settle
|
||||
|
||||
# Resize filesystem
|
||||
echo "[INFO] Resize hassos-data filesystem"
|
||||
e2fsck -y "${DEVICE_CHILD}"
|
||||
resize2fs -f "${DEVICE_CHILD}"
|
||||
# Make sure /dev/disk/by-label/hassos-data is actually present before exiting.
|
||||
# This avoids a race condition with mnt-data.mount which might fail to bind
|
||||
# otherwise:
|
||||
# Bound to unit dev-disk-by\x2dlabel-hassos\x2ddata.device, but unit isn't active.
|
||||
if ! systemctl start "dev-disk-by\\x2dlabel-hassos\\x2ddata.device"; then
|
||||
echo "[ERROR] Data partition not found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[INFO] Finish hassos-data resizing"
|
||||
echo "[INFO] Finished hassos-data partition resizing"
|
||||
|
Loading…
x
Reference in New Issue
Block a user