]>
Commit | Line | Data |
---|---|---|
9dd9d81f HH |
1 | #!/bin/sh |
2 | # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- | |
3 | # ex: ts=8 sw=4 sts=4 et filetype=sh | |
4 | ||
ccb8ce04 HH |
5 | COMMAND="$1" |
6 | KERNEL_VERSION="$2" | |
7 | BOOT_DIR_ABS="$3" | |
8 | KERNEL_IMAGE="$4" | |
83bb0893 | 9 | |
ccb8ce04 HH |
10 | ret=0 |
11 | case "$COMMAND" in | |
12 | add) | |
bc140a0b HH |
13 | INITRD_IMAGE_PREGENERATED=${KERNEL_IMAGE%/*}/initrd |
14 | if [[ -f ${INITRD_IMAGE_PREGENERATED} ]]; then | |
15 | # we found an initrd at the same place as the kernel | |
16 | # use this and don't generate a new one | |
17 | cp "$INITRD_IMAGE_PREGENERATED" "$BOOT_DIR_ABS/initrd" \ | |
18 | && chown root:root "$BOOT_DIR_ABS/initrd" \ | |
19 | && chmod 0600 "$BOOT_DIR_ABS/initrd" \ | |
20 | && exit 0 | |
21 | fi | |
22 | ||
ccb8ce04 HH |
23 | if [[ -f /etc/kernel/cmdline ]]; then |
24 | readarray -t BOOT_OPTIONS < /etc/kernel/cmdline | |
25 | fi | |
83bb0893 | 26 | |
ccb8ce04 HH |
27 | if ! [[ "${BOOT_OPTIONS[@]}" ]]; then |
28 | read -ar BOOT_OPTIONS < /proc/cmdline | |
29 | fi | |
83bb0893 | 30 | |
ccb8ce04 | 31 | unset noimageifnotneeded |
83bb0893 | 32 | |
ccb8ce04 HH |
33 | for ((i=0; i < "${#BOOT_OPTIONS[@]}"; i++)); do |
34 | if [[ ${BOOT_OPTIONS[$i]} == root\=PARTUUID\=* ]]; then | |
35 | noimageifnotneeded="yes" | |
36 | break | |
37 | fi | |
38 | done | |
39 | dracut ${noimageifnotneeded:+--noimageifnotneeded} "$BOOT_DIR_ABS"/initrd "$KERNEL_VERSION" | |
9dd9d81f HH |
40 | ret=$? |
41 | ;; | |
42 | remove) | |
ccb8ce04 | 43 | rm -f -- "$BOOT_DIR_ABS"/initrd |
9dd9d81f HH |
44 | ret=$? |
45 | ;; | |
46 | esac | |
47 | exit $ret |