Add multiple initrd file support to kernel-install
Instead of having just a single INITRD field, add support for all additional parameters being INITRD fields in order. Signed-off-by: Mike Auty <mike.auty@gmail.com>
This commit is contained in:
committed by
Lennart Poettering
parent
72de945726
commit
0912c0b80e
@@ -6,7 +6,7 @@ COMMAND="$1"
|
||||
KERNEL_VERSION="$2"
|
||||
BOOT_DIR_ABS="$3"
|
||||
KERNEL_IMAGE="$4"
|
||||
INITRD_FILE="$5"
|
||||
INITRD_OPTIONS_START="5"
|
||||
|
||||
if ! [[ $KERNEL_INSTALL_MACHINE_ID ]]; then
|
||||
exit 0
|
||||
@@ -83,14 +83,17 @@ cp "$KERNEL_IMAGE" "$BOOT_DIR_ABS/linux" &&
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [[ -f "${INITRD_FILE}" ]]; then
|
||||
cp "${INITRD_FILE}" "$BOOT_DIR_ABS/initrd" &&
|
||||
chown root:root "$BOOT_DIR_ABS/initrd" &&
|
||||
chmod 0644 "$BOOT_DIR_ABS/initrd" || {
|
||||
echo "Could not copy '$INITRD_FILE' to '$BOOT_DIR_ABS/initrd'." >&2
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
for initrd in "${@:${INITRD_OPTIONS_START}}"; do
|
||||
if [[ -f "${initrd}" ]]; then
|
||||
initrd_basename="$(basename ${initrd})"
|
||||
cp "${initrd}" "$BOOT_DIR_ABS/${initrd_basename}" &&
|
||||
chown root:root "$BOOT_DIR_ABS/${initrd_basename}" &&
|
||||
chmod 0644 "$BOOT_DIR_ABS/${initrd_basename}" || {
|
||||
echo "Could not copy '${initrd}' to '$BOOT_DIR_ABS/${initrd_basename}'." >&2
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
done
|
||||
|
||||
mkdir -p "${LOADER_ENTRY%/*}" || {
|
||||
echo "Could not create loader entry directory '${LOADER_ENTRY%/*}'." >&2
|
||||
@@ -103,8 +106,10 @@ mkdir -p "${LOADER_ENTRY%/*}" || {
|
||||
echo "machine-id $MACHINE_ID"
|
||||
echo "options ${BOOT_OPTIONS[*]}"
|
||||
echo "linux $BOOT_DIR/linux"
|
||||
[[ -f $BOOT_DIR_ABS/initrd ]] && \
|
||||
echo "initrd $BOOT_DIR/initrd"
|
||||
for initrd in "${@:${INITRD_OPTIONS_START}}"; do
|
||||
[[ -f $BOOT_DIR_ABS/$(basename ${initrd}) ]] && \
|
||||
echo "initrd $BOOT_DIR/$(basename ${initrd})"
|
||||
done
|
||||
:
|
||||
} > "$LOADER_ENTRY" || {
|
||||
echo "Could not create loader entry '$LOADER_ENTRY'." >&2
|
||||
|
||||
@@ -24,7 +24,7 @@ SKIP_REMAINING=77
|
||||
usage()
|
||||
{
|
||||
echo "Usage:"
|
||||
echo " $0 add KERNEL-VERSION KERNEL-IMAGE [INITRD-FILE]"
|
||||
echo " $0 add KERNEL-VERSION KERNEL-IMAGE [INITRD-FILE ...]"
|
||||
echo " $0 remove KERNEL-VERSION"
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ fi
|
||||
|
||||
KERNEL_VERSION="$1"
|
||||
KERNEL_IMAGE="$2"
|
||||
INITRD_FILE="$3"
|
||||
INITRD_OPTIONS_START="3"
|
||||
|
||||
if [[ -f /etc/machine-id ]]; then
|
||||
read MACHINE_ID < /etc/machine-id
|
||||
@@ -124,7 +124,7 @@ case $COMMAND in
|
||||
|
||||
for f in "${PLUGINS[@]}"; do
|
||||
if [[ -x $f ]]; then
|
||||
"$f" add "$KERNEL_VERSION" "$BOOT_DIR_ABS" "$KERNEL_IMAGE" "$INITRD_FILE"
|
||||
"$f" add "$KERNEL_VERSION" "$BOOT_DIR_ABS" "$KERNEL_IMAGE" "${@:${INITRD_OPTIONS_START}}"
|
||||
x=$?
|
||||
if [[ $x == $SKIP_REMAINING ]]; then
|
||||
ret=0
|
||||
|
||||
Reference in New Issue
Block a user