]> git.ipfire.org Git - thirdparty/dracut-ng.git/commitdiff
feat(base): create /proc if it does not exists
authorJo Zzsi <jozzsicsataban@gmail.com>
Wed, 16 Oct 2024 11:45:39 +0000 (07:45 -0400)
committerLaszlo <laszlo.gombos@gmail.com>
Wed, 16 Oct 2024 23:03:19 +0000 (19:03 -0400)
Change tests to test for this scenario.

modules.d/99base/dracut-lib.sh
modules.d/99base/init.sh
test/TEST-12-UEFI/test.sh
test/TEST-30-DMSQUASH/test.sh

index 10dd9be9261dab70c25c6f64076f51fbde256bac..b0e5ee51814333806cb95db72901c8c608988e8d 100755 (executable)
@@ -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
 }
 
index 43e2d5f3aa04fdf59cc574139452cc44613444e7..5bfd4f29a20a98fc0bed2ea3b67225f8c71007aa 100755 (executable)
@@ -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
 
index 1d929fc8ec0e582f3dbcdb257bb15d9c5b9b1b3f..9c7168689f0afeb2241767380ea54ea80404e127 100755 (executable)
@@ -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
index c77d3fb8eb3afc896e4a5fa72aa27bc63b17c84c..9b765aa8cf9878b626ec9941e24a5503b7cfe6c1 100755 (executable)
@@ -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