Re: cross-debootstraped rootfs is failing to boot
On Mon, Oct 01, 2007 at 10:30:56PM +0200, Thomas Schwinge wrote:
> Hello!
>
> On Tue, Oct 02, 2007 at 12:29:57AM +0530, Praveen A wrote:
> > start /hurd/ext2fs.static: ext2fs: device:hd0s3: warning: FILESYSTEM
> > NOT UNMOUNTED CLEANLY; PLEASE fsck
> >
> > (well I did fsck and this message was gone)
> >
> > Hurd server bootstrap: ext2fs.static [device:hd0s3] exec init proc
> > auth/libexec/console-run: /dev/console: No such file or directory
> > /libexec/console-run: /tmp/console: Read-only filesystem
>
> Richt, obviously that node can't be created if the file system is
> read-only. How do ``normal'' Debian GNU/Hurd installations currently
> handle this?
Well, for crosshurd, makehurddir.sh, does this:
if [ "$DEB_TARGET_GNU_SYSTEM" = "gnu" ] ; then
x_feign_install hurd
##############################
# Prepare initial translator.
##############################
# FIXME: Should be done in the Hurd preinst.
install -d -m 755 -o root -g root $TARGET/servers/socket
touch $TARGET/servers/exec
#####################################
# Make sure libexec/runsystem exists
#####################################
# Explanation: It is managed by update-alternatives.
#
if [ ! -e $TARGET/libexec/runsystem -a -e $TARGET/libexec/runsystem.gnu ] ; then
cp $TARGET/libexec/runsystem.gnu $TARGET/libexec/runsystem
fi
so, it sort of second-guesses stuff.
> > /libexec/console-run: /hurd/term: Read-only filesystem
> > /libexec/console-run: using temporary console /tmp
> > /libexec/console-run: cannot execute /libexec/runsystem
> > No such file or directory
> >
> > (this indeed was the probelm /libexec contained runsystem.gnu after
> > renaming it to runsystem it booted correctly)
>
> This is usually handled the Debian way via the ``alternatives'' switch:
>
> #v+
> lrwxr-xr-x 1 root root 27 2006-04-25 18:41 /libexec/runsystem -> /etc/alternatives/runsystem
> lrwxr-xr-x 1 root root 22 2007-09-20 03:41 /etc/alternatives/runsystem -> /libexec/runsystem.gnu
> -rwxr-xr-x 1 root root 3927 2007-08-11 17:01 /libexec/runsystem.gnu
> #v-
>
> But I suppose that mechanism has not yet been configured in the
> partly-installed system you're booting into. Again, how do ``normal''
> Debian GNU/Hurd installations currently handle this?
see above.
> > sh: start-pipeline: pgrppipe: Protocol family not supported
>
> This is where the `native-install' script (or equivalent) needs to be
> run, to set up passive translators and the like; `/servers/socket/1' in
> that case, but also the all the stuff in `/dev/'.
In crosshurd, this is either done before reboot (if Linux knows about
passive translators, i.e. the user has patched in Roland's work), or
right after reboot natively.
Michael
Reply to: