[GIT PULL 02/12 for v7.0] vfs initrd

From: Christian Brauner

Date: Fri Feb 06 2026 - 11:53:49 EST


Hey Linus,

/* Summary */

Remove classic initrd linuxrc support

Remove the deprecated linuxrc-based initrd code path and related dead code.
The linuxrc initrd path was deprecated in 2020 and this series completes its
removal. If we see real-life regressions we'll revert.

The core change removes handle_initrd() and init_linuxrc() — the entire flow
that ran /linuxrc from an initrd, pivoted roots, and handed off to the real
root filesystem. With that gone, initrd_load() becomes void (no longer
short-circuits prepare_namespace()), rd_load_image() is simplified to always
load /initrd.image instead of taking a path, and rd_load_disk() is deleted.
The /proc/sys/kernel/real-root-dev sysctl and its backing variable are
removed since they only existed for linuxrc to communicate the real root
device back to the kernel. The no-op load_ramdisk= and prompt_ramdisk=
parameters are dropped, and noinitrd and ramdisk_start= gain deprecation
warnings.

Initramfs is entirely unaffected. The non-linuxrc initrd path
(root=/dev/ram0) is preserved but now carries a deprecation warning targeting
January 2027 removal.

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3+b1)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline
=============================

diff --cc Documentation/admin-guide/kernel-parameters.txt
index aa0031108bc1,f67591615a6a..000000000000
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@@ -3472,13 -3437,6 +3472,11 @@@ Kernel parameter
If there are multiple matching configurations changing
the same attribute, the last one is used.

+ liveupdate= [KNL,EARLY]
+ Format: <bool>
+ Enable Live Update Orchestrator (LUO).
+ Default: off.
+
- load_ramdisk= [RAM] [Deprecated]
-
lockd.nlm_grace_period=P [NFS] Assign grace period.
Format: <integer>

Merge conflicts with other trees
================================

The following changes since commit 8f0b4cce4481fb22653697cced8d0d04027cb1e8:

Linux 6.19-rc1 (2025-12-14 16:05:07 +1200)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.initrd

for you to fetch changes up to ef12d0573a7f5e7a495e81d773ae5f3e98230cd4:

Merge patch series "initrd: remove half of classic initrd support" (2026-01-12 17:22:27 +0100)

----------------------------------------------------------------
vfs-7.0-rc1.initrd

Please consider pulling these changes from the signed vfs-7.0-rc1.initrd tag.

Thanks!
Christian

----------------------------------------------------------------
Askar Safin (3):
init: remove deprecated "load_ramdisk" and "prompt_ramdisk" command line parameters
initrd: remove deprecated code path (linuxrc)
init: remove /proc/sys/kernel/real-root-dev

Christian Brauner (1):
Merge patch series "initrd: remove half of classic initrd support"

Documentation/admin-guide/kernel-parameters.txt | 12 ++-
Documentation/admin-guide/sysctl/kernel.rst | 6 --
arch/arm/configs/neponset_defconfig | 2 +-
include/linux/initrd.h | 2 -
include/uapi/linux/sysctl.h | 1 -
init/do_mounts.c | 11 +--
init/do_mounts.h | 18 +---
init/do_mounts_initrd.c | 107 ++----------------------
init/do_mounts_rd.c | 24 +-----
9 files changed, 23 insertions(+), 160 deletions(-)