summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortorben2015-12-11 18:46:14 +0100
committertorben2015-12-11 18:46:14 +0100
commitbfb4e445a7c9bc25ad43379a5589a191b0fdd47f (patch)
tree8765e19243fbeadd2a0f1fb85a4beb4a7dbc37c6
parentMake target file location configurable for initramfs file. (diff)
downloadsystemd-init-bfb4e445a7c9bc25ad43379a5589a191b0fdd47f.tar.gz
systemd-init-bfb4e445a7c9bc25ad43379a5589a191b0fdd47f.tar.xz
systemd-init-bfb4e445a7c9bc25ad43379a5589a191b0fdd47f.zip
Fix.
-rwxr-xr-xbuilder/build-initramfs.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/builder/build-initramfs.sh b/builder/build-initramfs.sh
index f1993fbf..a513b752 100755
--- a/builder/build-initramfs.sh
+++ b/builder/build-initramfs.sh
@@ -314,6 +314,24 @@ if [[ "$build_initramfs_target" != '' ]]; then
fakechroot chroot "$build_initramfs__target" mktemp --directory)"
mount --bind "$(pwd)" \
"${build_initramfs__target}${build_initramfs__temporary_working_directory}"
+
+ # TODO implement a more nice chroot method
+ mkdir --parents "${build_initramfs__temporary_working_directory}/proc"
+ mount /proc \
+ "${build_initramfs__temporary_working_directory}/proc" --types \
+ proc --options nosuid,noexec,nodev
+ mkdir --parents "${build_initramfs__temporary_working_directory}/dev"
+ mount udev "${build_initramfs__temporary_working_directory}/dev" \
+ --types devtmpfs --options mode=0755,nosuid
+ mkdir --parents \
+ "${build_initramfs__temporary_working_directory}/dev/pts"
+ mount devpts "${build_initramfs__temporary_working_directory}/dev/pts" \
+ --types devpts --options mode=0620,gid=5,nosuid,noexec
+ mkdir --parents \
+ "${build_initramfs__temporary_working_directory}/dev/shm"
+ mount shm "${build_initramfs__temporary_working_directory}/dev/shm" \
+ --types tmpfs --options mode=1777,nosuid,nodev
+
build_initramfs__parameter_skip=false
build_initramfs__parameter_to_forward=()
for build_initramfs__parameter; do
@@ -327,11 +345,30 @@ if [[ "$build_initramfs_target" != '' ]]; then
build_initramfs__parameter_to_forward+=("$build_initramfs__parameter")
fi
done
+ # NOTE: We temporary patch dracut to avoid removing the environment
+ # variables "LD_LIBRARY_PATH" and "LD_PRELOAD" to get "fakechroot"
+ # working with dracut. So we should remove this variables before
+ # running the patched dracut version to follow the initial intention.
+ unset LD_LIBRARY_PATH
+ unset LD_PRELOAD
+ # TODO
+ # patch dracut.sh temporary:
+ # unset LD_LIBRARY_PATH
+ # unset LD_PRELOAD
+ # have to be removed! Since they broke the fakechroot environment.
# TODO check FAKECHROOT_CMD_SUBST
FAKECHROOT_CMD_SUBST=/usr/bin/ldconfig=/usr/bin/ldconfig fakeroot \
fakechroot chroot "${build_initramfs__target}" \
"${build_initramfs__temporary_working_directory}/${BASH_SOURCE[0]}" \
${build_initramfs__parameter_to_forward[*]}
+
+ umount /proc
+ umount /dev
+ umount /dev/pts
+ umount /dev/shm
+
+ umount "${build_initramfs__target}${build_initramfs__temporary_working_directory}"
+
mv "${build_initramfs__target}/$build_initramfs_file_path" \
"$build_initramfs_file_path"
fi