-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Support is added for greenboot to work with read-only /boot. It uses PrivateMounts=yes to isolate the system and remounts boot as rw followed by setting the grub parameters as per healthcheck. The following services are affected: greenboot-grub2-set-success.service greenboot-grub2-set-counter.service greenboot-rpm-ostree-check-fallback.service The grub2-editenv command is decoupled from greenboot-grub2-set-success.service and is part of a separate script. Signed-off-by: saypaul <[email protected]>
- Loading branch information
Showing
8 changed files
with
87 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#!/bin/bash | ||
set -eo pipefail | ||
|
||
# Boolean variable to track if /boot was initially mounted as read-only | ||
# Ensure compatibility with rpm-ostree where /boot is rw but in bootc /boot is ro | ||
boot_was_ro=false | ||
|
||
# Remount /boot as read-only if it was mounted as read-only ealier | ||
function remount_boot_ro { | ||
if $boot_was_ro; then | ||
mount -o remount,ro /boot || exit 13 | ||
fi | ||
return | ||
} | ||
|
||
# Remount /boot as read-write if it was mounted as read-only | ||
function remount_boot_rw { | ||
if grep -q " /boot .* ro," /proc/mounts; then | ||
mount -o remount,rw /boot || exit 13 | ||
boot_was_ro=true | ||
fi | ||
return | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
#!/bin/bash | ||
|
||
set -eo pipefail | ||
|
||
source /usr/libexec/greenboot/greenboot-boot-remount | ||
remount_boot_rw | ||
|
||
# Run the grub2-editenv commands | ||
if ! /usr/bin/grub2-editenv /boot/grub2/grubenv set boot_success=1; then | ||
# If the first command fails, remount /boot as read-only and exit with failure | ||
remount_boot_ro | ||
exit 1 | ||
fi | ||
|
||
if ! /usr/bin/grub2-editenv /boot/grubenv unset boot_counter; then | ||
# If the second command fails, remount /boot as read-only and exit with failure | ||
remount_boot_ro | ||
exit 1 | ||
fi | ||
|
||
# Remount /boot as read-only if it was mounted as read-write | ||
remount_boot_ro | ||
|
||
# If everything succeeded, exit with success | ||
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters