| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/usr/bin/env bash
- # NAME: Configure systemd-boot manager settings
- # REQUIRES: sudo
- set -euo pipefail
- # Source common functions
- source "$(dirname "$0")/../common.sh" || {
- echo "[ERROR] Could not source common.sh" >&2
- exit 1
- }
- readonly SDBOOT_CONFIG="/etc/sdboot-manage.conf"
- check_requirements() {
- if ! command_exists sdboot-manage; then
- log_error "sdboot-manage not found. Install systemd-boot-manager first"
- exit 1
- fi
- }
- configure_systemd_boot() {
- log_info "Configuring systemd-boot manager"
- if [[ -f "$SDBOOT_CONFIG" ]]; then
- backup_file "$SDBOOT_CONFIG"
- fi
- log_info "Creating systemd-boot configuration"
- tee "$SDBOOT_CONFIG" >/dev/null <<'EOF'
- # Config file for sdboot-manage
- # Kernel options to be appended to the "options" line
- LINUX_OPTIONS="zswap.enabled=0 nowatchdog ipv6.disable=1 audit=0 loglevel=3 rd.systemd.show_status=auto rd.udev.log_level=3"
- # When DISABLE_FALLBACK is set to "yes", it will stop creating fallback entries for each kernel.
- DISABLE_FALLBACK="no"
- # Setting REMOVE_EXISTING to "yes" will remove all your existing systemd-boot entries before building new entries
- REMOVE_EXISTING="yes"
- # Unless OVERWRITE_EXISTING is set to "yes" existing entries for currently installed kernels will not be touched
- # this setting has no meaning if REMOVE_EXISTING is set to "yes"
- OVERWRITE_EXISTING="yes"
- # When REMOVE_OBSOLETE is set to "yes" entries for kernels no longer available on the system will be removed
- REMOVE_OBSOLETE="yes"
- EOF
- log_info "systemd-boot configuration updated"
- }
- main() {
- init_script
- check_requirements
- configure_systemd_boot
- finish_script 0
- }
- main "$@"
|