Re: [dev][ubase] Implement switch_root

From: Dimitris Papastamos <dp_AT_spl9.org>
Date: Tue, 15 Apr 2014 17:58:48 +0100

On Tue, Apr 15, 2014 at 05:57:25PM +0100, Dimitris Papastamos wrote:
> On Tue, Apr 15, 2014 at 06:44:54PM +0200, Markus Wichmann wrote:
> > On Sun, Apr 13, 2014 at 02:10:51PM +0200, FRIGN wrote:
> > > Good day,
> > >
> > > sometimes, you depend on an initramfs to do stuff for you before
> > > the rootfs is available.
> > > Busybox has become the standard for "all your initramfs needs", but
> > > tbh, I hate working with it.
> > > Statically linking sbase and ubase and choosing the tools you need for
> > > the job almost solves the problem, but the lack of switch_root, which
> > > almost every initramfs depends on, forces you to use busybox (because
> > > util-linux doesn't link statically).
> > >
> > > Now, I would've already sent in a patch, but I am pretty sure somebody
> > > here already hacked it together before. So, to save my time, I better
> > > ask now.
> > >
> > > Cheers
> > >
> > > FRIGN
> > >
> > > --
> > > FRIGN <dev_AT_frign.de>
> > >
> >
> > Why switch_root and not pivot_root? Here's a sh mockup of how to do what
> > you wrote with pivot_root:
> >
> > set -e
> > new_root=$1
> > put_old=$2
> > [ -d $put_old ] || made_dir=1
> > mkdir -p $put_old
> > cd $new_root
> > pivot_root $new_root $put_old
> > chroot $new_root
> > umount ${put_old#$new_root}
> > [ $made_dir ] && rm -rf ${put_old#$new_root}
>
> Because if it is a shell script then it cannot be included in ubase-box
> which means that it needs to be maintained separately. Also the existing
> build system for ubase/sbase doesn't cope with shell scripts (can be fixed
> but not until we have a very good reason).

Scratch that, it cannot be fixed. Real programmers write in C.
Received on Tue Apr 15 2014 - 18:58:48 CEST

This archive was generated by hypermail 2.3.0 : Tue Apr 15 2014 - 19:00:15 CEST