From bfb4e445a7c9bc25ad43379a5589a191b0fdd47f Mon Sep 17 00:00:00 2001 From: torben Date: Fri, 11 Dec 2015 18:46:14 +0100 Subject: Fix. --- builder/build-initramfs.sh | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'builder') 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 -- cgit v1.2.3-55-g7522