Hey.
I've just wondered whether there is recommended way to find out whether
one is currently "within" the initramfs (i.e. early boot) as generated
by Debians initramfs-tools, or not?
I'd have probably done something like checking for:
if [ -f /conf/initramfs.conf ] && [ -f /scripts/init-top/ORDER ] && [ ! -e /usr/bin/dpkg ]; then
echo within initramfs
else
echo not within initramfs
fi
Or are /conf/initramfs.conf and /scripts/init-top/ORDER not necessarily included?
The check for dpkg (which shouldn't be present in the initramfs, unless someone includes it for whichever reason) would have been to rule out
the cases where someone created the other files in his normal
userspace.
Any better ideas? :D
Thanks,
Chris.
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)
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)
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
?
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.
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.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 285 |
Nodes: | 16 (2 / 14) |
Uptime: | 69:44:11 |
Calls: | 6,488 |
Calls today: | 1 |
Files: | 12,096 |
Messages: | 5,275,482 |