diff -ruN genkernel.orig/generic/linuxrc genkernel/generic/linuxrc --- genkernel.orig/generic/linuxrc 2005-03-02 11:35:39.000000000 +0600 +++ genkernel/generic/linuxrc 2005-03-02 11:38:17.497905744 +0600 @@ -33,6 +33,12 @@ real_root\=*) REAL_ROOT=`parse_opt "${x}"` ;; + label\=*) + LABEL=`parse_opt "${x}"` + ;; + uuid\=*) + UUID=`parse_opt "${x}"` + ;; cdroot) CDROOT=1 REAL_ROOT='' @@ -290,6 +296,19 @@ do while [ "${got_good_root}" != '1' ] do + ############ Add support for LABEL=/ or UUID= + # Genkernel developers must improve this code :) + if [ "${LABEL}" != '' ] + then + echo "Checking LABEL=${LABEL}" + REAL_ROOT=`/sbin/findfs "LABEL=${LABEL}"` + elif [ "${UUID}" != '' ] + then + echo "Checking UUID=${LABEL}" + REAL_ROOT=`/sbin/findfs "UUID=${UUID}"` + fi + ############################################# + if [ "${REAL_ROOT}" = 'shell' ] then /bin/ash diff -ruN genkernel.orig/gen_initrd.sh genkernel/gen_initrd.sh --- genkernel.orig/gen_initrd.sh 2005-03-02 11:35:39.000000000 +0600 +++ genkernel/gen_initrd.sh 2005-03-02 11:42:21.889752536 +0600 @@ -54,6 +54,17 @@ MAKEDEV std MAKEDEV console + ####### Add support for LABEL=/ + # /usr/share/genkernel/pkg/x86/findfs must be compiled static + # you must perform "USE=static emerge -B =sys-fs/e2fsprogs-1.36" manually + # and take from binary package statically linked file "/sbin/findfs" + # and put it to /usr/share/genkernel/pkg/x86/ + # + # NB!: genkernel developers must improve this code + cp /usr/share/genkernel/pkg/x86/findfs "${TEMP}/initrd-temp/sbin/" + chmod +x "${TEMP}/initrd-temp/sbin/findfs" + ############################### + cp "${BUSYBOX_BINCACHE}" "${TEMP}/initrd-temp/bin/busybox.bz2" || gen_die 'Could not copy busybox from bincache!' bunzip2 "${TEMP}/initrd-temp/bin/busybox.bz2" ||