grub boot success services fails, because there is no grub dir
Opened this issue · 7 comments
I think it's enabled in base by default, you may wanne remove it:
/usr/lib/systemd/user/grub-boot-success.service
root # /usr/sbin/grub2-set-bootflag boot_success
Error canonicalizing /boot/grub2/grubenv filename: No such file or directory
so funny...
systemctl disable grub-boot-success
Failed to disable unit: Unit file grub-boot-success.service does not exist.
ls -la /usr/lib/systemd/user/grub-boot-success.service
-rw-r--r--. 1 root root 119 31. Aug 14:29 /usr/lib/systemd/user/grub-boot-success.service
Please note the TriggeredBy: ● grub-boot-success.timer
when you do [pine@pinephone ~]$ systemctl --user status grub-boot-success.service
Also please note this is user
not system wide.
You can view the user timers with
[pine@pinephone ~]$ systemctl --user list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Fri 2021-01-08 11:32:36 CET 2min 46s left n/a n/a systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
n/a n/a Fri 2021-01-08 11:29:49 CET 10ms ago grub-boot-success.timer grub-boot-success.service
2 timers listed.
Pass --all to see loaded but inactive timers, too.
I had no success when trying to disable it with [pine@pinephone ~]$ systemctl --user disable grub-boot-success.timer
, it still triggered at next boot and did not bother digging further as there is a plan B for that case
So, like any .service or .timer that's a bit reluctant to be disabled, I masked it
[pine@pinephone ~]$ systemctl --user mask grub-boot-success.timer
Created symlink /home/pine/.config/systemd/user/grub-boot-success.timer → /dev/null.
[pine@pinephone ~]$ sudo reboot
[sudo] password for pine:
Checking after the phone rebooted, once shorly after boot and then again about 5 minutes later
[pine@guest47 ~]$ uptime
11:41:49 up 1 min, 2 users, load average: 1.74, 1.01, 0.39
[pine@guest47 ~]$ systemctl --user list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Fri 2021-01-08 11:45:17 CET 3min 18s left n/a n/a systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
1 timers listed.
Pass --all to see loaded but inactive timers, too.
[pine@guest47 ~]$ systemctl --user --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
0 loaded units listed.
[pine@guest47 ~]$ sleep 300 ; systemctl --user --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
0 loaded units listed.
Who sets a user depending timer to acknowledge a successful boot in the first place? If the user session fails, the boot itself could still be successful.
In the light of a phone, which will have ( but is not restricted to ) only one user account, I have some acceptance for it, but it's still wrong IMHO, as a user session fail will result in booting an older kernel ( in the normal grub boot process on fedora ) which will not fix the issue with userspace issues in allmost all cases.
Update: grub2-efi aarch64 package from fedora 34 does not get installed with a symlink error:
https://bugzilla.redhat.com/show_bug.cgi?id=1919907
Solution: touch /boot/grub2/grubenv
and than updating the system with dnf as usual :D
Grub itself is not needed, but removing it takes some other packages with it, which may be required.
I don't think so. I remove everything related to Grub2 and EFI on all my nightly images. I see no reason, why it can't be removed from this image too.