From: Jo Zzsi Date: Wed, 16 Oct 2024 11:45:39 +0000 (-0400) Subject: feat(base): create /proc if it does not exists X-Git-Tag: 106~407 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff370f5;p=thirdparty%2Fdracut-ng.git feat(base): create /proc if it does not exists Change tests to test for this scenario. --- diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh index 10dd9be92..b0e5ee518 100755 --- a/modules.d/99base/dracut-lib.sh +++ b/modules.d/99base/dracut-lib.sh @@ -747,10 +747,6 @@ usable_root() { [ -e "$_i" ] && return 0 done - for _i in proc sys dev; do - [ -e "$1"/$_i ] || return 1 - done - return 0 } diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh index 43e2d5f3a..5bfd4f29a 100755 --- a/modules.d/99base/init.sh +++ b/modules.d/99base/init.sh @@ -17,6 +17,7 @@ export PATH # mount some important things if [ ! -d /proc/self ]; then + mkdir -m 0755 -p /proc if ! mount -t proc -o nosuid,noexec,nodev proc /proc > /dev/null; then echo "Cannot mount proc on /proc! Compile the kernel with CONFIG_PROC_FS!" exit 1 @@ -24,6 +25,7 @@ if [ ! -d /proc/self ]; then fi if [ ! -d /sys/kernel ]; then + mkdir -m 0755 -p /sys if ! mount -t sysfs -o nosuid,noexec,nodev sysfs /sys > /dev/null; then echo "Cannot mount sysfs on /sys! Compile the kernel with CONFIG_SYSFS!" exit 1 @@ -36,6 +38,7 @@ RD_DEBUG="" setdebug if ! ismounted /dev; then + mkdir -m 0755 -p /dev mount -t devtmpfs -o mode=0755,noexec,nosuid,strictatime devtmpfs /dev > /dev/null fi diff --git a/test/TEST-12-UEFI/test.sh b/test/TEST-12-UEFI/test.sh index 1d929fc8e..9c7168689 100755 --- a/test/TEST-12-UEFI/test.sh +++ b/test/TEST-12-UEFI/test.sh @@ -38,7 +38,6 @@ test_setup() { --add-confdir test-root \ "$TESTDIR"/tmp-initramfs.root "$KVERSION" || return 1 - mkdir -p "$TESTDIR"/dracut.*/initramfs/proc mksquashfs "$TESTDIR"/dracut.*/initramfs/ "$TESTDIR"/squashfs.img -quiet -no-progress mkdir -p "$TESTDIR"/ESP/EFI/BOOT "$TESTDIR"/dracut.conf.d diff --git a/test/TEST-30-DMSQUASH/test.sh b/test/TEST-30-DMSQUASH/test.sh index c77d3fb8e..9b765aa8c 100755 --- a/test/TEST-30-DMSQUASH/test.sh +++ b/test/TEST-30-DMSQUASH/test.sh @@ -103,6 +103,9 @@ test_setup() { -f "$TESTDIR"/initramfs.root "$KVERSION" || return 1 mkdir -p "$TESTDIR"/overlay/source && mv "$TESTDIR"/dracut.*/initramfs/* "$TESTDIR"/overlay/source && rm -rf "$TESTDIR"/dracut.* + # test to make sure /proc /sys and /dev is not needed inside the generated initrd + rm -rf "$TESTDIR"/dracut.*/initramfs/proc "$TESTDIR"/dracut.*/initramfs/sys "$TESTDIR"/dracut.*/initramfs/dev + # second, install the files needed to make the root filesystem # create an initramfs that will create the target root filesystem. # We do it this way so that we do not risk trashing the host mdraid