SPECS (AC-branch): filesystem.spec - release 5: %ghost for /initrd...

Radoslaw Zielinski radek42 at gmail.com
Sat Mar 17 13:27:41 CET 2007


Elan Ruusamäe <glen at delfi.ee> [13-03-2007 21:25]:
> On Tuesday 13 March 2007, Radoslaw Zielinski wrote:
>>>> Because it's impossible to upgrade if old root (from boot time) is
>>>> mounted on /initrd.  cpio fails on unpacking the *.rpm.

>>>> It has been broken for quite a while... :-/
>>> so fix what's broken.
>> I have fixed what was broken.  At least one part of it.
> no, that's not "fixing". it's workarounding problem from wrong direction. 
> initrd needs fixing, not filesystem.spec having workarounds.

If a package can't be upgraded (even in wrong environment), it can be
considered a problem with this package.  And IMO this is the case.

>>> anyway not being able to umount /initrd (due unmounted /initrd/dev) is
>>> fixed in geninitrd 8142.
>>   $ rpm -q geninitrd
>>   geninitrd-8286-1
> installing geninitrd package doesn't "fix" your problem.

Indeed, it doesn't fix filesystem.spec.

> you need to regenerate initrd using fixed geninitrd.

No kidding...?

> if you've all done that, then please show your initrd contents (while /initrd 
> still mounted to be sure to compare initrd used for boot): 
> # cat /initrd/linuxrc

#! /bin/sh

set -x
insmod /lib/modules/2.6.20-0.12/kernel/drivers/ide/ide-core.ko 
insmod /lib/modules/2.6.20-0.12/kernel/drivers/ide/pci/piix.ko 
insmod /lib/modules/2.6.20-0.12/kernel/drivers/ide/ide-disk.ko 
insmod /lib/modules/2.6.20-0.12/kernel/fs/xfs/xfs.ko 
: 'Creating /dev'
mount -o mode=0755 -t tmpfs none /dev
mknod /dev/console c 5 1
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mkdir /dev/pts
mkdir /dev/shm
mount -t proc none /proc
mount -t sysfs none /sys
: 'Starting udev'
/sbin/udevd --daemon
kill udevd
umount /proc
umount /sys
set +x
mount -t proc none /proc
root="$(busybox awk ' /root=\/dev\// { gsub(/.*root=\/dev\//,NIL,$0); gsub(/ .*/,NIL,$0); print $0; } ' /proc/cmdline)"
if [ -n "$root" ]; then
	rootnr="$(busybox awk -v root="$root" ' { if ($4 == root) { print 256*$1+$2; } } ' /proc/partitions)"
	if [ -n "$rootnr" ]; then
		echo "$rootnr" > /proc/sys/kernel/real-root-dev
	fi
fi
umount /proc
set -x

-- 
Radosław Zieliński <radek at pld-linux.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : /mailman/pipermail/pld-devel-en/attachments/20070317/1ff53f29/attachment.sig 


More information about the pld-devel-en mailing list