[systemd-devel] moving from SysV to systemd - issue with / being ro

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Wed Oct 16 10:40:10 PDT 2013


On Wed, Oct 16, 2013 at 07:22:28PM +0200, Warpme wrote:
> On 10/16/13 7:02 PM, Zbigniew Jędrzejewski-Szmek wrote:
> >On Wed, Oct 16, 2013 at 06:18:12PM +0200, Warpme wrote:
> >>Hi,
> >>I want to switch init system from SysV to systemd-196.
> >>Sys is PXE booted disk-less appliance with rootfs based on overlayfs.
> >>
> >>Currently I can PXEboot, successfully switch root from initrd to
> >>overlayfs based root, systemd starts and executes many of it's
> >>units.
> >>Unfortunately user units are failing due / is read-only.
> >>When I issue "mount -o remount,rw /"  - root becomes rw - so it
> >>looks like systemd for some reason isn't remounting root to rw.
> >>Interesting is that exactly the same initrd->overlayfs script (see
> >>below) works OK for SysV - so I think issue isn't in my pivot_root
> >>procedure but rather systemd receives / in rw but leaves in ro (as
> >>"mount -o remount,rw /" allows to write to /).
> >>
> >>Script switching initrd to overlayfs root looks following:
> >>
> >>/bin/mount -n -t tmpfs none /rw
> >>/bin/mkdir -p /rw/rootfs
> >>/bin/mount -n -t overlayfs -o
> >>lowerdir=/rootfs-ro,upperdir=/rw/rootfs none /rootfs
> >>cd /rootfs
> >>/bin/mkdir -p initrd proc sys
> >>/sbin/pivot_root . initrd
> >>exec /usr/sbin/chroot . /usr/lib/systemd/systemd
> >>
> >>Where issue might be?
> >What's in /etc/fstab?
> >
> >Zbyszek
> >
> Zbyszku,
> 
> Here is my fstab:
> 
> none / auto remount,rw 0 0
OK, so fstab-generator will ignore the mount point becuase of the 'none'.
This means that systemd will not remount it.

Actually, I don't understand why / is mounted read-only: -w is the default
for mount, and you don't specify -r anywhere. Maybe it's specific to overlayfs.

I think that your best option is to add

/bin/mount -o remount,rw /

in the script.

The other option — modifying systemd — is also possible, but it won't
happen without a good reason. Your usecase should be trivially solved
by modifying the script, so it's not good enough.

Zbyszek


More information about the systemd-devel mailing list