mirror of
				https://github.com/OpenVoiceOS/OpenVoiceOS
				synced 2025-06-05 22:19:21 +02:00 
			
		
		
		
	[DONE] Implementation of own growdisk architecture.
This is temporarily till we switch to A/B mirrored rootfs and data-overlay for all writable mounts.
This commit is contained in:
		| @@ -7,6 +7,7 @@ menu "Additional drivers, libraries and/or applications" | |||||||
| 	source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/docbook-xml/Config.in" | 	source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/docbook-xml/Config.in" | ||||||
| 	source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/docbook-xsl/Config.in" | 	source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/docbook-xsl/Config.in" | ||||||
| 	source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/fann/Config.in" | 	source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/fann/Config.in" | ||||||
|  | 	source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/growdisk-service/Config.in" | ||||||
| 	source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/hostname-service/Config.in" | 	source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/hostname-service/Config.in" | ||||||
| menu "KDE Framework and Plasma" | menu "KDE Framework and Plasma" | ||||||
| 	source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/kf5-attica/Config.in" | 	source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/kf5-attica/Config.in" | ||||||
|   | |||||||
| @@ -288,6 +288,10 @@ BR2_PACKAGE_WILC1000_FIRMWARE=y | |||||||
| BR2_PACKAGE_WILINK_BT_FIRMWARE=y | BR2_PACKAGE_WILINK_BT_FIRMWARE=y | ||||||
| BR2_PACKAGE_ZD1211_FIRMWARE=y | BR2_PACKAGE_ZD1211_FIRMWARE=y | ||||||
| BR2_PACKAGE_DBUS_CPP=y | BR2_PACKAGE_DBUS_CPP=y | ||||||
|  | BR2_PACKAGE_GPTFDISK=y | ||||||
|  | BR2_PACKAGE_GPTFDISK_GDISK=y | ||||||
|  | BR2_PACKAGE_GPTFDISK_SGDISK=y | ||||||
|  | BR2_PACKAGE_GPTFDISK_CGDISK=y | ||||||
| BR2_PACKAGE_KBD=y | BR2_PACKAGE_KBD=y | ||||||
| BR2_PACKAGE_PARTED=y | BR2_PACKAGE_PARTED=y | ||||||
| BR2_PACKAGE_RASPI_GPIO=y | BR2_PACKAGE_RASPI_GPIO=y | ||||||
| @@ -409,7 +413,6 @@ BR2_PACKAGE_LINUX_PAM=y | |||||||
| BR2_PACKAGE_PROTOBUF=y | BR2_PACKAGE_PROTOBUF=y | ||||||
| BR2_PACKAGE_LIBESTR=y | BR2_PACKAGE_LIBESTR=y | ||||||
| BR2_PACKAGE_LIBUNISTRING=y | BR2_PACKAGE_LIBUNISTRING=y | ||||||
| BR2_PACKAGE_NCURSES_WCHAR=y |  | ||||||
| BR2_PACKAGE_NCURSES_TARGET_PROGS=y | BR2_PACKAGE_NCURSES_TARGET_PROGS=y | ||||||
| BR2_PACKAGE_PCRE_16=y | BR2_PACKAGE_PCRE_16=y | ||||||
| BR2_PACKAGE_PCRE_32=y | BR2_PACKAGE_PCRE_32=y | ||||||
| @@ -464,6 +467,7 @@ BR2_PACKAGE_SYSTEMD_RANDOMSEED=y | |||||||
| BR2_PACKAGE_SYSTEMD_REPART=y | BR2_PACKAGE_SYSTEMD_REPART=y | ||||||
| # BR2_PACKAGE_SYSTEMD_RESOLVED is not set | # BR2_PACKAGE_SYSTEMD_RESOLVED is not set | ||||||
| BR2_PACKAGE_TAR=y | BR2_PACKAGE_TAR=y | ||||||
|  | BR2_PACKAGE_UTIL_LINUX_BINARIES=y | ||||||
| BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y | BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y | ||||||
| BR2_PACKAGE_UTIL_LINUX_KILL=y | BR2_PACKAGE_UTIL_LINUX_KILL=y | ||||||
| BR2_PACKAGE_UTIL_LINUX_MORE=y | BR2_PACKAGE_UTIL_LINUX_MORE=y | ||||||
| @@ -494,6 +498,7 @@ BR2_PACKAGE_ALSA_PLUGINS=y | |||||||
| BR2_PACKAGE_BARESIP=y | BR2_PACKAGE_BARESIP=y | ||||||
| BR2_PACKAGE_BTSPEAKER=y | BR2_PACKAGE_BTSPEAKER=y | ||||||
| BR2_PACKAGE_FANN=y | BR2_PACKAGE_FANN=y | ||||||
|  | BR2_PACKAGE_GROWDISK_SERVICE=y | ||||||
| BR2_PACKAGE_HOSTNAME_SERVICE=y | BR2_PACKAGE_HOSTNAME_SERVICE=y | ||||||
| BR2_PACKAGE_KF5_BREEZE_ICONS=y | BR2_PACKAGE_KF5_BREEZE_ICONS=y | ||||||
| BR2_PACKAGE_KF5_KACTIVITIES=y | BR2_PACKAGE_KF5_KACTIVITIES=y | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								buildroot-external/package/growdisk-service/Config.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								buildroot-external/package/growdisk-service/Config.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | config BR2_PACKAGE_GROWDISK_SERVICE | ||||||
|  | 	bool "growdisk-service" | ||||||
|  | 	help | ||||||
|  | 	  A systemd service that only runs on file flag | ||||||
|  | 	  to auto expand the filesystem over the full size  | ||||||
|  | 	  of the used disk. | ||||||
							
								
								
									
										24
									
								
								buildroot-external/package/growdisk-service/growdisk
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										24
									
								
								buildroot-external/package/growdisk-service/growdisk
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | #!/bin/bash | ||||||
|  | # | ||||||
|  | # Get active block device | ||||||
|  | DEVICE_ROOTFS="$(findfs UUID=c0932a41-44cf-463b-8152-d43188553ed4)" | ||||||
|  | DEVICE="/dev/$(lsblk -no pkname "${DEVICE_ROOTFS}")" | ||||||
|  |  | ||||||
|  | # Fix GPT header backup file | ||||||
|  | sgdisk -e "${DEVICE}" && | ||||||
|  | partprobe "${DEVICE}" && | ||||||
|  |  | ||||||
|  | # Resize needed? | ||||||
|  | UNUSED=$(sfdisk -Fq "${DEVICE}" | cut -d " " -f 3 | tail -1) | ||||||
|  | if [ -z "${UNUSED}" ] || [ "${UNUSED}" -le "16384" ]; then | ||||||
|  |     echo "[INFO] No resize of rootfs partition needed" | ||||||
|  |     exit 0 | ||||||
|  | else | ||||||
|  |     echo "[INFO] Resizing the rootfs partition" | ||||||
|  |     parted "${DEVICE}" unit % resizepart 2 100% && | ||||||
|  |     partprobe "${DEVICE}" && | ||||||
|  |     sync && | ||||||
|  |     resize2fs "${DEVICE_ROOTFS}" && | ||||||
|  |     echo "[OK]" | ||||||
|  | fi | ||||||
|  |  | ||||||
| @@ -0,0 +1,20 @@ | |||||||
|  | ################################################################################ | ||||||
|  | # | ||||||
|  | # growdisk-service | ||||||
|  | # | ||||||
|  | ################################################################################ | ||||||
|  |  | ||||||
|  | GROWDISK_SERVICE_VERSION = 0.1.0 | ||||||
|  | GROWDISK_SERVICE_SITE = $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/growdisk-service | ||||||
|  | GROWDISK_SERVICE_SITE_METHOD = local | ||||||
|  | GROWDISK_SERVICE_LICENSE = Apache License 2.0 | ||||||
|  | GROWDISK_SERVICE_LICENSE_FILES = LICENSE | ||||||
|  |  | ||||||
|  | define GROWDISK_SERVICE_INSTALL_TARGET_CMDS | ||||||
|  | 	$(INSTALL) -m 0755 $(@D)/growdisk $(TARGET_DIR)/usr/sbin/ | ||||||
|  | 	$(INSTALL) -D -m 644 $(@D)/growdisk.service \ | ||||||
|  | 		$(TARGET_DIR)/usr/lib/systemd/system/growdisk.service | ||||||
|  | 	touch $(TARGET_DIR)/etc/growdisk | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | $(eval $(generic-package)) | ||||||
							
								
								
									
										14
									
								
								buildroot-external/package/growdisk-service/growdisk.service
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								buildroot-external/package/growdisk-service/growdisk.service
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | [Unit] | ||||||
|  | Description=Growdisk service to auto expand the rootfs partition | ||||||
|  | DefaultDependencies=no | ||||||
|  | Conflicts=shutdown.target | ||||||
|  | After=systemd-remount-fs.service | ||||||
|  | Before=sysinit.target shutdown.target | ||||||
|  |  | ||||||
|  | [Service] | ||||||
|  | Type=oneshot | ||||||
|  | RemainAfterExit=yes | ||||||
|  | ExecStart=/usr/sbin/growdisk | ||||||
|  |  | ||||||
|  | [Install] | ||||||
|  | WantedBy=sysinit.target | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| [Partition] |  | ||||||
| Type=root |  | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| enable systemd-repart.service |  | ||||||
| enable prepare_system.service | enable prepare_system.service | ||||||
|  | enable growdisk.service | ||||||
| enable hostname.service | enable hostname.service | ||||||
| enable sshd.service | enable sshd.service | ||||||
| enable brcm_bt.service | enable brcm_bt.service | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user