Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 153782 - app-arch/cpio-2.7 breaks genkernel initramfs
Summary: app-arch/cpio-2.7 breaks genkernel initramfs
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Hosted Projects
Classification: Unclassified
Component: genkernel (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo's Team for Core System packages
URL: http://cvs.savannah.gnu.org/viewcvs/c...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-11-01 20:23 UTC by Brian S. Stephan
Modified: 2006-11-10 22:58 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
terminate link_name from readlink. (2,7-readlink.patch,492 bytes, patch)
2006-11-08 16:56 UTC, Richard Fish
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Brian S. Stephan 2006-11-01 20:23:15 UTC
I use an EVMS system with an EVMS root, so I need to use an initramfs with support for it to boot. Lately new builds of an initramfs were failing, forcing me to use an older one I had built. The forums URL contains my trials and tribulations in finding the culprit, which I finally have.

First the problem. Booting with new initramfs images would provide this:

Freeing unused kernel memory: 196k freed
>> Loading modules
>> Activating mdev
>> Activating EVMS
/init: /init: 227: evms_activate: not found
>> Determining root device...
!! Block device /dev/evms/root is not a valid root device...
!! The root block device is unspecified or not detected.
   Please specify a device to boot, or "shell" for a shell...
boot() :: _

There was an /sbin/evms_activate "in" the image (I could see it with the busybox shell) but it was unexecutable (even when I provided a full path to it inside the shell). Booting an older (built in mid-September, if my memory is right [which it may not be, I've gone through many in testing]) initramfs worked fine.

After reinstalling and updating to ~amd64 while trying kernel/initramfs builds at various intervals, I narrowed the problem down to cpio-2.7. An initramfs built using genkernel and cpio-2.7 fails as the above, rebooting, downgrading to cpio-2.6-r5 and rebuilding the initramfs produces a usable one again.

emerge --info:
Portage 2.1.2_rc1-r2 (default-linux/amd64/2006.1/desktop, gcc-4.1.1, glibc-2.5-r0, 2.6.18-gentoo-r1 x86_64)
=================================================================
System uname: 2.6.18-gentoo-r1 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
Gentoo Base System version 1.12.5
Last Sync: Wed, 01 Nov 2006 18:50:01 +0000
app-admin/eselect-compiler: [Not Present]
dev-java/java-config: [Not Present]
dev-lang/python:     2.4.3-r4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     [Not Present]
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.60
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.14
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r1
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=athlon64 -fomit-frame-pointer -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/terminfo"
CXXFLAGS="-O2 -march=athlon64 -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="ftp://gentoo.mirrors.tds.net/gentoo ftp://ftp.ussg.iu.edu/pub/linux/gentoo http://mirror.datapipe.net/gentoo http://gentoo.cites.uiuc.edu/pub/gentoo/ http://open-systems.ufl.edu/mirrors/gentoo"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="amd64 X alsa arts berkdb bitmap-fonts cairo cdr cli cracklib crypt cups dbus dlloader dri dvd dvdr eds elibc_glibc emboss encode esd fam firefox fortran gdbm gif gnome gpm gstreamer gtk2 hal iconv input_devices_evdev input_devices_keyboard input_devices_mouse ipv6 isdnlog jpeg kde kernel_linux ldap libg++ mad mikmod mp3 mpeg ncurses nls nptl nptlonly ogg opengl oss pam pcre perl png ppds pppd python qt3 qt4 quicktime readline reflection sdl session spell spl ssl tcpd truetype truetype-fonts type1-fonts udev unicode userland_GNU video_cards_apm video_cards_ark video_cards_ati video_cards_chips video_cards_cirrus video_cards_cyrix video_cards_dummy video_cards_fbdev video_cards_glint video_cards_i128 video_cards_i810 video_cards_mga video_cards_neomagic video_cards_nv video_cards_rendition video_cards_s3 video_cards_s3virge video_cards_savage video_cards_siliconmotion video_cards_sis video_cards_sisusb video_cards_tdfx video_cards_tga video_cards_trident video_cards_tseng video_cards_v4l video_cards_vesa video_cards_vga video_cards_via video_cards_vmware video_cards_voodoo vorbis xml xorg xv zlib"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

Thanks.
Comment 1 Henry Wertz 2006-11-03 14:27:43 UTC
     Same here...  I was generating an initrd with preseed.cfg file in it for bulk ubuntu installs.  In my case, I even extracted the initrd, made no changes, and package it back up with "find . | cpio -H newc -o | gzip -9 > ../initrd.gz" and a number of variants and still get a failure.  I'll get an error that init cannot be found, or (if I change the order of the file list fed to cpio) init will run but other portions of the startup scripts fail shortly thereafter.  The extraction is clean, because I can rsync those files into a Ubuntu VM (under qemu), run cpio in there and get a working initrd.gz out.

     
Comment 2 Richard Fish 2006-11-08 15:59:18 UTC
It produces broken cpio archives with symlinks.

~/tmp > ll -R
.:
total 0
drwxr-xr-x 2 root root 18 Nov  8 16:48 dir1
lrwxrwxrwx 1 root root 10 Nov  8 16:47 link1 -> dir1/file1

./dir1:
total 0
-rw-r--r-- 1 root root 0 Nov  8 16:47 file1
~/tmp > find ./ | cpio --create --format=newc > ../test.cpio
2 blocks
~/tmp > cpio --list --verbose < ../test.cpio
drwxr-xr-x   3 root     root            0 Nov  8 16:48 ./
drwxr-xr-x   2 root     root            0 Nov  8 16:48 dir1
-rw-r--r--   1 root     root            0 Nov  8 16:47 dir1/file1
lrwxrwxrwx   1 root     root           11 Nov  8 16:47 link1 -> dir1/file1D

notice the "dir1/file1D"!

I suggest this bug be priority P1, blocker, and that this version be p.masked ASAP.

Portage 2.1.2_rc1-r5 (default-linux/amd64/2006.1, gcc-4.1.1, glibc-2.5-r0, 2.6.18 x86_64)
=================================================================
System uname: 2.6.18 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4400+
Gentoo Base System version 1.12.6
Last Sync: Wed, 08 Nov 2006 19:50:01 +0000
dev-java/java-config: 1.3.7, 2.0.30
dev-lang/python:     2.4.4
dev-python/pycrypto: 2.0.1-r5
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.60
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.14
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r1
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -pipe -O2"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config /var/bind"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/init.d /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-march=athlon64 -pipe -O2"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig buildpkg distlocks fixpackages metadata-transfer sandbox sfperms splitdebug strict"
GENTOO_MIRRORS="http://mirror.datapipe.net/gentoo/"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /usr/portage/local/layman/vmware /usr/portage/local/layman/portage-xgl"
SYNC="rsync://rsync.us.gentoo.org/gentoo-portage"
USE="amd64 arts elibc_glibc input_devices_evdev input_devices_keyboard input_devices_mouse kdeenablefinal kdehiddenvisibility kernel_linux nptl nptlonly userland_GNU video_cards_fbdev video_cards_nv video_cards_nvidia video_cards_vesa"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 3 Richard Fish 2006-11-08 16:56:29 UTC
Created attachment 101506 [details, diff]
terminate link_name from readlink.

Downloaded from upstream:

http://cvs.savannah.gnu.org/viewcvs/cpio/src/copyout.c?root=cpio&r1=1.19&r2=1.20&makepatch=1&diff_format=h
Comment 4 SpanKY gentoo-dev 2006-11-10 22:58:19 UTC
cpio-2.7-r1 now in portage with fix, thanks guys