Created
September 27, 2017 17:53
-
-
Save jcttrll/f5f5e148dcc1c91b3865716d29e25b55 to your computer and use it in GitHub Desktop.
initrd-mod scripts for opennSUSE (and possibly RedHat)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -e | |
set -o pipefail | |
if [ $# -ne 0 ]; then | |
echo "Usage: ${0##*/}" >&2 | |
exit 1 | |
fi | |
EARLY_CPIO_DIR=.initrd-mod-early-cpio | |
ARCHIVE_DIR=.initrd-mod-archive | |
if [ ! -e "$EARLY_CPIO_DIR" -a ! -e "$ARCHIVE_DIR" ]; then | |
echo "No initrd mod in progress; nothing to do" >&2 | |
exit 0 | |
fi | |
rm -rf "$EARLY_CPIO_DIR" "$ARCHIVE_DIR" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -e | |
set -o pipefail | |
if [ $# -ne 1 ]; then | |
echo "Usage: ${0##*/} <initramfs-file>" >&2 | |
exit 1 | |
fi | |
EARLY_CPIO_DIR=.initrd-mod-early-cpio | |
ARCHIVE_DIR=.initrd-mod-archive | |
if [ ! -e "$EARLY_CPIO_DIR" ]; then | |
echo "ERROR: $EARLY_CPIO_DIR directory does not exist; was initrd-mod-start run?" >&2 | |
exit 1 | |
fi | |
if [ ! -e "$ARCHIVE_DIR" ]; then | |
echo "ERROR: $ARCHIVE_DIR directory does not exist; was initrd-mod-start run?" >&2 | |
exit 1 | |
fi | |
FILE="$(readlink -f "$1")" | |
if [ -e "$FILE" -a ! -f "$FILE" ]; then | |
echo "ERROR: $FILE already exists, and is not a regular file" >&2 | |
exit 1 | |
fi | |
pushd "$EARLY_CPIO_DIR" >/dev/null | |
find . | cpio -o -H newc >"$FILE" 2>/dev/null | |
popd >/dev/null | |
pushd "$ARCHIVE_DIR" >/dev/null | |
find . | cpio -o -H newc 2>/dev/null | xz -0 --format lzma --stdout >>"$FILE" | |
popd >/dev/null | |
rm -rf "$EARLY_CPIO_DIR" "$ARCHIVE_DIR" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -e | |
set -o pipefail | |
if [ $# -ne 1 ]; then | |
echo "Usage: ${0##*/} <initramfs-file>" >&2 | |
exit 1 | |
fi | |
EARLY_CPIO_DIR=.initrd-mod-early-cpio | |
ARCHIVE_DIR=.initrd-mod-archive | |
if [ -e "$EARLY_CPIO_DIR" ]; then | |
echo "ERROR: $EARLY_CPIO_DIR directory already exists; run either initrd-mod-abort or initrd-mod-finish" >&2 | |
exit 1 | |
fi | |
if [ -e "$ARCHIVE_DIR" ]; then | |
echo "ERROR: $ARCHIVE_DIR directory already exists; run either initrd-mod-abort or initrd-mod-finish" >&2 | |
exit 1 | |
fi | |
FILE="$(readlink -f "$1")" | |
if [ ! -f "$FILE" ]; then | |
echo "ERROR: $FILE does not exist, or is not a regular file" >&2 | |
exit 1 | |
fi | |
mkdir "$EARLY_CPIO_DIR" "$ARCHIVE_DIR" | |
pushd "$EARLY_CPIO_DIR" >/dev/null | |
cpio -imd <"$FILE" 2>/dev/null | |
popd >/dev/null | |
pushd "$ARCHIVE_DIR" >/dev/null | |
/usr/lib/dracut/skipcpio "$FILE" | xzcat | cpio -imd 2>/dev/null | |
popd >/dev/null | |
echo "Files available in $ARCHIVE_DIR" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment