lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260124003939.426931-1-hpa@zytor.com>
Date: Fri, 23 Jan 2026 16:39:33 -0800
From: "H. Peter Anvin" <hpa@...or.com>
To: Alexander Viro <viro@...iv.linux.org.uk>,
        Christian Brauner <brauner@...nel.org>, Jan Kara <jack@...e.cz>,
        Jonathan Corbet <corbet@....net>, "H. Peter Anvin" <hpa@...or.com>
Cc: linux-fsdevel@...r.kernel.org, linux-doc@...r.kernel.org,
        linux-kernel@...r.kernel.org,
        Lennart Poettering <lennart@...ttering.net>,
        systemd-devel@...ts.freedesktop.org
Subject: [PATCH 0/3] Add the ability to mount filesystems during initramfs expansion

At Plumber's 2024, Lennart Poettering of the systemd project requested
the ability to overmount the rootfs with a separate tmpfs before
initramfs expansion, so the populated tmpfs can be unmounted.

This patchset takes this request and goes one step further: it allows
(mostly) arbitrary filesystems mounts during initramfs processing.

This is done by having the initramfs expansion code detect the special
filename "!!!MOUNT!!!" which is then parsed into a simplified
fstab-type mount specification and the directory in which the
!!!MOUNT!!! entry is used as the mount point.

This specific method was chosen for the following reasons:

1. This information is specific to the expectations of the initramfs;
   therefore using kernel command line options is not
   appropriate. This way the information is fully contained within the
   initramfs itself.
2. The sequence !!! is already special in cpio, due to the "TRAILER!!!"
   entries.
3. The filename "!!!MOUNT!!!" will typically be sorted first, which
   means using standard find+cpio tools to create the initramfs still
   work.
4. Similarly, standard cpio can still expand the initramfs.
5. If run on a legacy kernel, the !!!MOUNT!!! file is created, which
   is easy to detect in the initramfs code which can then activate
   some fallback code.
6. It allows for multiple filesystems to be mounted, possibly of
   different types and in different locations, e.g. the initramfs can
   get started with /dev, /proc, and /sys already booted.

The patches are:

    1/3: fs/init: move creating the mount data_page into init_mount()
    2/3: initramfs: support mounting filesystems during initramfs expansion
    3/3: Documentation/initramfs: document mount points in initramfs

--- 
 .../driver-api/early-userspace/buffer-format.rst   | 60 +++++++++++++-
 fs/init.c                                          | 23 +++++-
 include/linux/init_syscalls.h                      |  3 +-
 init/do_mounts.c                                   | 17 +---
 init/initramfs.c                                   | 95 +++++++++++++++++++++-
 5 files changed, 175 insertions(+), 23 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ