From 4543e17766d1cc566b8f4dcbb7a4e5eb0f9a3f57 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Thu, 19 Sep 2013 11:12:45 +0200 Subject: daemons: make sure / is writable before setting up pflocal runsystem.sh checks whether /servers/socket/1 exists and creates it using settrans -c if it does not. But at this point in the boot the root filesystem is normally not writable. This patch fixes this. * daemons/runsystem.sh: Make sure / is writable before attempting to set up pflocal. --- daemons/runsystem.sh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/daemons/runsystem.sh b/daemons/runsystem.sh index 4b9334e3..f4f27711 100644 --- a/daemons/runsystem.sh +++ b/daemons/runsystem.sh @@ -55,10 +55,17 @@ function singleuser () } -# See whether pflocal is setup already, and do so if not (install case) - -if ! test -e /servers/socket/1 && which settrans >/dev/null ; then - settrans -c /servers/socket/1 /hurd/pflocal +# See whether pflocal is set up already, and do so if not (install case) +# +# Normally this should be the case, but we better make sure since +# without the pflocal server, pipe(2) does not work. +if ! test -e /servers/socket/1 ; then + # The root filesystem should be read-only at this point. + if fsysopts / --update --writable ; then + settrans -c /servers/socket/1 /hurd/pflocal + else + singleuser "Failed to create /servers/socket/1." + fi fi # We expect to be started by console-run, which gives us no arguments and -- cgit v1.2.3