[systemd-devel] moving from SysV to systemd - issue with / being ro
Colin Guthrie
gmane at colin.guthr.ie
Thu Oct 17 10:59:54 PDT 2013
'Twas brillig, and Warpme at 17/10/13 18:15 did gyre and gimble:
> On 10/17/13 4:27 PM, Colin Guthrie wrote:
>> Perhaps a dumb question but are you 100% certain that
>> systemd-remount-fs.service has been run? I've not seen any debug about
>> it so far on this thread:
>>
>> systemctl status systemd-remount-fs.service
> Console reports "Starting Remount Root and Kernel Filesystems..."
This is the important one
> and next (after some other entries) "Started Root and Kernel
> Filesystems..."
This one seems different but I guess you maybe just missed the word
"Remount" in the retyping?
> Looking on systemctl status systemd-remount-fs.service reports:
> Loaded: loaded
> Active: active (exited) (with green color)
> Exit code=0/SUCCESS
>
> For me this unit looks like started, executed and exited OK.
Yup, that looks good.
FWIW, all it does is run a little utility shipped with systemd that
finds / and /usr in /etc/fstab and attempts to remount them.
The utility binary is [/usr]/lib/systemd/systemd-remount-fs
It seems that it ran and exited with 0 which is successful, but I cannot
see how it could do that unless it had trouble parsing the fstab and
just couldn't spot / or /usr.
> My general logic is following:
> -let assume initrd script leaves / with mode we are not sure (ro or rw)
> -with SysV I don't have anywhere else remount command for / to rw
OK, this did used to be done in (IIRC) rc.sysinit via initscripts
package, but as you say it's not there, I'll take your word for it.
> - so
> backward logic says script provides / with rw
> -now I'm changing last line in script from /sbin/init to
> /usr/lib/systemd/systemd (script body is in OP of this thread)
> -I'm receiving / with ro mode. So logic says that
> /usr/lib/systemd/systemd process changes mode of / from rw to ro
I can see why you get to this conclusion, but I'd be cautious of
assuming this is how things work!
> Is there way to tell to systemd not mount/remout / (ideally not touch /
> at all) ?
Technically it you can just mask the systemd-remount-fs.service which
will avoid the remounts, but, if I'm honest, I suspect something in your
sysvinit setup *is* doing the remount for you somehow.
Here's what I would suggest:
1. Boot and get a shell where / is ro (i.e. the error state)
2. Run the [/usr]/lib/systemd/systemd-remount-fs manually and see if it
corrects the mount problem.
3. If 2) does NOT solve the problem, run: "/bin/mount / -o remount"
(including the full path). This is all that the above utility does
internally, so if this fails on it's own, then running it via the
utility cannot fix it.
If 3 works but 2 didn't, then the only way I can see it not doing it's
job, but still exiting successfully, is if it fails to properly parse
your fstab.
Here is the source:
http://cgit.freedesktop.org/systemd/systemd/tree/src/remount-fs/remount-fs.c
Even if you are not too familiar with c, it should be easy to follow.
HTHs
Col
--
Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/
Day Job:
Tribalogic Limited http://www.tribalogic.net/
Open Source:
Mageia Contributor http://www.mageia.org/
PulseAudio Hacker http://www.pulseaudio.org/
Trac Hacker http://trac.edgewall.org/
More information about the systemd-devel
mailing list