[lkml]   [2014]   [Dec]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [Linux-ima-user] Initramfs and IMA Appraisal
On 12/29/2014 07:45 AM, Mimi Zohar wrote:
> On Thu, 2014-11-27 at 10:15 +0100, Christophe Fillot wrote:
>>> Are you using an initrd not an initramfs? According to
>>> Documentation/filesystems/ramfs-rootfs-initramfs.txt, "If
>>> is enabled, rootfs will use tmpfs instead of ramfs by default".
>> Yes, that what I thought too, but it seems that it is not really the
>> case because of this test:
>> if (IS_ENABLED(CONFIG_TMPFS) && !saved_root_name[0] &&
>> (!root_fs_names || strstr(root_fs_names, "tmpfs"))) {
>> err = shmem_init();
>> is_tmpfs = true;
>> } else {
>> err = init_ramfs_fs();
>> }
> [CC'ing Rob Landley, lsm, lkml]
> Thanks! "saved_root_name" is set to the boot command line "root="
> option, which in my case is the UUID. I'm not sure why real root should
> impact the initramfs tmpfs/ramfs decision.
> Unless there is a good explanation, did you want to post a patch to
> remove the test?

I added support last year, here's the start of the patch series:

The logic is that if you specify a fallback root via root=, then you're
not staying on rootfs (that's what root= _means_, "here is the root
filesystem the kernel is to mount over rootfs"), and thus the extra
infrastructure for tmpfs instead of ramfs is unnecessary.

I keep encountering people who set root=/dev/ram0 because they think
that means initrd (it doesn't), and then they feed in a cpio archive
(that's a third state even before you get to the ramfs/tmpfs
distinction), and they always want to change the code to make what they
asked it to do not be crazy...

Possibly the documentation needs to elaborate, but I expect what we
really need is a CONFIG_VERBOSE_ROOT_SETUP that sticks in a bunch of
printfs so the /dev/console output explains what it's doing. ("could not
exec /init out of initramfs (errno %d, file %s), falling back to
root=\nAdd blather=1 to kernel cmdline to see cpio
filenames/permissions.", and so on. Where "actual exec" shows where your
dynamic linker is when that's what wasn't there.)


 \ /
  Last update: 2014-12-29 21:41    [W:0.062 / U:0.116 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site