Yves-Alexis Perez wrote:
Erf.
If you manage to reproduce it (with 2.6.26 for example) please provide
the log from update-initramfs. You don't build your kernel with
make-kpkg (which, at install time, will generate the initrd itself)?
Yes, what I'm describing here is what I've just done to verify whether
the problem would recur when installing 2.6.26.7, and it's what I'm
always doing (except that usually I do the build in /usr/src/linux and
just update and reset the git branches there instead from creating a new
git repo); linux-initrd-createinstall is really just a thin wrapper
around update-initramfs which I created because I always forgot the name
of that tool ('cause the name of the tool to create the initrd's changed
over time, after all; I'm attaching it just in case you've got time to
waste to look at it):
[EMAIL PROTECTED]:/tmp/chris$ cdnewdir linux
[EMAIL PROTECTED]:/tmp/chris/linux$ git init
Initialized empty Git repository in /tmp/chris/linux/.git/
[EMAIL PROTECTED]:/tmp/chris/linux$ g-remote add origin
/usr/src/KERNEL.ORG/git/cj.git
# /usr/src/KERNEL.ORG/git/cj.git is a Git repository containing all of
the main upstream kernel branches
[EMAIL PROTECTED]:/tmp/chris/linux$ cat > .git/objects/info/alternates
/usr/src/KERNEL.ORG/git/cj.git/objects
[EMAIL PROTECTED]:/tmp/chris/linux$ g-remote update
#..
[EMAIL PROTECTED]:/tmp/chris/linux$ git reset --hard v2.6.26.7
Checking out files: ..
[EMAIL PROTECTED]:/tmp/chris/linux$ g-branch -v
* master a9dc671 Linux 2.6.26.7
#fetch my .config that I did use for 2.6.26.6:
[EMAIL PROTECTED]:/usr/src$ g-cat-file -p 151a1ce > /tmp/chris/linux/.config
[EMAIL PROTECTED]:/tmp/chris/linux$ make oldconfig
# ..
[EMAIL PROTECTED]:/tmp/chris/linux$ daemon-make -j2
# runs "make -j2" in the background, redirecting stdout and stderr to
nohup.out
novo:/tmp/chris/linux# make modules_install
...
DEPMOD 2.6.26.7
novo:/tmp/chris/linux# make install
sh /tmp/chris/linux/arch/x86/boot/install.sh 2.6.26.7
arch/x86/boot/bzImage System.map "/boot"
novo:/tmp/chris/linux# mvnumber nohup.out; nohup
linux-initrd-createinstall -c -v 2.6.26.7
nohup: ignoring input and appending output to `nohup.out'
novo:/tmp/chris/linux# echo $?
0
Now let's see what's in the newly created initrd:
[EMAIL PROTECTED]:/tmp/chris$ for f in initrd.img-2.6.26.7; do cdnewdir $f;
zcat /boot/$f | cpio --extract ; find|sort > ../$f.list ; u ; done
34109 blocks
[EMAIL PROTECTED]:/tmp/chris$ map $(lambda 'perl -wne "s|/2\\.6\\.2.\\..|/| or
print"') $(lambda 'diff -u "$@"') initrd.img-2.6.26.5_fixednewc.list
initrd.img-2.6.26.7.list
# again no difference in the list of non-versioned files from good
manually fixed initrd.
[EMAIL PROTECTED]:/tmp/chris$ cat initrd.img-2.6.26.7/conf/conf.d/cryptroot
target=sda8_crypt,source=/dev/sda8,key=none,lvm=main-root
So: the file is also in the newly built /boot/initrd.img-2.6.26.7 now.
So my only explanation is that the problem has been fixed in
initramfs-tools with an upgrade I did after reporting the bug. Actually
I was somewhat more hesitant with upgrading after a few bigger breakages
in lenny, so at that point in time I may have been running a version of
the initramfs-tools that was a few weeks old -- but you should see that
from the bug report, shouldn't you? yep, the report says "Version:
0.92j". I'm now running:
[EMAIL PROTECTED]:~$ dpkgli initramfs-tools
ii initramfs-tools 0.92j tools for generating an initramfs
Ehr, wait, isn't this the same version?
Oh well, so much for the theory. So what am I gonna to do, try to build
2.6.26.6 again just for * sake and not use the -v flag to the
update-initramfs script in case it should turn out to be a heisenbug?
[EMAIL PROTECTED]:/tmp/chris/linux$ g-reset --hard v2.6.26.6
HEAD is now at afc84da Linux 2.6.26.6
[EMAIL PROTECTED]:/tmp/chris/linux$ make oldconfig
[EMAIL PROTECTED]:/tmp/chris/linux$ daemon-make -j2
daemon running as pid 12620 (you can hit ctl-c now)
daemon exited successfully.
do you want to look at the output?
novo:/tmp/chris/linux# make install
sh /tmp/chris/linux/arch/x86/boot/install.sh 2.6.26.6
arch/x86/boot/bzImage System.map "/boot"
novo:/tmp/chris/linux# make modules_install
INSTALL sound/usb/usx2y/snd-usb-usx2y.ko
DEPMOD 2.6.26.6
novo:/tmp/chris/linux# l /boot/*init*2.6.26.6*
-rw-r--r-- 1 root root 6227538 2008-10-10 03:08
/boot/initrd.img-2.6.26.6.bak
-rw-r--r-- 1 root root 6375408 2008-10-14 17:36 /boot/initrd.img-2.6.26.6
novo:/tmp/chris/linux# mvnewdir /boot/*init*2.6.26.6* ~/tmp/initrdproblem2
# which does mkdir ~/tmp/initrdproblem2; mv /boot/*init*2.6.26.6*
~/tmp/initrdproblem2
novo:/tmp/chris/linux# linux-initrd-createinstall -c 2.6.26.6
update-initramfs: Generating /boot/initrd.img-2.6.26.6
# see, I've left out the -v flag now
novo:/tmp/chris/linux#
# now check again what we've got.
[EMAIL PROTECTED]:/tmp/chris$ mv initrd.img-2.6.26.6 initrd.img-2.6.26.6_old
[EMAIL PROTECTED]:/tmp/chris$ for f in initrd.img-2.6.26.6; do cdnewdir $f;
zcat /boot/$f | cpio --extract ; find|sort > ../$f.list ; u ; done
34109 blocks
[EMAIL PROTECTED]:/tmp/chris$ map $(lambda 'perl -wne "s|/2\\.6\\.2.\\..|/| or
print"') $(lambda 'diff -u "$@"') initrd.img-2.6.26.5_fixednewc.list
initrd.img-2.6.26.6.list
[EMAIL PROTECTED]:/tmp/chris$ cat initrd.img-2.6.26.6/conf/conf.d/cryptroot
target=sda8_crypt,source=/dev/sda8,key=none,lvm=main-root
[EMAIL PROTECTED]:/tmp/chris$
Well now I'm really out of ideas.
novo:/etc# find -name '*cryptroot*'
novo:/etc#
I don't have the time to find out where it creates the cryptroof file
from and how it could get to fail now. Let's wish us best of luck and
hold our thumbs.
Christian.
#!/usr/bin/perl -w
# Wed Jun 11 07:01:16 CEST 2008
(my $email='XXX%YYY,ch')=~ tr/%,/@./;
# really f*cking fricking how I EVER so now never. this here to solve me.
use strict;
our $boot= "/boot";
$0=~ /(.*?)([^\/]+)\z/s or die "?";
my ($mydir, $myname)=($1,$2);
sub usage {
print STDERR map{"$_\n"} @_ if @_;
print "$myname [ -c ] kernel_version
Options:
-c create, if none existed for this kernel version before
-v verbose
(Christian Jaeger <$email>)
";
exit (@_ ? 1 : 0);
}
use Getopt::Long;
our $verbose=0;
our $opt_create;
GetOptions("verbose"=> \$verbose,
"help"=> sub{usage},
"c"=> \$opt_create,
) or exit 1;
usage unless @ARGV==1;
our ($kernel_version)[EMAIL PROTECTED];
use Chj::xperlfunc;
our @cmd=("update-initramfs",
($opt_create ? "-c" : "-u"),
($verbose ? "-v" : ()),
"-k",
$kernel_version);
if ($verbose) {
use Chj::singlequote 'singlequote_many';
print STDERR "running ".singlequote_many (@cmd)."..\n";
}
xxsystem @cmd;
## also add verbosity here ?
xsystem "mvnumber", "$boot/initrd.img.old";#well.
xrename "$boot/initrd.img", "$boot/initrd.img.old";
xsymlink "initrd.img-$kernel_version", "$boot/initrd.img";
#use Chj::ruse;
#use Chj::Backtrace; use Chj::repl; repl;