Re: Problem inserting busybox into initrd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Michal Jaegermann wrote:
On Tue, Mar 11, 2008 at 10:35:37AM +0900, John Summerfield wrote:
Nothing produces a message to say what's wrong.

'nash' would be my guess. Does feeding /bin/sh to nash really has a
chance to provide a busybox shell?  I did not look but nash is
pretty limited in what it can do.

Once you have busybox on initrd then maybe you can replace
nash with it all over the place?

The translation's not that simple, nash has some built-in commands that need to be translated. I've been pondering restructuring it like busybox or adding its functionality to busybox, but I'm not sure such work would be welcomed by RH/F.

However, I've discovered the problem, and have a circumvention:

Here's the relevant bit of the diff:
 emit "loadpolicy"
 emit "echo Switching to new root and running init."
-emit "switchroot"
+emit "switchroot --no-rm"
 emit "echo Booting has failed."
-emit "sleep -1"
+emit "sleep 60"

 chmod +x $RCFILE


The problem is that rm goes deleting stuff before it fails. The above "--no-rm" prevents that.

It's time to update my bug report and maybe open a new thread for a new topic.


For those wishing to educate themselves, this command unpacks the initrd:

gunzip -dc </boot/initrd-2.6.25-0.101.rc4.git3.fc9.img.js \
  | cpio --extract -d
This is what a nash script looks like. It doesn't seem to be programmable - no if or looping constucts, and all those commands are built right in. It can run external programs, but by the time I tried to do that, switchroot had deleted everything.


#!/bin/nash
echo Beginning initialistion
mount -t proc /proc /proc
setquiet
echo Mounting proc filesystem
echo Mounting sysfs filesystem
mount -t sysfs /sys /sys
echo Creating /dev
mount -o mode=0755 -t tmpfs /dev /dev
mkdir /dev/pts
mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts
mkdir /dev/shm
mkdir /dev/mapper
echo Creating initial device nodes
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mknod /dev/systty c 4 0
mknod /dev/tty c 5 0

..
echo Activating logical volumes
lvm vgchange -ay --ignorelockingfailure  VolGroup00
resume /var/swapfile1
echo Creating root device.
mkrootdev -t ext3 -o defaults,ro /dev/VolGroup00/LogVol00
echo Mounting root filesystem.
mount /sysroot
echo Setting up other filesystems.
setuproot
loadpolicy
echo Switching to new root and running init.
switchroot --no-rm
echo Booting has failed.
sleep 60

I've just noticed that setquiet statement. That's probably the case of "no messages."

--
fedora-test-list mailing list
fedora-test-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-test-list

[Index of Archives]     [Fedora Desktop]     [Fedora SELinux]     [Photo Sharing]     [Yosemite Forum]     [KDE Users]

  Powered by Linux