[gnome-build-meta/valentindavid/resize-root-non-efi] vm: Make resize root work on non fully EFI compliant systems
- From: Valentin David <valentindavid src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-build-meta/valentindavid/resize-root-non-efi] vm: Make resize root work on non fully EFI compliant systems
- Date: Sat, 9 May 2020 12:00:46 +0000 (UTC)
commit aeca6f1acdad3d484366892c8a13cebaf5e2cea9
Author: Valentin David <valentin david codethink co uk>
Date: Thu May 7 12:50:31 2020 +0200
vm: Make resize root work on non fully EFI compliant systems
Systems using u-boot EFI do not have access to EFI variables after boot.
That means udev does cannot set `/dev/gpt-auto-root`.
elements/boards/pinebook-pro/deps.bst | 2 +-
elements/boards/pinebook-pro/tweak-resize-root.bst | 31 ----------------------
elements/vm/resize-root.bst | 4 +++
files/vm/resize-root/resize-root.service | 2 +-
files/vm/resize-root/resize-root.sh | 10 +++++++
5 files changed, 16 insertions(+), 33 deletions(-)
---
diff --git a/elements/boards/pinebook-pro/deps.bst b/elements/boards/pinebook-pro/deps.bst
index d9d9d86e..1f0d7759 100644
--- a/elements/boards/pinebook-pro/deps.bst
+++ b/elements/boards/pinebook-pro/deps.bst
@@ -27,7 +27,7 @@ runtime-depends:
- core/systemd-presets.bst
- boards/pinebook-pro/initramfs.bst
-- boards/pinebook-pro/tweak-resize-root.bst
+- vm/resize-root.bst
- vm/eos-repartition.bst
- boards/pinebook-pro/keyboard-updater.bst
diff --git a/elements/vm/resize-root.bst b/elements/vm/resize-root.bst
index d777ac98..b6c59511 100644
--- a/elements/vm/resize-root.bst
+++ b/elements/vm/resize-root.bst
@@ -5,6 +5,8 @@ sources:
path: files/vm/resize-root/resize-root.service
- kind: local
path: files/vm/resize-root/resize-root.preset
+- kind: local
+ path: files/vm/resize-root/resize-root.sh
depends:
- freedesktop-sdk.bst:components/systemd.bst
@@ -14,6 +16,8 @@ build-depends:
config:
install-commands:
+ - install -Dm755 resize-root.sh "%{install-root}%{bindir}/resize-root"
+
- |
unitdir="$(pkg-config --variable=systemdsystemunitdir systemd)"
install -Dm644 -t "%{install-root}${unitdir}" resize-root.service
diff --git a/files/vm/resize-root/resize-root.service b/files/vm/resize-root/resize-root.service
index c456f3ac..b4bfdc86 100644
--- a/files/vm/resize-root/resize-root.service
+++ b/files/vm/resize-root/resize-root.service
@@ -5,7 +5,7 @@ After=sysinit.target local-fs.target
[Service]
Type=oneshot
-ExecStart=/usr/bin/resize2fs /dev/gpt-auto-root
+ExecStart=/usr/bin/resize-root
[Install]
WantedBy=multi-user.target
diff --git a/files/vm/resize-root/resize-root.sh b/files/vm/resize-root/resize-root.sh
new file mode 100644
index 00000000..ad902d13
--- /dev/null
+++ b/files/vm/resize-root/resize-root.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+root="$(awk '{ if ($2 == "/") print $1 }' /proc/mounts)"
+
+if [ -z "${root}" ]; then
+ echo "Root device not found" 1>&2
+ exit 1
+fi
+
+exec /usr/bin/resize2fs "${root}"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]