[systemd-devel] initrd mount inactive

Aaron_Wright at selinc.com Aaron_Wright at selinc.com
Mon Apr 27 11:47:41 PDT 2015


I applied commit 628c89cc68ab96fce2de7ebba5933725d147aecc - core: rework 
device state logic, but now I'm left with a random chance to boot or not.

Some boots it comes up with "/var mounted" and lots of nice colored "[ OK 
]"s.

Some boots it comes up with "Unit var.mount is bound to inactive unit 
/dev/mapper/<name>. Stopping, too." and no colored "[ OK ]"s and about 
half the logs; only the "systemd[1]" messages, and it just hangs at some 
point; it never reaches the default target.

I create /dev/mapper/<name> in initrd with cryptsetup, and then mount it 
to /newroot/var before switching root to /newroot and running systemd. I 
don't use systemd in initrd.

Am I going about this wrong? What am I doing wrong here? What is the best 
way to mount /var in initrd and make systemd happy?


PS - I also added a commit to log what the inactive unit was.

"Aaron Wright" <Aaron_Wright at selinc.com> wrote on 03/12/2015 08:42:15 AM:
> Andrei Borzenkov <arvidjaar at gmail.com> wrote on 03/11/2015 08:44:28 PM:
> > Aaron_Wright at selinc.com пишет:
> > 
> > > I'm working with an embedded device that mounts / and /var in 
initrd. It 
> > > then switches root and fires up systemd. Early in the boot, after 
paths 
> > > target, /var gets unmounted. I want systemd to not do that, but I 
can't 
> > > figure out how to stop it.
> > > I would like systemd to leave /var mounted, but still unmount it 
during 
> > > shutdown. I would rather not move the mounting of /var out of 
initrd. Is 
> > > this possible?
> > > I'm trying to use a very stripped down systemd. As minimal as 
possible. 
> > 
> > Do you use udev in initrd?
> > 
> 
> No. initrd is a custom script I wrote, and it mounts devtmpfs for its 
devices.
> 
> > > I'm using systemd-219. The logs say that var.mount is bound to 
> an inactive 
> > > unit, and it is stopping too. I assume that is why /var gets 
unmounted, 
> > > but I don't know what to do to stop it. There is no /etc/fstab 
> file. There 
> > > is no var.mount file.
> > > I assume I'm either missing something simple, or it is not possible.
> > 
> > Did you try this commit?
> > 
> > 
> > commit 628c89cc68ab96fce2de7ebba5933725d147aecc
> > ...snip...
> > 
> 
> I was finally able to get /var to stay mounted when I included the 
> local-fs.target and local-fs-pre.target units on the device. 
> Apparently they are used magically by systemd. I'm not sure why or 
> how, but it does finally work, so I'm happy. This leads to my other 
> question about what units are required. I'll continue on that 
> discussion on that thread. 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20150427/e5e5288c/attachment.html>


More information about the systemd-devel mailing list