X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=rescue%2Flinux%2Fcdrom%2Fmakebinaries;fp=rescue%2Flinux%2Fcdrom%2Fmakebinaries;h=81bc66952f1d29d31086f61ad89f5dc22fc9b90f;hb=cefbbcaecb42822a4f1154dd0b13daed9403bbdf;hp=b0f78ea650b8c3382e913b3a8253a97c3445941f;hpb=07a5c97abfc52fb4666c46b37653f613dddb2d51;p=bacula%2Frescue diff --git a/rescue/linux/cdrom/makebinaries b/rescue/linux/cdrom/makebinaries index b0f78ea..81bc669 100755 --- a/rescue/linux/cdrom/makebinaries +++ b/rescue/linux/cdrom/makebinaries @@ -11,9 +11,10 @@ PATH="/sbin:/bin:/usr/sbin:/usr/bin:$PATH" # Cleanup and make necessary directories -rm -rf $R/sbin +rm -rf $R/sbin $R/bin +mkdir -p $R/cdrom mkdir -p $R/etc $R/initrd $R/lib $R/mnt $R/mnt/cdrom -mkdir -p $R/proc $R/root $R/sbin $R/tmp $R/var +mkdir -p $R/proc $R/root $R/sbin $R/tmp $R/var $R/usr mkdir -p $R/dev $R/sys $R/initrd $R/sysroot mkdir -p $R/etc/terminfo $R/etc/terminfo/l mkdir -p $R/var/lib $R/var/log $R/var/run $R/var/state @@ -23,6 +24,8 @@ touch $R/var/log/news/news.crit $R/var/log/news/news.err $R/var/log/news.notice cd $R ln -sf sbin bin +cd usr +ln -sf ../sbin sbin cd $TOPDIR # @@ -37,6 +40,7 @@ if [ $? != 0 ]; then exit 1 fi cat rootsbin.list >${TMPFILE} +# Try to find the shell program for root command=`grep ^root: /etc/passwd | cut -d ':' -f 7` command=`basename $command` if [ x$command != "xbash" ] ; then @@ -49,7 +53,7 @@ for file in `cat ${TMPFILE}` ; do fullfile=`which $command 2> /dev/null` if [ x$fullfile != x ] ; then # echo "updating $command in roottree with $fullfile" - cp -fpd $fullfile $file + cp -fp $fullfile $file if [ $? != 0 ] ; then echo "Update failed." exit 1 @@ -91,21 +95,52 @@ done cp -fp /lib/ld-linux.so.* roottree/lib/ strip `find roottree/lib/ -maxdepth 1 -type f` 2>/dev/null -# Grab grub crap -if [ -e /usr/share/grub ] ; then +# Grab grub RedHat +if [ -d /usr/share/grub ] ; then mkdir -p roottree/usr/share/grub - cp -fpr /usr/share/grub/* roottree/usr/share/grub -elif [ -e /lib/grub ] ; then + cp -fpR /usr/share/grub/* roottree/usr/share/grub +elif [ -d /lib/grub ] ; then mkdir -p roottree/lib/grub - cp -fpr /lib/grub/* roottree/lib/grub + cp -fpR /lib/grub/* roottree/lib/grub +elif [ -d /usr/lib/grub ] ; then + mkdir -p roottree/usr/lib/grub + cp -fpR /usr/lib/grub* roottree/usr/lib/grub else echo "======= Warning could not find grub scripts ========" fi +if [ -d /lib/udev ] ; then + rm -rf $R/lib/udev + cp -fpR /lib/udev $R/lib/ +fi + # # Get a bunch of stuff from /etc # echo "Building /etc ..." +# SuSE 10.1 +if [ -f /etc/rc.status ]; then + cp -fp /etc/rc.status $R/etc/ +fi +# copy the whole sysconfig directory +if [ -d /etc/sysconfig ]; then + rm -rf $R/etc/sysconfig + cp -fpR /etc/sysconfig/ $R/etc/ +fi +# comment out HWADDR in any ifcfg-eth* file, otherwise ifconfig won't start +for i in `ls $R/etc/sysconfig/network*/ifcfg-eth*` +do + grep ^HWADDR $i >/dev/null 2>&1 + if [ $? -eq 0 ]; then + sed -e 's/HWADDR/#HWADDR/' < $i > /tmp/temp.$$ + mv -f /tmp/temp.$$ $i + fi +done + +if [ -d /etc/syslog-ng ] ; then + cp -fpR /etc/syslog-ng/ $R/etc/ +fi + cp -p /etc/services roottree/etc/ if [ $? != 0 ] ; then echo "Update failed." @@ -113,34 +148,66 @@ if [ $? != 0 ] ; then fi for file in `cat rootetc.list` ; do - if [ -e $file ] ; then + if [ -f $file ] ; then cp -fp $file roottree/etc/ else echo "==== Could not find $file in /etc ====" fi done -if [ -e /etc/modules.conf ] ; then + +# RedHat has a non-standard rc.d/init.d layout +if [ -d /etc/rc.d/init.d ]; then + cp -a /etc/rc.d/ $R/etc/ + (cd $R/etc; ln -sf rc.d init.d) + rcdtarget=$R/etc/rc.d +elif [ -d /etc/init.d ]; then + cp -a /etc/init.d/ $R/etc/ + (cd $R/etc; ln -sf init.d rc.d) + rcdtarget=$R/etc/init.d +fi +cp -f $R/etc/rc ${rcdtarget}/ +cp -a ${MKCDREC_DIR}/etc/rc.d/* ${rcdtarget} +cat /dev/null > $R/etc/rc.d/rc.inits +chmod +x $R/etc/rc.d/rc.inits +touch $R/etc/rc.d/rc.local + +if [ -f /etc/modules.conf ] ; then cp -fp /etc/modules.conf roottree/etc/ fi -if [ -e /etc/modprobe.conf ] ; then +if [ -f /etc/modprobe.conf ] ; then cp -fp /etc/modprobe.conf roottree/etc/ fi +if [ -f /etc/modprobe.conf.local ] ; then + cp -fp /etc/modprobe.conf.local roottree/etc/ +fi +if [ -d /etc/modprobe.d ] ; then + cp -a /etc/modprobe.d roottree/etc/ +fi + rm -rf roottree/etc/pam.d -if [ -e /etc/pam.d ] ; then +if [ -d /etc/pam.d ] ; then cp -a /etc/pam.d roottree/etc/ if [ -e /etc/pam.conf ] ; then cp -fp /etc/pam.conf roottree/etc/ fi fi -if [ -e /etc/init.d ] ; then - rm -rf roottree/etc/init.d - cp -aL /etc/init.d roottree/etc/ +if [ -d /etc/hotplug ] ; then + cp -a /etc/hotplug $R/etc +fi +if [ -d /etc/hotplug.d ] ; then + cp -a /etc/hotplug.d $R/etc fi +if [ -d /etc/udev ]; then + cp -a /etc/udev $R/etc +fi +if [ -d /etc/dev.d ]; then + cp -a /etc/dev.d $R/etc +fi + -if [ -e /etc/udev ] ; then - rm -rf roottree/etc/udev - cp -aL /etc/udev roottree/etc/ +if [ -f /etc/rc.status ] ; then + cp -fp /etc/rc.status roottree/etc/ fi