dracut/add-option-to-include-file-metadata-in-initramfs.patch

80 lines
3.1 KiB
Diff

From 9d267e664c6f95a7b940c5706643b055623a39d7 Mon Sep 17 00:00:00 2001
From: Anakin Zhang <benjamin93@163.com>
Date: Thu, 2 Jul 2020 14:46:51 +0800
Subject: [PATCH] add option to include file metadata in initramfs
Signed-off-by: Anakin Zhang <benjamin93@163.com>
---
dracut.sh | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index e683a9b..6ec0839 100644
--- a/dracut.sh
+++ b/dracut.sh
@@ -235,6 +235,9 @@ Creates initial ramdisk images for preloading modules
kernel combined
--uefi-stub [FILE] Use the UEFI stub [FILE] to create an UEFI executable
--kernel-image [FILE] location of the kernel image
+ -e, --file-metadata [TYPE]
+ Include file metadata in the initramfs. Specify "xattr"
+ to include file extended attributes.
If [LIST] has multiple arguments, then you have to put these in quotes.
@@ -312,7 +315,7 @@ rearrange_params()
set -- "${newat[@]}" # Set new $@
TEMP=$(unset POSIXLY_CORRECT; getopt \
- -o "a:m:o:d:I:k:c:L:fvqlHhMN" \
+ -o "a:m:o:d:I:k:c:L:fvqlHhMNe:" \
--long kver: \
--long add: \
--long force-add: \
@@ -399,6 +402,7 @@ rearrange_params()
--long no-hostonly-i18n \
--long hostonly-i18n \
--long no-machineid \
+ --long file-metadata: \
-- "$@")
if (( $? != 0 )); then
@@ -596,6 +600,8 @@ while :; do
kernel_image_l="$2"; PARMS_TO_STORE+=" '$2'"; shift;;
--no-machineid)
machine_id_l="no";;
+ -e|--file-metadata)
+ file_metadata_l="$2"; PARMS_TO_STORE+=" '$2'"; shift;;
--) shift; break;;
*) # should not even reach this point
@@ -765,6 +771,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
[[ $uefi_stub_l ]] && uefi_stub="$uefi_stub_l"
[[ $kernel_image_l ]] && kernel_image="$kernel_image_l"
[[ $machine_id_l ]] && machine_id="$machine_id_l"
+[[ $file_metadata_l ]] && file_metadata_opt="-e $file_metadata_l"
if ! [[ $outfile ]]; then
if [[ $machine_id != "no" ]]; then
@@ -1891,7 +1898,7 @@ if [[ $create_early_cpio = yes ]]; then
if ! (
umask 077; cd "$early_cpio_dir/d"
find . -print0 | sort -z \
- | cpio ${CPIO_REPRODUCIBLE:+--reproducible} --null $cpio_owner_root -H newc -o --quiet > "${DRACUT_TMPDIR}/initramfs.img"
+ | cpio ${CPIO_REPRODUCIBLE:+--reproducible} --null $cpio_owner_root -H newc $file_metadata_opt -o --quiet > "${DRACUT_TMPDIR}/initramfs.img"
); then
dfatal "dracut: creation of $outfile failed"
exit 1
@@ -1901,7 +1908,7 @@ fi
if ! (
umask 077; cd "$initdir"
find . -print0 | sort -z \
- | cpio ${CPIO_REPRODUCIBLE:+--reproducible} --null $cpio_owner_root -H newc -o --quiet \
+ | cpio ${CPIO_REPRODUCIBLE:+--reproducible} --null $cpio_owner_root -H newc $file_metadata_opt -o --quiet \
| $compress >> "${DRACUT_TMPDIR}/initramfs.img"
); then
dfatal "dracut: creation of $outfile failed"
--
2.23.0