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

Bug#503062: News?



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):

chris@novo:/tmp/chris$ cdnewdir linux
chris@novo:/tmp/chris/linux$ git init
Initialized empty Git repository in /tmp/chris/linux/.git/
chris@novo:/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
chris@novo:/tmp/chris/linux$ cat > .git/objects/info/alternates
/usr/src/KERNEL.ORG/git/cj.git/objects
chris@novo:/tmp/chris/linux$ g-remote update
#..
chris@novo:/tmp/chris/linux$ git reset --hard v2.6.26.7
Checking out files: ..
chris@novo:/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:
chris@novo:/usr/src$ g-cat-file -p 151a1ce > /tmp/chris/linux/.config

chris@novo:/tmp/chris/linux$ make oldconfig
# ..
chris@novo:/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:

chris@novo:/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
chris@novo:/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.
chris@novo:/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:

chris@novo:~$ 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?

chris@novo:/tmp/chris/linux$ g-reset --hard v2.6.26.6
HEAD is now at afc84da Linux 2.6.26.6
chris@novo:/tmp/chris/linux$ make oldconfig
chris@novo:/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.

chris@novo:/tmp/chris$ mv initrd.img-2.6.26.6 initrd.img-2.6.26.6_old
chris@novo:/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
chris@novo:/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
chris@novo:/tmp/chris$ cat initrd.img-2.6.26.6/conf/conf.d/cryptroot
target=sda8_crypt,source=/dev/sda8,key=none,lvm=main-root
chris@novo:/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)=@ARGV;

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;

Reply to: