Changeset 3563 in MondoRescue for branches/3.0-mindi-2.1/mindi/rootfs/etc/init.d/rcS
- Timestamp:
- Apr 11, 2016, 7:43:30 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3.0-mindi-2.1/mindi/rootfs/etc/init.d/rcS
r3172 r3563 5 5 # init script launched during the restore process 6 6 #------------------------------------------------------------ 7 8 7 9 8 CaughtSoftReset() { … … 53 52 mount / -o rw,remount > /dev/null 2> /dev/null 54 53 for i in `cat /proc/cmdline`; do 55 56 57 58 59 60 61 elif [[ $console != "" && -e$console ]]; then62 setsid sh -c "exec sh <$console >$console 2>&1"63 64 65 54 echo $i | grep -qi console= && console=`echo $i | cut -d= -f2` 55 echo $i | grep -qi serial= && serial=`echo $i | cut -d= -f2` 56 done 57 LogIt "Launching Shell" 58 if [[ $serial != "" && -e $serial ]]; then 59 setsid sh -c "exec sh <$serial >$serial 2>&1" 60 elif [[ $console != "" && -e /dev/$console ]]; then 61 setsid sh -c "exec sh </dev/$console >/dev/$console 2>&1" 62 else 63 setsid sh -c "exec sh </dev/tty1 >/dev/tty1 2>&1" 64 fi 66 65 } 67 66 … … 75 74 ExtractDevTarballs() { 76 75 cd / 77 for fname in ataraid.tgz ida.tgz i2o.tgz rd.tgz raw.tgz cciss.tgz nst.tgz dm.tgz vc.tgz ; do 78 if [ ! -e "/$fname" ] ; then 79 LogIt "/$fname not found; cannot extract to /." 1 80 else 81 echo -en "\rExtracting /$fname... " 82 tar -zxf /$fname || LogIt "Error occurred while extracting /$fname" 83 fi 84 done 76 if [ -x /usr/lib/systemd/systemd-udevd ]; then 77 # Just use vc dev files. The other are useless and create huge delays with LVM 78 tar -zxf /vc.tgz || LogIt "Error occurred while extracting /vc.tgz" 79 else 80 for fname in ataraid.tgz ida.tgz i2o.tgz rd.tgz raw.tgz cciss.tgz nst.tgz dm.tgz vc.tgz ; do 81 if [ ! -e "/$fname" ] ; then 82 LogIt "/$fname not found; cannot extract to /." 1 83 else 84 echo -en "\rExtracting /$fname... " 85 tar -zxf /$fname || LogIt "Error occurred while extracting /$fname" 86 fi 87 done 88 fi 85 89 echo -en "\r" 86 90 LogIt "Extracted additional /dev entries OK. " 1 … … 98 102 opt="-c" 99 103 fi 104 echo "Launching terminals on other ttys - Use ALT+F[2-6] to use them" 100 105 openvt $opt 2 /bin/sh 101 106 openvt $opt 3 /bin/sh … … 105 110 openvt $opt 7 /bin/sh /sbin/wait-for-petris 106 111 openvt $opt 8 /usr/bin/tail -f $LOGFILE 107 openvt $opt 9 /usr/bin/tail -f /var/log/messages 112 if [ -f /var/log/messages ]; then 113 openvt $opt 9 /usr/bin/tail -f /var/log/messages 114 fi 108 115 # May avoid shell error messages 109 116 chmod 666 /dev/tty* /dev/console 110 117 # By default first serial line is configured as tty 111 # Required to have a correct serial console support (MP on ia64 or VSP with iLO 2e.g.)118 # Required to have a correct serial console support (MP on ia64 or VSP with iLO e.g.) 112 119 for i in `cat /proc/cmdline` ; do 113 120 echo $i | grep -qi serial= && serial=`echo $i | cut -d= -f2` 114 121 done 115 122 # Doing that is only valid when using a real serial line 116 if [ -f $serial]; then123 if [[ $serial != "" && -e $serial ]]; then 117 124 LogIt "Redirecting serial $serial to /dev/tty" 1 118 125 ln -s -f $serial /dev/tty … … 288 295 fi 289 296 if [ "$res" -eq "0" ] ; then 290 LogIt "OK, I am running on a CD-ROM. Good." 3297 LogIt "OK, I am running on a CD-ROM. Good." 1 291 298 CD_MOUNTED_OK=yes 292 299 else 293 LogIt "You probably not have the right drivers" 3294 LogIt "to support the hardware on which we are running" 3295 LogIt "Your archives are probably fine but" 3296 LogIt "your tape streamer and/or CD-ROM drive are unsupported at that point." 3300 LogIt "You probably not have the right drivers" 1 301 LogIt "to support the hardware on which we are running" 1 302 LogIt "Your archives are probably fine but" 1 303 LogIt "your tape streamer and/or CD-ROM drive are unsupported at that point." 1 297 304 CD_MOUNTED_OK="" 298 305 fi … … 324 331 if [ ! -e "/dev/.devfsd" ] ; then 325 332 mount -t devfs devfs /dev 2>> $LOGFILE 326 327 LogIt "Error while trying to mount devfs"333 if [ "$?" -ne "0" ] ; then 334 LogIt "Error while trying to mount devfs" 328 335 else 329 LogIt "Devfs mounted OK"336 LogIt "Devfs mounted OK" 330 337 fi 331 338 fi … … 372 379 373 380 RunUdevd() { 374 # Inspiration from Mandriva 2008.0 startup script 375 echo "Preparing udev environment..." 376 LogIt "Preparing udev environment..." 381 # Initial Inspiration from Mandriva 2008.0 startup script 382 LogIt "Preparing udev environment..." 1 377 383 mv /dev /dev.static 378 384 mkdir /dev 379 mount -n -o size=5M,mode=0755 -t tmpfs none /dev 380 MakeExtraNodes 381 mount -n -t devpts -o mode=620 none /dev/pts 385 # Contributed during LinuxCon Japan ! 386 if [ -x /usr/lib/systemd/systemd-udevd ]; then 387 mount -n -t devtmpfs none /dev 388 else 389 mount -n -o size=5M,mode=0755 -t tmpfs none /dev 390 MakeExtraNodes 391 mount -n -t devpts -o mode=620 none /dev/pts 392 fi 393 mkdir -p /dev/shm 382 394 mount -n -t tmpfs none /dev/shm 383 395 if [ -e /proc/sys/kernel/hotplug ]; then … … 396 408 ps | grep -v grep |grep udevd 2> /dev/null 1> /dev/null 397 409 if [ $? -ne 0 ]; then 410 echo "Waiting for udev to start..." 398 411 if [ -x /sbin/udevd ]; then 399 412 /sbin/udevd --daemon & … … 401 414 /usr/bin/udevd --daemon & 402 415 elif [ -x /usr/lib/systemd/systemd-udevd ]; then 403 /usr/lib/systemd/systemd-udevd -daemon & 404 fi 405 echo "Waiting for udev to start..." 416 # from https://github.com/hut/minirc/blob/master/rc 417 echo "INFO: This is the systemd version of udev" 418 # Contributed during LinuxCon Japan 419 #mount -n -t tmpfs tmpfs /sys/fs/cgroup 420 #mount -n -t cgroup cgroup /sys/fs/cgroup/systemd 421 mkdir -p /run/udev 422 mkdir -p /run/systemd/journal 423 /usr/lib/systemd/systemd-udevd --daemon 424 udevadm trigger --action=add --type=subsystems 425 udevadm trigger --action=add --type=devices 426 fi 406 427 sleep 5 407 LogIt "udev started manually" 428 LogIt "udev started manually" 1 408 429 fi 409 430 mkdir -p /dev/.udev/queue/ … … 481 502 fi 482 503 if [ -e "/tmp/i-want-my-lvm" ] ; then 504 # Recent LVM need this caching daemon to work 505 if [ -x /usr/sbin/lvmetad ]; then 506 mkdir -p /run/lvm 507 /usr/sbin/lvmetad 508 fi 483 509 LogIt "Scanning LVM's..." 1 484 510 if which lvm ; then … … 494 520 for d in $MINDI_EXCLUDE_DEVS ; do 495 521 echo "LVM exclusion == $d" 522 # LVM: $4 to be checked if changed 496 523 EXCLUDE_VGS=`grep " $d" /tmp/i-want-my-lvm | grep vgcreate | awk '{print $4}'` 497 524 vg=`echo $EXCLUDE_VGS | sed "s/ /|/g"` … … 508 535 echo "vgcfgrestore $v" >> /tmp/restorevgs 509 536 # Remove LVs from mountlist 537 # LVM: sed to be checked if changed 510 538 EXCLUDE_LVS=`grep " $v" /tmp/i-want-my-lvm | grep lvcreate | sed "s/^.*-n \([^ ][^ ]*\) .*$/$1/"` 511 539 for l in $EXCLUDE_LVS; do 512 540 # FIXME: Should search for all possible device names here 513 grep -Ev "/dev/$v/$l" /tmp/mountlist.txt > /tmp/mountlist.txt.new 514 grep -Ev "/dev/mapper/${v}-$l" /tmp/mountlist.txt.new > /tmp/mountlist.txt 541 if [ -f "/tmp/mountlist.txt" ]; then 542 grep -Ev "/dev/$v/$l" /tmp/mountlist.txt > /tmp/mountlist.txt.new 543 grep -Ev "/dev/mapper/${v}-$l" /tmp/mountlist.txt.new > /tmp/mountlist.txt 544 fi 515 545 done 516 546 done 517 547 done 518 548 549 # LVM: remove # 519 550 grep -E "^#.*vgchange" /tmp/i-want-my-lvm | sed "s/^#[ ]*//" > /tmp/start-lvm 520 551 chmod +x /tmp/start-lvm … … 577 608 return; 578 609 fi 579 if [ "`grep mpath /tmp/mountlist.txt`" ]; then610 if [ -f "/tmp/mountlist.txt" ] && [ "`grep mpath /tmp/mountlist.txt`" ]; then 580 611 if [ -x /sbin/multipath ]; then 581 612 echo "Starting Mpath..." … … 602 633 fi 603 634 604 raid_devices=`grep /dev/md /tmp/mountlist.txt | cut -d' ' -f1` 635 if [ -f "/tmp/mountlist.txt" ]; then 636 raid_devices=`grep /dev/md /tmp/mountlist.txt | cut -d' ' -f1` 637 else 638 raid_devices="" 639 fi 640 605 641 if which raidstart > /dev/null 2> /dev/null ; then 606 642 for i in $raid_devices ; do … … 693 729 umount /tmp/tmpfs > /dev/null 2> /dev/null 694 730 rmdir /tmp/tmpfs 695 ln -sf /mnt/RESTORING/tmp /tmp/tmpfs; # used by mondo -restore731 ln -sf /mnt/RESTORING/tmp /tmp/tmpfs; # used by mondorestore 696 732 LogIt "Failed to mount /tmp/tmpfs; using ugly softlink instead" 697 733 else … … 845 881 export PATH GROOVY USER LOGFILE ARCH 846 882 883 mount -o remount,rw / 884 rm -f $LOGFILE 885 886 mkdir /proc 2> /dev/null 887 mount /proc /proc -t proc 888 889 # Creates log file 890 LogIt "" 891 # Backup fd 892 exec 4>&2 5>&1 893 # Redirect every message to the LOGFILE 894 exec > >(tee -a ${LOGFILE}) 895 exec 2> >(tee -a ${LOGFILE} >&2) 896 847 897 echo "Welcome to init (from mindi ${MINDI_VER}-r${MINDI_REV})" 848 898 849 mount -o remount rw / 899 mkdir /sys 2> /dev/null 900 mount /sys /sys -t sysfs 901 850 902 [ ! "$GROOVY" ] && Die "I'm not groovy!" 851 903 for i in $GROOVY /mnt/cdrom /mnt/isodir /var/local/petris /tmp/isodir; do 852 904 mkdir -p $i 853 905 done 854 #/bin/update855 mkdir /proc 2> /dev/null856 mount /proc/ /proc -v -t proc857 mkdir /sys 2> /dev/null858 mount /sys/ /sys -v -t sysfs 2>> $LOGFILE859 906 # For ESX 3 860 907 [ -d /proc/vmware ] && ! grep -q /vmfs /proc/mounts && mount -t vmfs /vmfs /vmfs … … 879 926 for d in $MINDI_EXCLUDE_DEVS ; do 880 927 echo "Mountlist exclusion == $d" 881 perl -i -ne 'print $_ unless m~$d~' /tmp/mountlist.txt 928 if [ -e "/tmp/mountlist.txt" ]; then 929 perl -i -ne 'print $_ unless m~$d~' /tmp/mountlist.txt 930 fi 882 931 done 883 932 else … … 902 951 LaunchTerminals 903 952 904 # Keeping kernel silent 953 # Keeping kernel silent for module insertion 905 954 PKLVL=`cut -f1 /proc/sys/kernel/printk` 906 955 echo 0 > /proc/sys/kernel/printk … … 916 965 LogIt "Warning - /tmp/mondo-restore.cfg not found" 917 966 fi 918 if [ "`grep -i pxe /proc/cmdline`" ] || [ "`grep -i net /proc/cmdline`" ] ; then967 if [ "`grep -i pxe /proc/cmdline`" ] || [ "`grep -i net /proc/cmdline`" ] || [ "`grep 'netfs-proto ' /tmp/mondo-restore.cfg`" ]; then 919 968 # We need to get here exported variables from start-netfs 920 969 . /sbin/start-netfs … … 941 990 HandleCDROM 942 991 ExtractDataDisksAndLoadModules 943 # We need to get here exported variables from start-netfs944 . /sbin/start-netfs945 992 fi 946 993 res=$? … … 965 1012 sleep 2 966 1013 #clear 967 if [ -e "/dev/md0" ] && [ ! -e "/dev/md/0" ] && [ "`grep /dev/md/ /tmp/mountlist.txt`" != "" ] ; then1014 if [ -e "/dev/md0" ] && [ ! -e "/dev/md/0" ] && [ -e "/tmp/mountlist.txt" ] && [ "`grep /dev/md/ /tmp/mountlist.txt`" != "" ] ; then 968 1015 LogIt "Creating /dev/md/* softlinks just in case." 1 969 1016 mkdir -p /dev/md … … 1044 1091 LogIt "Calling post-init" 1045 1092 # start-netfs moved it under /tmp as the NFS share is already unmounted 1046 if [ "`echo $pre | grep -E '^/tmp/isodir'`" ]; then1093 if [ _"$pre" != _"" ] && [ "`echo $pre | grep -E '^/tmp/isodir'`" ]; then 1047 1094 pre=`echo $pre | sed 's|^/tmp/isodir|/tmp|'` 1048 1095 fi 1049 if [ -x $pre ]; then1096 if [ _"$pre" != _"" ] && [ -x $pre ]; then 1050 1097 echo "Executing preliminary script $pre" 1051 1098 LogIt "Executing preliminary script $pre" … … 1059 1106 if [ "`grep -i "post=" /proc/cmdline`" ] ; then 1060 1107 for i in `cat /proc/cmdline` ; do 1061 1108 echo $i | grep -qi post= && post=`echo $i | cut -d= -f2` 1062 1109 done 1063 1110 # start-netfs moved it under /tmp as the NFS share is already unmounted
Note:
See TracChangeset
for help on using the changeset viewer.