summaryrefslogtreecommitdiff
path: root/src/kernel-install
diff options
context:
space:
mode:
authorikelos <mike.auty@gmail.com>2018-12-29 19:01:10 +0000
committerYu Watanabe <watanabe.yu+github@gmail.com>2018-12-30 04:01:10 +0900
commit04ca4d191b13e79e5701ed22dc972f08628d7bcc (patch)
treed17e3fe22f5eb9ef44d67dd21ad2ce087c08594c /src/kernel-install
parent911649fdd43f3a9158b847947724a772a5a45c34 (diff)
downloadsystemd-04ca4d191b13e79e5701ed22dc972f08628d7bcc.tar.gz
Improve kernel-install support for initrd files. (#11281)
The current support in kernel-install for initrd images doesn't copy over the initrd file or allow a means for it to be specified (it requires a specific filename in a particular directory). This patchset adds support for (optionally) providing the name of initial ramdisk file to copied over and used by kernel-install.
Diffstat (limited to 'src/kernel-install')
-rw-r--r--src/kernel-install/90-loaderentry.install10
-rw-r--r--src/kernel-install/kernel-install5
2 files changed, 13 insertions, 2 deletions
diff --git a/src/kernel-install/90-loaderentry.install b/src/kernel-install/90-loaderentry.install
index 39ec8a69c6..3437bb3cbc 100644
--- a/src/kernel-install/90-loaderentry.install
+++ b/src/kernel-install/90-loaderentry.install
@@ -6,6 +6,7 @@ COMMAND="$1"
KERNEL_VERSION="$2"
BOOT_DIR_ABS="$3"
KERNEL_IMAGE="$4"
+INITRD_FILE="$5"
if ! [[ $KERNEL_INSTALL_MACHINE_ID ]]; then
exit 0
@@ -82,6 +83,15 @@ 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
+
mkdir -p "${LOADER_ENTRY%/*}" || {
echo "Could not create loader entry directory '${LOADER_ENTRY%/*}'." >&2
exit 1
diff --git a/src/kernel-install/kernel-install b/src/kernel-install/kernel-install
index 732d584bbe..7240df904c 100644
--- a/src/kernel-install/kernel-install
+++ b/src/kernel-install/kernel-install
@@ -24,7 +24,7 @@ SKIP_REMAINING=77
usage()
{
echo "Usage:"
- echo " $0 add KERNEL-VERSION KERNEL-IMAGE"
+ echo " $0 add KERNEL-VERSION KERNEL-IMAGE [INITRD-FILE]"
echo " $0 remove KERNEL-VERSION"
}
@@ -72,6 +72,7 @@ fi
KERNEL_VERSION="$1"
KERNEL_IMAGE="$2"
+INITRD_FILE="$3"
if [[ -f /etc/machine-id ]]; then
read MACHINE_ID < /etc/machine-id
@@ -123,7 +124,7 @@ case $COMMAND in
for f in "${PLUGINS[@]}"; do
if [[ -x $f ]]; then
- "$f" add "$KERNEL_VERSION" "$BOOT_DIR_ABS" "$KERNEL_IMAGE"
+ "$f" add "$KERNEL_VERSION" "$BOOT_DIR_ABS" "$KERNEL_IMAGE" "$INITRD_FILE"
x=$?
if [[ $x == $SKIP_REMAINING ]]; then
ret=0