From 7d848c55a6a820d19bed0bd498d6081929c128ab Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Wed, 13 Mar 2013 12:46:39 +0100 Subject: [PATCH] dracut.sh: add --regenerate-all --- dracut.8.asc | 4 ++++ dracut.sh | 31 ++++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/dracut.8.asc b/dracut.8.asc index 02388e6..6a79d12 100644 --- a/dracut.8.asc +++ b/dracut.8.asc @@ -409,6 +409,10 @@ will not be able to boot. Equivalent to "--compress=xz --check=crc32 **--keep**:: Keep the initramfs temporary directory for debugging purposes. +**--regenerate-all**:: + Regenerate all initramfs images at the default location with the kernel versions found on the system. + Additional parameters are passed through. + FILES ----- _/var/log/dracut.log_:: diff --git a/dracut.sh b/dracut.sh index bb49299..2582f74 100755 --- a/dracut.sh +++ b/dracut.sh @@ -7,7 +7,7 @@ # of the various mkinitrd implementations out there # -# Copyright 2005-2010 Red Hat, Inc. All rights reserved. +# Copyright 2005-2013 Red Hat, Inc. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -329,6 +329,7 @@ TEMP=$(unset POSIXLY_CORRECT; getopt \ --long show-modules \ --long keep \ --long printsize \ + --long regenerate-all \ -- "$@") if (( $? != 0 )); then @@ -406,6 +407,7 @@ while :; do ;; --keep) keep="yes";; --printsize) printsize="yes";; + --regenerate-all) regenerate_all="yes";; --) shift; break;; @@ -437,6 +439,33 @@ while (($# > 0)); do shift done +if [[ $regenerate_all == "yes" ]]; then + ret=0 + if [[ $kernel ]]; then + echo "--regenerate-all cannot be called with a kernel version" >&2 + exit 1 + fi + + if [[ $outfile ]]; then + echo "--regenerate-all cannot be called with a image file" >&2 + exit 1 + fi + + ((len=${#dracut_args[@]})) + for ((i=0; i < len; i++)); do + [[ ${dracut_args[$i]} == "--regenerate-all" ]] && \ + unset dracut_args[$i] + done + + cd /lib/modules + for i in *; do + [[ -f $i/modules.builtin ]] || continue + dracut --kver=$i "${dracut_args[@]}" + ((ret+=$?)) + done + exit $ret +fi + if ! [[ $kernel ]]; then kernel=$(uname -r) fi