Hey, Le jeu. 7 oct. 2021 à 01:38, Christoph Anton Mitterer <cales...@scientia.net> a écrit : > > Hey Romain. > > Thanks for your ideas: > > On Wed, 2021-10-06 at 18:49 +0200, Romain Perier wrote: > > Quickly, few ideas (perhaps not the perfect ones): > > 1. Check for what is currently mounted as "/" ? (which technically > > should differ between initramfs or real rootfs) > > That sounds like a pretty nice idea. > I guess for the iniramfs it would be always: > none / rootfs > ?
Don't remember in details, an initrd is /dev/root on /, normally > Or maybe the "none" could be anything in theory. > > > > 2. Check if your binaries are running inside a klibc or busybox > > context (both are supported via an initramfs) ? > > 3. Check if systemd is running ? (so you have started userspace > > processes part of your real rootfs) > > > > These two seem IMO a bit less "stable"... people might not use systemd > (at least in derivates) and checking for the binaries sounds a bit > ugly. Yeah the point 3. about systemd is not generic enough, I agree. For busybox that basically means resolving a symlink :) . Just resolve if /sbin/init is a symlink to busybox or not : but checking for the rootfs is definitively better, imho. > > > > So maybe I do a combination and check for several indicators: > /scripts, /conf/initramfs.conf (which seems to be always there, update- > initramfs fails if the main initramfs.conf is missing or empty) and the > fs-type of the / fs. I would say, just check a single indicator if you're sure about it, and then test (several times) Regards, Romain