Hello community, here is the log from the commit of package mkinitrd checked in at Mon Jul 30 19:03:08 CEST 2007. -------- --- mkinitrd/mkinitrd.changes 2007-07-27 15:23:13.000000000 +0200 +++ /mounts/work_src_done/STABLE/mkinitrd/mkinitrd.changes 2007-07-30 16:07:42.000000000 +0200 @@ -1,0 +2,12 @@ +Mon Jul 30 16:01:55 CEST 2007 - agraf@suse.de +- Fixed booting on dmraid w/o kpartx (recursive resolution of dm + devices) +- Removed Including: line +- Resolve root device using stat on / + +------------------------------------------------------------------- +Mon Jul 30 15:20:13 CEST 2007 - hare@suse.de + +- Enable all disks in a LVM2 volume group + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mkinitrd.spec ++++++ --- /var/tmp/diff_new_pack.n18378/_old 2007-07-30 19:01:50.000000000 +0200 +++ /var/tmp/diff_new_pack.n18378/_new 2007-07-30 19:01:50.000000000 +0200 @@ -18,7 +18,7 @@ Requires: coreutils modutils util-linux grep gzip sed gawk cpio udev pciutils sysvinit file perl Autoreqprov: on Version: 2.1 -Release: 6 +Release: 9 Summary: Creates an Initial RAM Disk Image for Preloading Modules BuildRoot: %{_tmppath}/%{name}-%{version}-build Source0: mkinitrd.tgz @@ -101,6 +101,13 @@ %doc %{_mandir}/man8/mkinitrd.8.gz %changelog +* Mon Jul 30 2007 - agraf@suse.de +- Fixed booting on dmraid w/o kpartx (recursive resolution of dm + devices) +- Removed Including: line +- Resolve root device using stat on / +* Mon Jul 30 2007 - hare@suse.de +- Enable all disks in a LVM2 volume group * Fri Jul 27 2007 - hare@suse.de - Fix detection of I2O devices * Fri Jul 27 2007 - agraf@suse.de ++++++ mkinitrd.tgz ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.1/mkinitrd.changes new/mkinitrd-2.1/mkinitrd.changes --- old/mkinitrd-2.1/mkinitrd.changes 2007-07-27 15:20:56.000000000 +0200 +++ new/mkinitrd-2.1/mkinitrd.changes 2007-07-30 16:05:55.000000000 +0200 @@ -1,4 +1,16 @@ ------------------------------------------------------------------- +Mon Jul 30 16:01:55 CEST 2007 - agraf@suse.de +- Fixed booting on dmraid w/o kpartx (recursive resolution of dm + devices) +- Removed Including: line +- Resolve root device using stat on / + +------------------------------------------------------------------- +Mon Jul 30 15:20:13 CEST 2007 - hare@suse.de + +- Enable all disks in a LVM2 volume group + +------------------------------------------------------------------- Fri Jul 27 15:20:16 CEST 2007 - hare@suse.de - Fix detection of I2O devices diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.1/scripts/setup-blockpartition.sh new/mkinitrd-2.1/scripts/setup-blockpartition.sh --- old/mkinitrd-2.1/scripts/setup-blockpartition.sh 2007-07-27 15:20:56.000000000 +0200 +++ new/mkinitrd-2.1/scripts/setup-blockpartition.sh 2007-07-30 16:05:55.000000000 +0200 @@ -7,7 +7,7 @@ for bd in $blockdev; do update_blockdev $bd - if [ "$(echo $bd | egrep '[0-9]$')" ]; then + if [ "$(echo $bd | egrep '[a-z][0-9]*$')" ]; then if [ "${blockdriver%%[0-9]*}" = "cciss" ] ; then blkpart="cciss!${bd##*/}" blkdev="${blkpart%%p[0-9]}" @@ -17,13 +17,10 @@ fi if [ -d /sys/block/$blkdev/$blkpart ] ; then blkdev=$(echo $blkdev | sed 's.!./.g') - blockpart_blockdev="$blockpart_blockdev /dev/$blkdev" - else - blockpart_blockdev="$blockpart_blockdev $bd" + bd="/dev/$blkdev" fi - else - blockpart_blockdev="$blockpart_blockdev $bd" fi + blockpart_blockdev="$(update_list $bd $blockpart_blockdev)" done blockdev="$blockpart_blockdev" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.1/scripts/setup-block.sh new/mkinitrd-2.1/scripts/setup-block.sh --- old/mkinitrd-2.1/scripts/setup-block.sh 2007-07-27 15:20:56.000000000 +0200 +++ new/mkinitrd-2.1/scripts/setup-block.sh 2007-07-30 16:05:55.000000000 +0200 @@ -22,7 +22,7 @@ if [ ! -d /sys/block/$blkdev ] ; then blkpart=$blkdev - blkdev=$(echo $blkpart | sed 's/[0-9]*$//') + blkdev=$(echo $blkpart | sed 's/([a-z])[0-9]*$/\1/') if [ ! -d /sys/block/$blkdev/$blkpart ] ; then error 1 "Device $blkdev not found in sysfs" fi diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.1/scripts/setup-dmraid.sh new/mkinitrd-2.1/scripts/setup-dmraid.sh --- old/mkinitrd-2.1/scripts/setup-dmraid.sh 2007-07-27 15:20:56.000000000 +0200 +++ new/mkinitrd-2.1/scripts/setup-dmraid.sh 2007-07-30 16:05:55.000000000 +0200 @@ -14,7 +14,7 @@ if [ "$dm_creator" = "dmraid" ]; then tmp_root_dm=1 # dmraid needs dm root_dmraid=1 - newbd="$newbd $(echo $bd | sed 's/[0-9]*$//')" + newbd="$newbd $(echo $bd | sed 's/([a-z])[0-9]*$/\1/')" else newbd="$newbd $bd" fi diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.1/scripts/setup-dm.sh new/mkinitrd-2.1/scripts/setup-dm.sh --- old/mkinitrd-2.1/scripts/setup-dm.sh 2007-07-27 15:20:56.000000000 +0200 +++ new/mkinitrd-2.1/scripts/setup-dm.sh 2007-07-30 16:05:55.000000000 +0200 @@ -11,26 +11,9 @@ # if any device before was on dm we have to activate it [ "$tmp_root_dm" ] && root_dm=1 - # resolve dependencies - for bd in $blockdev ; do - update_blockdev $bd - if [ "$blockdriver" = device-mapper ]; then - dm_uuid=$(dmsetup info -c --noheadings -o uuid -j $blockmajor -m $blockminor) - root_dm=1 - dm_deps=$(dmsetup deps -j $blockmajor -m $blockminor) - dm_deps=${dm_deps#*: } - dm_deps=${dm_deps//, /:} - dm_deps=${dm_deps//(/} - dm_deps=${dm_deps//)/} - for dm_dep in $dm_deps; do - dm_blockdev="$dm_blockdev $(majorminor2blockdev $dm_dep)" - done - else - dm_blockdev="$dm_blockdev $bd" - fi - done - blockdev="$dm_blockdev" - + blockdev="$(dm_resolvedeps $blockdev)" + [ "$?" = 0 ] && root_dm=1 + # include modules if [ -n "$root_dm" ] ; then # Add all dm modules diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.1/scripts/setup-lvm2.sh new/mkinitrd-2.1/scripts/setup-lvm2.sh --- old/mkinitrd-2.1/scripts/setup-lvm2.sh 2007-07-27 15:20:56.000000000 +0200 +++ new/mkinitrd-2.1/scripts/setup-lvm2.sh 2007-07-30 16:05:55.000000000 +0200 @@ -18,10 +18,11 @@ vg_name=${vg_name#*:} vg_root=${vg_name%%:*} if [ "$vg_root" ] ; then + local vg_blockdev root_lvm2=1 realrootdev=${vg_dev## } -# blockdev=$(vgs --noheadings --options devices $vg_root 2> /dev/null | sed -n "s@ *(/dev/.*)([0-9]*) *@\1@p" | sort | uniq) - lvm_blockdev="$lvm_blockdev $(dm_resolvedeps $blockdev)" + vg_blockdev=$(vgs --noheadings --options devices $vg_root 2> /dev/null | sed -n "s@ *(/dev/.*)(.*) *@\1@p" | sort | uniq) + lvm_blockdev="$lvm_blockdev $vg_blockdev" [ $? -eq 0 ] || return 1 vg_roots="$vg_roots $vg_root" else diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.1/scripts/setup-splash.sh new/mkinitrd-2.1/scripts/setup-splash.sh --- old/mkinitrd-2.1/scripts/setup-splash.sh 2007-07-27 15:20:56.000000000 +0200 +++ new/mkinitrd-2.1/scripts/setup-splash.sh 2007-07-30 16:05:55.000000000 +0200 @@ -60,9 +60,6 @@ esac -[ ${#features[@]} -gt 0 ] \ - && echo -e "Including:\t${features[@]}" - splash_bin= [ -x /sbin/splash.bin ] && splash_bin=/sbin/splash.bin [ -x /bin/splash ] && splash_bin=/bin/splash diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.1/scripts/setup-storage.sh new/mkinitrd-2.1/scripts/setup-storage.sh --- old/mkinitrd-2.1/scripts/setup-storage.sh 2007-07-27 15:20:56.000000000 +0200 +++ new/mkinitrd-2.1/scripts/setup-storage.sh 2007-07-30 16:05:55.000000000 +0200 @@ -2,6 +2,19 @@ # #%stage: filesystem # +# usage: update_list <id> <list> +update_list() { + local elem=$1 + + shift + case " $@ " in + *" $elem "*) + echo "$@" + return 0;; + esac + echo "$@ $elem" +} + # usage: block_driver <major id> block_driver() { sed -n "/^Block devices:/{n;: n;s/^[ ]*$1 (.*)/\1/p;n;b n}" < /proc/devices @@ -95,13 +108,13 @@ dm_deps=${dm_deps//(/} dm_deps=${dm_deps//)/} for dm_dep in $dm_deps; do - majorminor2blockdev $dm_dep + dm_resolvedeps $(majorminor2blockdev $dm_dep) done else - echo $bd + echo -n "$bd " fi done - return 0 + [ "$root_dm" = 1 ] } # this receives information about the current blockdev so each storage layer has access to it for its current blockdev @@ -186,17 +199,35 @@ ####################################################################################### if [ -z "$rootdev" ] ; then - # no rootdev specified, get current root from /etc/fstab + # no rootdev specified, get current root opts from /etc/fstab and device from stat + # get rootdev via stat + rootcpio=`echo / | /bin/cpio --quiet -o -H newc` + rootmajor="$(echo $(( 0x${rootcpio:62:8} )) )" + rootminor="$(echo $(( 0x${rootcpio:70:8} )) )" + if [ $((rootmajor)) -ne 0 ] ; then + rootdev="$(beautify_blockdev $(majorminor2blockdev $rootmajor $rootminor))" + fi + + # get opts from fstab and device too if stat failed while read fstab_device fstab_mountpoint fstab_type fstab_options dummy ; do if [ "$fstab_mountpoint" = "/" ]; then - rootdev="$fstab_device" + [ "$rootdev" ] || rootdev="$fstab_device" rootfstype="$fstab_type" rootfsopts="$fstab_options" break fi done < <(sed -e '/^[ \t]*#/d' < $root_dir/etc/fstab) -else + + # no fstype found, so we will try to get it via vol_id + if [ ! "$rootfstype" ]; then + eval $(/lib/udev/vol_id | grep ID_FS_TYPE) + rootfstype=$ID_FS_TYPE + fi +fi + +#if we don't know where the root device belongs to +if [ -z "$rootdev" ] ; then # get type from /etc/fstab or /proc/mounts (actually not needed) x1=$(cat $root_dir/etc/fstab /proc/mounts 2>/dev/null \ | grep -E "$rootdev[[:space:]]" | tail -n 1) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org