| 1 |
#!/bin/sh |
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
export MINDI_CACHE=CCC |
|---|
| 9 |
|
|---|
| 10 |
if [ -e "/proc/cmdline" ]; then |
|---|
| 11 |
export CMDLINE="/proc/cmdline" |
|---|
| 12 |
elif [ -e "/tmp/cmdline" ]; then |
|---|
| 13 |
export CMDLINE="/tmp/cmdline" |
|---|
| 14 |
else |
|---|
| 15 |
export CMDLINE="/dev/null" |
|---|
| 16 |
fi |
|---|
| 17 |
|
|---|
| 18 |
|
|---|
| 19 |
|
|---|
| 20 |
CaughtSoftReset() { |
|---|
| 21 |
trap SIGTERM |
|---|
| 22 |
reboot |
|---|
| 23 |
} |
|---|
| 24 |
|
|---|
| 25 |
|
|---|
| 26 |
ConfigureLoggingDaemons() { |
|---|
| 27 |
echo -en "Running klogd..." |
|---|
| 28 |
klogd -c 2 > /dev/null 2> /dev/null |
|---|
| 29 |
echo -en "Done.\nRunning syslogd..." |
|---|
| 30 |
syslogd > /dev/null 2> /dev/null |
|---|
| 31 |
echo "Done." |
|---|
| 32 |
LogIt "klogd and syslogd have been started." |
|---|
| 33 |
} |
|---|
| 34 |
|
|---|
| 35 |
|
|---|
| 36 |
|
|---|
| 37 |
CopyBootDevEntry() { |
|---|
| 38 |
local outfile devfile |
|---|
| 39 |
devfile=/dev/boot_device |
|---|
| 40 |
outfile=`cat /BOOTLOADER.DEVICE 2> /dev/null` |
|---|
| 41 |
[ ! "$outfile" ] && return 0 |
|---|
| 42 |
echo -en "Copying boot device to $outfile..." |
|---|
| 43 |
if [ -e "$outfile" ] ; then |
|---|
| 44 |
echo "not needed." |
|---|
| 45 |
return 0 |
|---|
| 46 |
fi |
|---|
| 47 |
mkdir -p $outfile |
|---|
| 48 |
rmdir $outfile |
|---|
| 49 |
cp -pRdf $devfile $outfile |
|---|
| 50 |
if [ "$?" -ne "0" ] ; then |
|---|
| 51 |
echo "Failed." |
|---|
| 52 |
return 1 |
|---|
| 53 |
else |
|---|
| 54 |
echo "OK." |
|---|
| 55 |
return 0 |
|---|
| 56 |
fi |
|---|
| 57 |
} |
|---|
| 58 |
|
|---|
| 59 |
|
|---|
| 60 |
|
|---|
| 61 |
Die() { |
|---|
| 62 |
LogIt "Fatal error! $1" 1 |
|---|
| 63 |
exit 1 |
|---|
| 64 |
} |
|---|
| 65 |
|
|---|
| 66 |
|
|---|
| 67 |
|
|---|
| 68 |
ExtractDevTarballs() { |
|---|
| 69 |
cd / |
|---|
| 70 |
for fname in ataraid.tgz ida.tgz i2o.tgz rd.tgz raw.tgz cciss.tgz nst.tgz dm.tgz vc.tgz ; do |
|---|
| 71 |
if [ ! -e "/$fname" ] ; then |
|---|
| 72 |
LogIt "/$fname not found; cannot extract to /." 1 |
|---|
| 73 |
else |
|---|
| 74 |
echo -en "\rExtracting /$fname... " |
|---|
| 75 |
tar -zxf /$fname || LogIt "Error occurred while extracting /$fname" |
|---|
| 76 |
rm -f /$fname |
|---|
| 77 |
fi |
|---|
| 78 |
done |
|---|
| 79 |
echo -en "\r" |
|---|
| 80 |
LogIt "Extracted additional /dev entries OK. " 1 |
|---|
| 81 |
} |
|---|
| 82 |
|
|---|
| 83 |
|
|---|
| 84 |
|
|---|
| 85 |
LaunchTerminals() { |
|---|
| 86 |
openvt -l /bin/sh |
|---|
| 87 |
openvt -l /bin/sh |
|---|
| 88 |
openvt -l /bin/sh |
|---|
| 89 |
openvt -l /bin/sh |
|---|
| 90 |
openvt -l /bin/sh |
|---|
| 91 |
openvt -l /bin/sh /sbin/wait-for-petris |
|---|
| 92 |
openvt -l /usr/bin/tail -f $LOGFILE |
|---|
| 93 |
|
|---|
| 94 |
|
|---|
| 95 |
|
|---|
| 96 |
|
|---|
| 97 |
for i in `cat /proc/cmdline` ; do |
|---|
| 98 |
echo $i | grep -qi serial= && serial=`echo $i | cut -d= -f2` |
|---|
| 99 |
done |
|---|
| 100 |
|
|---|
| 101 |
if [ -f $serial ]; then |
|---|
| 102 |
LogIt "Redirecting serial $serial to /dev/tty" 1 |
|---|
| 103 |
ln -s -f $serial /dev/tty |
|---|
| 104 |
fi |
|---|
| 105 |
} |
|---|
| 106 |
|
|---|
| 107 |
|
|---|
| 108 |
LoadKeymap() { |
|---|
| 109 |
local fname |
|---|
| 110 |
fname=`cat $MINDI_CACHE/KEYMAP-LIVES-HERE 2> /dev/null` |
|---|
| 111 |
[ "$fname" = "" ] && return |
|---|
| 112 |
if which loadkeys > /dev/null 2> /dev/null ; then |
|---|
| 113 |
loadkeys $fname |
|---|
| 114 |
else |
|---|
| 115 |
LogIt "Using default keyboard map." 1 |
|---|
| 116 |
fi |
|---|
| 117 |
} |
|---|
| 118 |
|
|---|
| 119 |
|
|---|
| 120 |
UntarTapeStuff() { |
|---|
| 121 |
local old_pwd res |
|---|
| 122 |
old_pwd=`pwd` |
|---|
| 123 |
cd $GROOVY |
|---|
| 124 |
[ "$1" != "" ] && tapedev=$1 |
|---|
| 125 |
[ ! "$tapedev" ] && tapedev=`grep media-dev $MINDI_CACHE/mondorestore.cfg 2>/dev/null | tr -s ' ' ' ' | cut -d' ' -f2` |
|---|
| 126 |
mt -f $tapedev rewind |
|---|
| 127 |
mt -f $tapedev fsf 2 |
|---|
| 128 |
dd if=$tapedev bs=32k count=1024 | tar -zx |
|---|
| 129 |
res=$? |
|---|
| 130 |
if [ "$res" -eq "0" ] ; then |
|---|
| 131 |
|
|---|
| 132 |
if [ -f "$MINDI_CACHE/mondorestore.cfg" ]; then |
|---|
| 133 |
sed -i "s/^media-dev .*$/media-dev $tapedev/" $MINDI_CACHE/mondorestore.cfg |
|---|
| 134 |
fi |
|---|
| 135 |
fi |
|---|
| 136 |
cd $old_pwd |
|---|
| 137 |
return $res |
|---|
| 138 |
} |
|---|
| 139 |
|
|---|
| 140 |
HandleTape() { |
|---|
| 141 |
local res tapedev |
|---|
| 142 |
tapedev="" ; |
|---|
| 143 |
|
|---|
| 144 |
|
|---|
| 145 |
modprobe -q usb-storage |
|---|
| 146 |
|
|---|
| 147 |
sleep 10 |
|---|
| 148 |
UntarTapeStuff $tapedev |
|---|
| 149 |
res=$? |
|---|
| 150 |
while [ "$res" -ne "0" ] ; do |
|---|
| 151 |
LogIt "$tapedev failed to act as extended data disk for booting." 1 |
|---|
| 152 |
LogIt "Please specify an alternate tape device," 1 |
|---|
| 153 |
LogIt "or hit <Enter> to boot from another media." 1 |
|---|
| 154 |
echo -en "---> " |
|---|
| 155 |
read tapedev |
|---|
| 156 |
if [ "$tapedev" ] ; then |
|---|
| 157 |
LogIt "User specified $tapedev instead" |
|---|
| 158 |
UntarTapeStuff $tapedev |
|---|
| 159 |
res=$? |
|---|
| 160 |
else |
|---|
| 161 |
LogIt "User opted not to specify an alternate tapedev" |
|---|
| 162 |
res=1 |
|---|
| 163 |
break |
|---|
| 164 |
fi |
|---|
| 165 |
done |
|---|
| 166 |
|
|---|
| 167 |
export TAPEDEV=$tapedev |
|---|
| 168 |
|
|---|
| 169 |
if [ "$res" -ne "0" ] ; then |
|---|
| 170 |
LogIt "Failed to use tape as extended datadisk. Reverting to another media." 1 |
|---|
| 171 |
HandleCDROM |
|---|
| 172 |
res=$? |
|---|
| 173 |
else |
|---|
| 174 |
LogIt "Using tape as extended datadisk. Good." 3 |
|---|
| 175 |
echo "Using tape as extd ddisk." > /tmp/TAPEDEV-HAS-DATA-DISKS |
|---|
| 176 |
res=0 |
|---|
| 177 |
CD_MOUNTED_OK=yes |
|---|
| 178 |
fi |
|---|
| 179 |
return $res |
|---|
| 180 |
} |
|---|
| 181 |
|
|---|
| 182 |
|
|---|
| 183 |
|
|---|
| 184 |
HandleCDROM() { |
|---|
| 185 |
|
|---|
| 186 |
echo "$DENY_MODS" | grep -q "usb-storage " |
|---|
| 187 |
if [ $? -eq 0 ]; then |
|---|
| 188 |
return |
|---|
| 189 |
fi |
|---|
| 190 |
echo "Activating a potential USB Storage device" |
|---|
| 191 |
modprobe -q usb-storage |
|---|
| 192 |
for i in 1 2 3 4 5 6 7 8 9 10 ; do |
|---|
| 193 |
sleep 1 |
|---|
| 194 |
echo -en "." |
|---|
| 195 |
done |
|---|
| 196 |
|
|---|
| 197 |
find-and-mount-cdrom |
|---|
| 198 |
res=$? |
|---|
| 199 |
if [ "$res" -ne "0" ] ; then |
|---|
| 200 |
LogIt "First call to find-and-mount-cdrom failed." 1 |
|---|
| 201 |
LogIt "Sleeping for 3 seconds and trying again." 1 |
|---|
| 202 |
sleep 3 |
|---|
| 203 |
find-and-mount-cdrom |
|---|
| 204 |
res=$? |
|---|
| 205 |
fi |
|---|
| 206 |
if [ "$res" -eq "0" ] ; then |
|---|
| 207 |
LogIt "OK, I am running on a CD-ROM. Good." 3 |
|---|
| 208 |
CD_MOUNTED_OK=yes |
|---|
| 209 |
else |
|---|
| 210 |
LogIt "You probably not have the right drivers" 3 |
|---|
| 211 |
LogIt "to support the hardware on which we are running" 3 |
|---|
| 212 |
LogIt "Your archives are probably fine but" 3 |
|---|
| 213 |
LogIt "your tape streamer and/or CD-ROM drive are unsupported at that point." 3 |
|---|
| 214 |
CD_MOUNTED_OK="" |
|---|
| 215 |
fi |
|---|
| 216 |
return 0 |
|---|
| 217 |
} |
|---|
| 218 |
|
|---|
| 219 |
|
|---|
| 220 |
|
|---|
| 221 |
|
|---|
| 222 |
RunDevfsd() { |
|---|
| 223 |
loc=`which devfsd 2> /dev/null` |
|---|
| 224 |
if [ "$loc" != "" ] ; then |
|---|
| 225 |
LogIt "Devfs found. Testing kernel support..." |
|---|
| 226 |
if [ ! -e "/dev/.devfsd" ] ; then |
|---|
| 227 |
mount -t devfs devfs /dev 2>> $LOGFILE |
|---|
| 228 |
if [ "$?" -ne "0" ] ; then |
|---|
| 229 |
LogIt "Error while trying to mount devfs" |
|---|
| 230 |
else |
|---|
| 231 |
LogIt "Devfs mounted OK" |
|---|
| 232 |
fi |
|---|
| 233 |
fi |
|---|
| 234 |
|
|---|
| 235 |
if [ -e "/dev/.devfsd" ] ; then |
|---|
| 236 |
[ -d "/proc/1" ] || mount -n /proc |
|---|
| 237 |
LogIt "Kernel support found. Creating config file and starting devfsd" |
|---|
| 238 |
conffile=`strings $loc | grep -E "devfsd.conf$"` |
|---|
| 239 |
[ "$conffile" ] || conffile="/etc/devfsd.conf" |
|---|
| 240 |
confpath=`echo $conffile | sed "s/\/devfsd\.conf$//"` |
|---|
| 241 |
[ -d "$confpath" ] || mkdir -p $confpath |
|---|
| 242 |
echo -en "REGISTER .* MKOLDCOMPAT\nUNREGISTER .* RMOLDCOMPAT\n" > $conffile |
|---|
| 243 |
devfsd /dev & |
|---|
| 244 |
sleep 5 |
|---|
| 245 |
else |
|---|
| 246 |
LogIt "No devfs kernel support." |
|---|
| 247 |
fi |
|---|
| 248 |
fi |
|---|
| 249 |
} |
|---|
| 250 |
|
|---|
| 251 |
|
|---|
| 252 |
make_extra_nodes () { |
|---|
| 253 |
|
|---|
| 254 |
|
|---|
| 255 |
grep '^[^ |
|---|
| 256 |
while read type name arg1; do |
|---|
| 257 |
[ "$type" -a "$name" -a ! -e "/dev/$name" -a ! -L "/dev/$name" ] ||continue |
|---|
| 258 |
case "$type" in |
|---|
| 259 |
L) ln -s $arg1 /dev/$name ;; |
|---|
| 260 |
D) mkdir -p /dev/$name ;; |
|---|
| 261 |
M) mknod /dev/$name $arg1 && chmod 600 /dev/$name;; |
|---|
| 262 |
*) echo "udev-links.conf: unparseable line (%s %s %s)\n" "$type" "$name" "$arg1" ;; |
|---|
| 263 |
esac |
|---|
| 264 |
done |
|---|
| 265 |
} |
|---|
| 266 |
|
|---|
| 267 |
create_dev_makedev() { |
|---|
| 268 |
if [ -e /sbin/MAKEDEV ]; then |
|---|
| 269 |
ln -sf /sbin/MAKEDEV /dev/MAKEDEV |
|---|
| 270 |
else |
|---|
| 271 |
ln -sf /bin/true /dev/MAKEDEV |
|---|
| 272 |
fi |
|---|
| 273 |
} |
|---|
| 274 |
|
|---|
| 275 |
RunUdevd() { |
|---|
| 276 |
|
|---|
| 277 |
echo "Preparing udev environment..." |
|---|
| 278 |
mv /dev /dev.static |
|---|
| 279 |
mkdir /dev |
|---|
| 280 |
mount -n -o size=5M,mode=0755 -t tmpfs none /dev |
|---|
| 281 |
make_extra_nodes |
|---|
| 282 |
mount -n -t devpts -o mode=620 none /dev/pts |
|---|
| 283 |
mount -n -t tmpfs none /dev/shm |
|---|
| 284 |
if [ -e /proc/sys/kernel/hotplug ]; then |
|---|
| 285 |
echo > /proc/sys/kernel/hotplug |
|---|
| 286 |
fi |
|---|
| 287 |
PKLVL=`cut -f1 /proc/sys/kernel/printk` |
|---|
| 288 |
echo 0 > /proc/sys/kernel/printk |
|---|
| 289 |
|
|---|
| 290 |
if [ -x /sbin/startudev ]; then |
|---|
| 291 |
/sbin/startudev |
|---|
| 292 |
elif [ -x /sbin/start_udev ]; then |
|---|
| 293 |
/sbin/start_udev |
|---|
| 294 |
fi |
|---|
| 295 |
|
|---|
| 296 |
ps | grep udevd 2> /dev/null 1> /dev/null |
|---|
| 297 |
if [ $? -ne 0 ]; then |
|---|
| 298 |
/sbin/udevd --daemon & |
|---|
| 299 |
echo "Waiting for udev to start..." |
|---|
| 300 |
sleep 5 |
|---|
| 301 |
fi |
|---|
| 302 |
mkdir -p /dev/.udev/queue/ |
|---|
| 303 |
if [ -x /sbin/udevtrigger ]; then |
|---|
| 304 |
/sbin/udevtrigger |
|---|
| 305 |
fi |
|---|
| 306 |
echo "Waiting for udev to discover..." |
|---|
| 307 |
create_dev_makedev |
|---|
| 308 |
|
|---|
| 309 |
if [ -x /sbin/udevsettle ]; then |
|---|
| 310 |
/sbin/udevsettle --timeout=10 |
|---|
| 311 |
elif [ -x /sbin/udevadm ]; then |
|---|
| 312 |
/sbin/udevadm trigger |
|---|
| 313 |
/sbin/udevadm settle --timeout=10 |
|---|
| 314 |
fi |
|---|
| 315 |
|
|---|
| 316 |
|
|---|
| 317 |
|
|---|
| 318 |
for d in `ls /dev.static`; do |
|---|
| 319 |
if [ ! -e /dev/$d ]; then |
|---|
| 320 |
mv /dev.static/$d /dev |
|---|
| 321 |
fi |
|---|
| 322 |
done |
|---|
| 323 |
rm -rf /dev.static |
|---|
| 324 |
echo $PKLVL > /proc/sys/kernel/printk |
|---|
| 325 |
} |
|---|
| 326 |
|
|---|
| 327 |
RstHW() { |
|---|
| 328 |
|
|---|
| 329 |
|
|---|
| 330 |
answer="NO" |
|---|
| 331 |
|
|---|
| 332 |
grep -q nohw $CMDLINE |
|---|
| 333 |
if [ "$?" -eq 0 ]; then |
|---|
| 334 |
return |
|---|
| 335 |
fi |
|---|
| 336 |
if [ -x $MINDI_CACHE/mindi-rsthw ]; then |
|---|
| 337 |
grep -q RESTORE $CMDLINE |
|---|
| 338 |
if [ "$?" -ne 0 ]; then |
|---|
| 339 |
echo "*********************************************************************" |
|---|
| 340 |
echo "Do you want to restore the HW configuration of the original machine ?" |
|---|
| 341 |
echo "(This may dammage your hardware so be sure to check twice before saying yes)" |
|---|
| 342 |
echo "*********************************************************************" |
|---|
| 343 |
echo "Please confirm by typing YES exactly as written here (NO by default)" |
|---|
| 344 |
echo -n "--> " |
|---|
| 345 |
read answer |
|---|
| 346 |
else |
|---|
| 347 |
answer="YES" |
|---|
| 348 |
fi |
|---|
| 349 |
if [ "$answer" = "YES" ] ; then |
|---|
| 350 |
$MINDI_CACHE/mindi-rsthw |
|---|
| 351 |
fi |
|---|
| 352 |
fi |
|---|
| 353 |
} |
|---|
| 354 |
|
|---|
| 355 |
|
|---|
| 356 |
|
|---|
| 357 |
|
|---|
| 358 |
|
|---|
| 359 |
|
|---|
| 360 |
|
|---|
| 361 |
|
|---|
| 362 |
|
|---|
| 363 |
|
|---|
| 364 |
|
|---|
| 365 |
|
|---|
| 366 |
|
|---|
| 367 |
StartUSBKbd() { |
|---|
| 368 |
|
|---|
| 369 |
[ -d /proc/bus/usb ] && ! grep -q /proc/bus/usb /proc/mounts && mount -t usbfs none /proc/bus/usb |
|---|
| 370 |
echo "$DENY_MODS" | grep -Eq 'uhcd_hci |usbhid |usbcore ' |
|---|
| 371 |
if [ $? -eq 0 ]; then |
|---|
| 372 |
return |
|---|
| 373 |
fi |
|---|
| 374 |
modprobe -q uhcd_hci |
|---|
| 375 |
modprobe -q usbhid |
|---|
| 376 |
} |
|---|
| 377 |
|
|---|
| 378 |
|
|---|
| 379 |
|
|---|
| 380 |
StartLvms() { |
|---|
| 381 |
if [ "`grep -i nolvm /proc/cmdline`" ]; then |
|---|
| 382 |
return; |
|---|
| 383 |
fi |
|---|
| 384 |
if [ -e "/tmp/i-want-my-lvm" ] ; then |
|---|
| 385 |
LogIt "Scanning LVM's..." 1 |
|---|
| 386 |
if which lvm ; then |
|---|
| 387 |
modprobe -q dm-mod |
|---|
| 388 |
modprobe -q dm_mod |
|---|
| 389 |
lvm vgscan --mknodes |
|---|
| 390 |
else |
|---|
| 391 |
vgscan |
|---|
| 392 |
fi |
|---|
| 393 |
|
|---|
| 394 |
|
|---|
| 395 |
rm -f /tmp/restorevgs |
|---|
| 396 |
for d in $MINDI_EXCLUDE_DEVS ; do |
|---|
| 397 |
echo "LVM exclusion == $d" |
|---|
| 398 |
EXCLUDE_VGS=`grep " $d" /tmp/i-want-my-lvm | grep vgcreate | awk '{print $4}'` |
|---|
| 399 |
vg=`echo $EXCLUDE_VGS | sed "s/ /|/g"` |
|---|
| 400 |
if [ "$vg" != "" ]; then |
|---|
| 401 |
re=" $d|$vg" |
|---|
| 402 |
else |
|---|
| 403 |
re=" $d" |
|---|
| 404 |
fi |
|---|
| 405 |
|
|---|
| 406 |
grep -Ev "$re" /tmp/i-want-my-lvm > /tmp/i-want-my-lvm.new |
|---|
| 407 |
mv /tmp/i-want-my-lvm.new /tmp/i-want-my-lvm |
|---|
| 408 |
|
|---|
| 409 |
for v in $EXCLUDE_VGS; do |
|---|
| 410 |
echo "vgcfgrestore $v" >> /tmp/restorevgs |
|---|
| 411 |
|
|---|
| 412 |
EXCLUDE_LVS=`grep " $v" /tmp/i-want-my-lvm | grep lvcreate | sed "s/^.*-n \([^ ][^ ]*\) .*$/$1/"` |
|---|
| 413 |
for l in $EXCLUDE_LVS; do |
|---|
| 414 |
|
|---|
| 415 |
grep -Ev "/dev/$v/$l" $MINDI_CACHE/mountlist.txt > $MINDI_CACHE/mountlist.txt.new |
|---|
| 416 |
grep -Ev "/dev/mapper/${v}-$l" $MINDI_CACHE/mountlist.txt.new > $MINDI_CACHE/mountlist.txt |
|---|
| 417 |
done |
|---|
| 418 |
done |
|---|
| 419 |
done |
|---|
| 420 |
|
|---|
| 421 |
grep -E "^#.*vgchange" /tmp/i-want-my-lvm | sed "s/^#[ ]*//" > /tmp/start-lvm |
|---|
| 422 |
chmod +x /tmp/start-lvm |
|---|
| 423 |
echo -en "Starting LVM's..." |
|---|
| 424 |
/tmp/start-lvm & |
|---|
| 425 |
for i in 1 2 3 4 5 ; do |
|---|
| 426 |
echo -en "." |
|---|
| 427 |
sleep 1 |
|---|
| 428 |
done |
|---|
| 429 |
rm -f /tmp/start-lvm |
|---|
| 430 |
echo "Done." |
|---|
| 431 |
fi |
|---|
| 432 |
|
|---|
| 433 |
|
|---|
| 434 |
LogIt "LVM's have been started." |
|---|
| 435 |
} |
|---|
| 436 |
|
|---|
| 437 |
StartPowerPath() { |
|---|
| 438 |
|
|---|
| 439 |
|
|---|
| 440 |
if [ -f /etc/emcp_devicesDB.dat ]; then |
|---|
| 441 |
if [ -f /etc/emcp_devicesDB.idx ]; then |
|---|
| 442 |
/etc/opt/emcpower/emcpmgr map -p > /dev/null 2>&1 |
|---|
| 443 |
fi |
|---|
| 444 |
fi |
|---|
| 445 |
|
|---|
| 446 |
/sbin/powermt config > /dev/null 2>&1 |
|---|
| 447 |
|
|---|
| 448 |
|
|---|
| 449 |
pdfound=1 |
|---|
| 450 |
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do |
|---|
| 451 |
pdfound=1 |
|---|
| 452 |
for pd in `/bin/ls -d /sys/block/emcpower* 2> /dev/null`; do |
|---|
| 453 |
bpd=`basename $pd` |
|---|
| 454 |
if [ ! -e /dev/$bpd ]; then |
|---|
| 455 |
pdfound=0 |
|---|
| 456 |
sleep 2 |
|---|
| 457 |
break; |
|---|
| 458 |
fi |
|---|
| 459 |
done |
|---|
| 460 |
if [ "$pdfound" -eq 1 ]; then |
|---|
| 461 |
break |
|---|
| 462 |
fi |
|---|
| 463 |
done |
|---|
| 464 |
if [ "$pdfound" -eq 0 ]; then |
|---|
| 465 |
echo "Unable to start PowerPath" |
|---|
| 466 |
fi |
|---|
| 467 |
|
|---|
| 468 |
/sbin/powermt load > /dev/null 2>&1 |
|---|
| 469 |
/etc/opt/emcpower/emcpmgr map > /dev/null 2>&1 |
|---|
| 470 |
/etc/opt/emcpower/powercf -C > /dev/null 2>&1 |
|---|
| 471 |
if [ ! -e /etc/powermt.custom ]; then |
|---|
| 472 |
/sbin/powermt save > /dev/null 2>&1 |
|---|
| 473 |
fi |
|---|
| 474 |
/sbin/powermt register > /dev/null 2>&1 |
|---|
| 475 |
/sbin/powermig transition -startup -noprompt > /dev/null 2>&1 |
|---|
| 476 |
} |
|---|
| 477 |
|
|---|
| 478 |
StartMpath() { |
|---|
| 479 |
if [ "`grep -i nompath $CMDLINE`" ]; then |
|---|
| 480 |
return; |
|---|
| 481 |
fi |
|---|
| 482 |
if [ "`grep mpath $MINDI_CACHE/mountlist.txt`" ]; then |
|---|
| 483 |
if [ -x /sbin/multipath ]; then |
|---|
| 484 |
echo "Starting Mpath..." |
|---|
| 485 |
mkdir -p /var/lib/multipath |
|---|
| 486 |
cat > /etc/multipath.conf << EOF |
|---|
| 487 |
defaults { |
|---|
| 488 |
user_friendly_names yes |
|---|
| 489 |
} |
|---|
| 490 |
EOF |
|---|
| 491 |
/sbin/multipath -v 0 |
|---|
| 492 |
if [ -x /sbin/kpartx ]; then |
|---|
| 493 |
/sbin/dmsetup ls --target multipath --exec "/sbin/kpartx -a -p p" |
|---|
| 494 |
fi |
|---|
| 495 |
fi |
|---|
| 496 |
fi |
|---|
| 497 |
} |
|---|
| 498 |
|
|---|
| 499 |
StartRaids() { |
|---|
| 500 |
local raid_devices i |
|---|
| 501 |
|
|---|
| 502 |
if [ "`grep -i noraid /proc/cmdline`" ]; then |
|---|
| 503 |
return; |
|---|
| 504 |
fi |
|---|
| 505 |
|
|---|
| 506 |
raid_devices=`grep /dev/md $MINDI_CACHE/mountlist.txt | cut -d' ' -f1` |
|---|
| 507 |
if which raidstart > /dev/null 2> /dev/null ; then |
|---|
| 508 |
for i in $raid_devices ; do |
|---|
| 509 |
if grep `basename $i` /proc/mdstat > /dev/null 2> /dev/null ; then |
|---|
| 510 |
LogIt "$i is started already; no need to run 'raidstart $i'" 1 |
|---|
| 511 |
else |
|---|
| 512 |
LogIt "Running 'raidstart $i'" 1 |
|---|
| 513 |
raidstart $i |
|---|
| 514 |
fi |
|---|
| 515 |
done |
|---|
| 516 |
elif which mdrun > /dev/null 2> /dev/null ; then |
|---|
| 517 |
if [ "`grep -i nomd /proc/cmdline`" ]; then |
|---|
| 518 |
return; |
|---|
| 519 |
fi |
|---|
| 520 |
LogIt "Running 'mdrun'" 1 |
|---|
| 521 |
mdrun |
|---|
| 522 |
elif which mdadm > /dev/null 2> /dev/null ; then |
|---|
| 523 |
if [ "`grep -i nomd /proc/cmdline`" ]; then |
|---|
| 524 |
return; |
|---|
| 525 |
fi |
|---|
| 526 |
LogIt "Running 'mdadm'" 1 |
|---|
| 527 |
for i in $raid_devices ; do |
|---|
| 528 |
if grep `basename $i` /proc/mdstat > /dev/null 2> /dev/null ; then |
|---|
| 529 |
LogIt "$i is started already; no need to run 'mdadm $i'" 1 |
|---|
| 530 |
else |
|---|
| 531 |
if [ -f /etc/mdadm.conf ] ; then |
|---|
| 532 |
LogIt "Running 'mdadm $i' with user supplied /etc/mdadm.conf" 1 |
|---|
| 533 |
mdadm -A $i -c /etc/mdadm.conf |
|---|
| 534 |
elif [ -f /etc/mdadm/mdadm.conf ] ; then |
|---|
| 535 |
LogIt "Running 'mdadm $i' with user supplied /etc/mdadm/mdadm.conf" 1 |
|---|
| 536 |
mdadm -A $i -c /etc/mdadm/mdadm.conf |
|---|
| 537 |
else |
|---|
| 538 |
LogIt "Running 'mdadm $i'" 1 |
|---|
| 539 |
mdadm -Ac partitions -m dev $i |
|---|
| 540 |
fi |
|---|
| 541 |
fi |
|---|
| 542 |
done |
|---|
| 543 |
elif which dmraid > /dev/null 2> /dev/null ; then |
|---|
| 544 |
if [ "`grep -i nodmraid $CMDLINE`" ]; then |
|---|
| 545 |
return; |
|---|
| 546 |
fi |
|---|
| 547 |
for x in $(/sbin/dmraid -ay -i -p -t 2>/dev/null | grep -E -iv "^no " |awk -F ':' '{ print $1 }') ; do |
|---|
| 548 |
echo "Please send the result of /sbin/dmraid -ay -i -p -t to the devteam !!!" |
|---|
| 549 |
return |
|---|
| 550 |
|
|---|
| 551 |
|
|---|
| 552 |
|
|---|
| 553 |
|
|---|
| 554 |
done |
|---|
| 555 |
else |
|---|
| 556 |
LogIt "Warning: Neither 'raidstart' nor 'mdrun''found. RAID devices may not have started." 1 |
|---|
| 557 |
fi |
|---|
| 558 |
|
|---|
| 559 |
} |
|---|
| 560 |
|
|---|
| 561 |
|
|---|
| 562 |
TryAgainToFindCD() { |
|---|
| 563 |
local res |
|---|
| 564 |
mount | grep /mnt/cdrom && return 0 |
|---|
| 565 |
[ "`grep "backup_media_type" $MINDI_CACHE/mondorestore.cfg 2> /dev/null | grep "cdstream"`" ] && return |
|---|
| 566 |
LogIt "Trying to mount CD-ROM a 2nd time..." |
|---|
| 567 |
find-and-mount-cdrom --second-try |
|---|
| 568 |
res=$? |
|---|
| 569 |
if [ "$res" -eq "0" ] ; then |
|---|
| 570 |
CD_MOUNTED_OK=yes |
|---|
| 571 |
LogIt "CD-ROM drive mounted successfully." 1 |
|---|
| 572 |
else |
|---|
| 573 |
LogIt "I still cannot find or mount the CD-ROM drive, by the way." |
|---|
| 574 |
fi |
|---|
| 575 |
} |
|---|
| 576 |
|
|---|
| 577 |
|
|---|
| 578 |
|
|---|
| 579 |
UseTmpfs() |
|---|
| 580 |
{ |
|---|
| 581 |
local mount_cmd |
|---|
| 582 |
echo -en "Mounting /tmp/tmpfs..." |
|---|
| 583 |
mkdir -p /tmp/tmpfs |
|---|
| 584 |
|
|---|
| 585 |
|
|---|
| 586 |
for size in 128m 64m 48m 40m 32m ; do |
|---|
| 587 |
mount_cmd="mount /dev/shm -t tmpfs -o size=$size" ; |
|---|
| 588 |
LogIt "Trying '$mount_cmd'" |
|---|
| 589 |
$mount_cmd /tmp/tmpfs 2>> $LOGFILE |
|---|
| 590 |
res=$? |
|---|
| 591 |
[ "$res" -eq "0" ] && break |
|---|
| 592 |
done |
|---|
| 593 |
if [ "$res" -ne "0" ] ; then |
|---|
| 594 |
LogIt "Failed. I could not run '$mount_cmd /tmp/tmpfs'. Your kernel is BROKEN or you do not have enough RAM." 1 |
|---|
| 595 |
umount /tmp/tmpfs > /dev/null 2> /dev/null |
|---|
| 596 |
rmdir /tmp/tmpfs |
|---|
| 597 |
ln -sf /mnt/RESTORING/tmp /tmp/tmpfs; |
|---|
| 598 |
LogIt "Failed to mount /tmp/tmpfs; using ugly softlink instead" |
|---|
| 599 |
else |
|---|
| 600 |
LogIt "Great. Pivot succeeded w/ size=$size" 1 |
|---|
| 601 |
echo -en "Pivoting /tmp..." |
|---|
| 602 |
umount /tmp/tmpfs |
|---|
| 603 |
mkdir -p /tmp.old |
|---|
| 604 |
mv /tmp/* /tmp.old/ |
|---|
| 605 |
rm -f /tmp/* |
|---|
| 606 |
$mount_cmd /tmp |
|---|
| 607 |
mv /tmp.old/* /tmp/ |
|---|
| 608 |
rm -rf /tmp.old |
|---|
| 609 |
mkdir -p /tmp/tmpfs |
|---|
| 610 |
echo "Done." |
|---|
| 611 |
LogIt "Successfully mounted dynamic /tmp ramdisk" |
|---|
| 612 |
fi |
|---|
| 613 |
} |
|---|
| 614 |
|
|---|
| 615 |
|
|---|
| 616 |
WelcomeMessage() |
|---|
| 617 |
{ |
|---|
| 618 |
echo "********************************************************************" |
|---|
| 619 |
echo "MINDI-LINUX by Mondo Dev Team - web site: http://www.mondorescue.org" |
|---|
| 620 |
echo "Boot disk based on AlfaLinux & Trinux. BusyBox by Erik Andersen." |
|---|
| 621 |
which petris > /dev/null 2> /dev/null && echo "Petris was written by Peter Seidler <p.seidler@mail1.stofanet.dk>." |
|---|
| 622 |
echo "Executables and source code are covered by the GNU GPL. No warranty." |
|---|
| 623 |
echo "running on $ARCH" |
|---|
| 624 |
echo "********************************************************************" |
|---|
| 625 |
} |
|---|
| 626 |
|
|---|
| 627 |
|
|---|
| 628 |
EnableCcissIfAppropriate() { |
|---|
| 629 |
local i fname |
|---|
| 630 |
for i in 0 1 2 3 ; do |
|---|
| 631 |
fname="/proc/driver/cciss/cciss$i" |
|---|
| 632 |
if [ -e "$fname" ] ; then |
|---|
| 633 |
LogIt "Engaging $fname" |
|---|
| 634 |
echo "engage scsi" > $fname |
|---|
| 635 |
LogIt "...result=$?" |
|---|
| 636 |
fi |
|---|
| 637 |
done |
|---|
| 638 |
} |
|---|
| 639 |
|
|---|
| 640 |
ModprobeAllModules() { |
|---|
| 641 |
|
|---|
| 642 |
lismod=`find /lib/modules -name '*\.ko*' -o -name '*\.o*'` |
|---|
| 643 |
|
|---|
| 644 |
for m in $lismod; do |
|---|
| 645 |
k=`basename $m | sed 's/\.ko.*$//'` |
|---|
| 646 |
j=`basename $k | sed 's/\.o.*$//'` |
|---|
| 647 |
echo "$FORCE_MODS" | grep -q "$j " |
|---|
| 648 |
if [ $? -eq 0 ]; then |
|---|
| 649 |
echo "Forcing first $j..." |
|---|
| 650 |
modprobe -q $j |
|---|
| 651 |
fi |
|---|
| 652 |
done |
|---|
| 653 |
for m in $lismod; do |
|---|
| 654 |
k=`basename $m | sed 's/\.ko.*$//'` |
|---|
| 655 |
j=`basename $k | sed 's/\.o.*$//'` |
|---|
| 656 |
echo "$DENY_MODS" | grep -q "$j " |
|---|
| 657 |
if [ $? -eq 0 ]; then |
|---|
| 658 |
echo "Denying $j..." |
|---|
| 659 |
continue |
|---|
| 660 |
fi |
|---|
| 661 |
echo "$FORCE_MODS" | grep -q "$j " |
|---|
| 662 |
if [ $? -eq 0 ]; then |
|---|
| 663 |
continue |
|---|
| 664 |
fi |
|---|
| 665 |
echo "Probing $j..." |
|---|
| 666 |
modprobe -q $j |
|---|
| 667 |
done |
|---|
| 668 |
} |
|---|
| 669 |
|
|---|
| 670 |
ExtractDataDisksAndLoadModules() { |
|---|
| 671 |
echo "Installing additional tools ..." |
|---|
| 672 |
install-additional-tools |
|---|
| 673 |
|
|---|
| 674 |
PKLVL=`cut -f1 /proc/sys/kernel/printk` |
|---|
| 675 |
echo 0 > /proc/sys/kernel/printk |
|---|
| 676 |
ModprobeAllModules |
|---|
| 677 |
echo $PKLVL > /proc/sys/kernel/printk |
|---|
| 678 |
|
|---|
| 679 |
|
|---|
| 680 |
|
|---|
| 681 |
if [ -e "$MINDI_CACHE/USE-UDEV" ] ; then |
|---|
| 682 |
if [ -x /sbin/udevadm ]; then |
|---|
| 683 |
/sbin/udevadm trigger --retry-failed |
|---|
| 684 |
fi |
|---|
| 685 |
fi |
|---|
| 686 |
} |
|---|
| 687 |
|
|---|
| 688 |
|
|---|
| 689 |
|
|---|
| 690 |
MINDI_VER=PBVER |
|---|
| 691 |
MINDI_REV=PBREV |
|---|
| 692 |
trap CaughtSoftReset SIGTERM |
|---|
| 693 |
LOGFILE=/var/log/mondorestore.log |
|---|
| 694 |
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/mondo:/usr/games |
|---|
| 695 |
GROOVY=$MINDI_CACHE/groovy-stuff |
|---|
| 696 |
USER=root |
|---|
| 697 |
ARCH=`uname -m` |
|---|
| 698 |
|
|---|
| 699 |
export PATH GROOVY USER LOGFILE ARCH |
|---|
| 700 |
|
|---|
| 701 |
echo "Welcome to init (from mindi ${MINDI_VER}-r${MINDI_REV})" |
|---|
| 702 |
|
|---|
| 703 |
mount -o remount rw / |
|---|
| 704 |
[ ! "$GROOVY" ] && Die "I'm not groovy!" |
|---|
| 705 |
for i in /mnt/cdrom /mnt/isodir /var/local/petris /tmp/isodir; do |
|---|
| 706 |
mkdir -p $i |
|---|
| 707 |
done |
|---|
| 708 |
|
|---|
| 709 |
mount /proc/ /proc -v -t proc |
|---|
| 710 |
mkdir /sys 2> /dev/null |
|---|
| 711 |
mount /sys/ /sys -v -t sysfs 2>> $LOGFILE |
|---|
| 712 |
|
|---|
| 713 |
[ -d /proc/vmware ] && ! grep -q /vmfs /proc/mounts && mount -t vmfs /vmfs /vmfs |
|---|
| 714 |
rm -f /foozero |
|---|
| 715 |
|
|---|
| 716 |
if [ "`grep -i denymods $CMDLINE`" ]; then |
|---|
| 717 |
export DENY_MODS="`cat $CMDLINE | sed 's~.*denymods=\"\(.*\)\".*~\1~'` mondonone" |
|---|
| 718 |
else |
|---|
| 719 |
export DENY_MODS=" " |
|---|
| 720 |
fi |
|---|
| 721 |
if [ "`grep -i 'obdr ' $MINDI_CACHE/mondorestore.cfg 2> /dev/null`" ]; then |
|---|
| 722 |
|
|---|
| 723 |
export DENY_MODS="usb-storage $DENY_MODS" |
|---|
| 724 |
fi |
|---|
| 725 |
if [ "`grep -i forcemods $CMDLINE`" ]; then |
|---|
| 726 |
export FORCE_MODS="`cat $CMDLINE | sed 's~.*forcemods=\"\(.*\)\".*~\1~'` mondonone" |
|---|
| 727 |
else |
|---|
| 728 |
export FORCE_MODS=" " |
|---|
| 729 |
fi |
|---|
| 730 |
if [ "`grep -i excludedevs /proc/cmdline`" ]; then |
|---|
| 731 |
export MINDI_EXCLUDE_DEVS="`cat /proc/cmdline | sed 's~.*excludedevs=\"\(.*\)\".*~\1~'` mondonone" |
|---|
| 732 |
for d in $MINDI_EXCLUDE_DEVS ; do |
|---|
| 733 |
echo "Mountlist exclusion == $d" |
|---|
| 734 |
perl -i -ne 'print $_ unless m~$d~' $MINDI_CACHE/mountlist.txt |
|---|
| 735 |
done |
|---|
| 736 |
else |
|---|
| 737 |
export MINDI_EXCLUDE_DEVS=" " |
|---|
| 738 |
fi |
|---|
| 739 |
|
|---|
| 740 |
echo "Activating a potential USB keyboard/mouse" |
|---|
| 741 |
StartUSBKbd |
|---|
| 742 |
|
|---|
| 743 |
if [ -f /proc/sys/kernel/exec-shield ]; then |
|---|
| 744 |
echo 0 > /proc/sys/kernel/exec-shield 2>> /dev/null |
|---|
| 745 |
fi |
|---|
| 746 |
|
|---|
| 747 |
if [ -f /proc/modules ]; then |
|---|
| 748 |
echo "/sbin/modprobe" > /proc/sys/kernel/modprobe |
|---|
| 749 |
fi |
|---|
| 750 |
|
|---|
| 751 |
if [ -e "$MINDI_CACHE/USE-UDEV" ] ; then |
|---|
| 752 |
RunUdevd |
|---|
| 753 |
fi |
|---|
| 754 |
ExtractDevTarballs |
|---|
| 755 |
LaunchTerminals |
|---|
| 756 |
|
|---|
| 757 |
|
|---|
| 758 |
PKLVL=`cut -f1 /proc/sys/kernel/printk` |
|---|
| 759 |
echo 0 > /proc/sys/kernel/printk |
|---|
| 760 |
ModprobeAllModules |
|---|
| 761 |
echo $PKLVL > /proc/sys/kernel/printk |
|---|
| 762 |
|
|---|
| 763 |
EnableCcissIfAppropriate |
|---|
| 764 |
|
|---|
| 765 |
|
|---|
| 766 |
|
|---|
| 767 |
UseTmpfs |
|---|
| 768 |
if [ ! -e "$MINDI_CACHE/mondorestore.cfg" ] ; then |
|---|
| 769 |
LogIt "Warning - $MINDI_CACHE/mondorestore.cfg not found" |
|---|
| 770 |
fi |
|---|
| 771 |
if [ "`grep -i pxe $CMDLINE`" ] || [ "`grep -i net $CMDLINE`" ]; then |
|---|
| 772 |
|
|---|
| 773 |
. /sbin/start-netfs |
|---|
| 774 |
fi |
|---|
| 775 |
|
|---|
| 776 |
if [ "`grep -i 'obdr ' $MINDI_CACHE/mondorestore.cfg 2>/dev/null`" ] || [ "`grep -i ' udev' $MINDI_CACHE/mondorestore.cfg 2>/dev/null`" ]; then |
|---|
| 777 |
HandleTape |
|---|
| 778 |
ExtractDataDisksAndLoadModules |
|---|
| 779 |
elif [ "`grep -i pxe $CMDLINE`" ]; then |
|---|
| 780 |
|
|---|
| 781 |
echo "/mnt/cdrom" > $MINDI_CACHE/CDROM-LIVES-HERE |
|---|
| 782 |
CD_MOUNTED_OK=yes |
|---|
| 783 |
ExtractDataDisksAndLoadModules |
|---|
| 784 |
|
|---|
| 785 |
sed -i "s/backup-media-type.*/backup-media-type netfs/" $MINDI_CACHE/mondorestore.cfg |
|---|
| 786 |
elif [ "`grep -i usb= $CMDLINE`" ] || [ "`grep -i usb $MINDI_CACHE/mondorestore.cfg 2>/dev/null | grep media-type`" ]; then |
|---|
| 787 |
. /sbin/start-usb |
|---|
| 788 |
|
|---|
| 789 |
|
|---|
| 790 |
echo "/mnt/cdrom" > $MINDI_CACHE/CDROM-LIVES-HERE |
|---|
| 791 |
CD_MOUNTED_OK=yes |
|---|
| 792 |
ExtractDataDisksAndLoadModules |
|---|
| 793 |
else |
|---|
| 794 |
HandleCDROM |
|---|
| 795 |
ExtractDataDisksAndLoadModules |
|---|
| 796 |
|
|---|
| 797 |
. /sbin/start-netfs |
|---|
| 798 |
fi |
|---|
| 799 |
res=$? |
|---|
| 800 |
ConfigureLoggingDaemons |
|---|
| 801 |
if [ -e "$MINDI_CACHE/USE-DEVFS" ] ; then |
|---|
| 802 |
umount /mnt/cdrom 2> /dev/null |
|---|
| 803 |
mv /dev/cdrom /cdrom.lnk 2> /dev/null |
|---|
| 804 |
CD_MOUNTED_OK="" |
|---|
| 805 |
RunDevfsd |
|---|
| 806 |
fi |
|---|
| 807 |
LoadKeymap |
|---|
| 808 |
WelcomeMessage |
|---|
| 809 |
RstHW |
|---|
| 810 |
[ -e "$MINDI_CACHE/mountlist.txt" ] && cp -f $MINDI_CACHE/mountlist.txt $MINDI_CACHE/mountlist.original |
|---|
| 811 |
StartRaids |
|---|
| 812 |
StartMpath |
|---|
| 813 |
StartLvms |
|---|
| 814 |
CopyBootDevEntry |
|---|
| 815 |
mkdir -p /tmp/tmpfs |
|---|
| 816 |
sleep 2 |
|---|
| 817 |
if [ -e "/dev/md0" ] && [ ! -e "/dev/md/0" ] && [ "`grep /dev/md/ $MINDI_CACHE/mountlist.txt`" != "" ] ; then |
|---|
| 818 |
LogIt "Creating /dev/md/* softlinks just in case." 1 |
|---|
| 819 |
mkdir -p /dev/md |
|---|
| 820 |
cp -af /dev/md0 /dev/md/0 2> /dev/null |
|---|
| 821 |
cp -af /dev/md1 /dev/md/1 2> /dev/null |
|---|
| 822 |
cp -af /dev/md2 /dev/md/2 2> /dev/null |
|---|
| 823 |
fi |
|---|
| 824 |
|
|---|
| 825 |
if ! [ "`grep -i "pxe" $CMDLINE`" ] ; then |
|---|
| 826 |
res="`cat /mnt/cdrom/archives/THIS-CD-NUMBER 2> /dev/null`" |
|---|
| 827 |
[ "$res" != "1" ] && [ "$res" != "" ] && Die "This is CD #$res in the series. Please insert CD #1." |
|---|
| 828 |
[ -e "/cdrom.lnk" ] && mv -f /cdrom.lnk /dev/cdrom && mount /dev/cdrom /mnt/cdrom && CD_MOUNTED_OK=yes |
|---|
| 829 |
[ "$CD_MOUNTED_OK" != "yes" ] && TryAgainToFindCD |
|---|
| 830 |
|
|---|
| 831 |
fi |
|---|
| 832 |
hack-cfg-if-necessary || LogIt "Cannot find hack-cfg-if-necessary" |
|---|
| 833 |
|
|---|
| 834 |
|
|---|
| 835 |
LogIt "init (from mindi v$MINDI_VER-r${MINDI_REV})" |
|---|
| 836 |
LogIt "$CMDLINE is:" |
|---|
| 837 |
LogIt "----------" |
|---|
| 838 |
cat $CMDLINE >> $LOGFILE |
|---|
| 839 |
LogIt "----------" |
|---|
| 840 |
LogIt "df result:" |
|---|
| 841 |
LogIt "----------" |
|---|
| 842 |
df >> $LOGFILE |
|---|
| 843 |
LogIt "-------------" |
|---|
| 844 |
LogIt "mount result:" |
|---|
| 845 |
LogIt "-------------" |
|---|
| 846 |
mount >> $LOGFILE |
|---|
| 847 |
LogIt "-------------" |
|---|
| 848 |
LogIt "lsmod result:" |
|---|
| 849 |
LogIt "-------------" |
|---|
| 850 |
lsmod >> $LOGFILE |
|---|
| 851 |
LogIt "-------------" |
|---|
| 852 |
LogIt "dmesg result:" |
|---|
| 853 |
LogIt "-------------" |
|---|
| 854 |
dmesg >> $LOGFILE |
|---|
| 855 |
LogIt "-------------" |
|---|
| 856 |
LogIt "/proc/swaps:" >> $LOGFILE |
|---|
| 857 |
LogIt "-------------" |
|---|
| 858 |
cat /proc/swaps >> $LOGFILE |
|---|
| 859 |
LogIt "-------------" |
|---|
| 860 |
LogIt "/proc/filesystems:" >> $LOGFILE |
|---|
| 861 |
LogIt "-------------" |
|---|
| 862 |
cat /proc/filesystems >> $LOGFILE |
|---|
| 863 |
LogIt "-------------" |
|---|
| 864 |
LogIt "/proc/partitions:" >> $LOGFILE |
|---|
| 865 |
LogIt "-------------" |
|---|
| 866 |
cat /proc/partitions >> $LOGFILE |
|---|
| 867 |
LogIt "-------------" |
|---|
| 868 |
LogIt "fdisk result:" >> $LOGFILE |
|---|
| 869 |
LogIt "-------------" |
|---|
| 870 |
fdisk -l >> $LOGFILE |
|---|
| 871 |
|
|---|
| 872 |
ide-opt |
|---|
| 873 |
|
|---|
| 874 |
|
|---|
| 875 |
if [ -e "/tmp/USE-UDEV" ] ; then |
|---|
| 876 |
if [ -x /sbin/udevadm ]; then |
|---|
| 877 |
/sbin/udevadm trigger --retry-failed |
|---|
| 878 |
fi |
|---|
| 879 |
fi |
|---|
| 880 |
if grep "backup-media-type" $MINDI_CACHE/mondorestore.cfg > /dev/null 2> /dev/null ; then |
|---|
| 881 |
LogIt "backup-media-type is specified in config file - great." |
|---|
| 882 |
LogIt "Calling post-init" |
|---|
| 883 |
|
|---|
| 884 |
if [ "`echo $pre | grep -E '^/tmp/isodir'`" ]; then |
|---|
| 885 |
pre=`echo $pre | sed 's|^/tmp/isodir|/tmp|'` |
|---|
| 886 |
fi |
|---|
| 887 |
if [ -x $pre ]; then |
|---|
| 888 |
echo "Executing preliminary script $pre" |
|---|
| 889 |
LogIt "Executing preliminary script $pre" |
|---|
| 890 |
$pre |
|---|
| 891 |
fi |
|---|
| 892 |
post-init |
|---|
| 893 |
else |
|---|
| 894 |
LogIt "backup-media-type is not specified in config file." |
|---|
| 895 |
LogIt "I think this media has no archives on it." |
|---|
| 896 |
fi |
|---|
| 897 |
if [ "`grep -i "post=" $CMDLINE`" ] ; then |
|---|
| 898 |
for i in `cat $CMDLINE` ; do |
|---|
| 899 |
echo $i | grep -qi post= && post=`echo $i | cut -d= -f2` |
|---|
| 900 |
done |
|---|
| 901 |
|
|---|
| 902 |
if [ "`echo $post | grep -E '^/tmp/isodir'`" ]; then |
|---|
| 903 |
post=`echo $post | sed 's|^/tmp/isodir|/tmp|'` |
|---|
| 904 |
fi |
|---|
| 905 |
if [ -r $post ]; then |
|---|
| 906 |
echo "Executing final script $post" |
|---|
| 907 |
LogIt "Executing final script $post" |
|---|
| 908 |
if [ "`echo $post | grep -E '^/mnt/RESTORING'`" ]; then |
|---|
| 909 |
mount-me |
|---|
| 910 |
fi |
|---|
| 911 |
chmod 755 $post |
|---|
| 912 |
$post |
|---|
| 913 |
if [ "`echo $post | grep -E '^/mnt/RESTORING'`" ]; then |
|---|
| 914 |
unmount-me |
|---|
| 915 |
fi |
|---|
| 916 |
fi |
|---|
| 917 |
fi |
|---|
| 918 |
if grep "RESTORE" $CMDLINE > /dev/null 2> /dev/null ; then |
|---|
| 919 |
echo "Rebooting in 10 seconds automatically as per reboot order" |
|---|
| 920 |
echo -en "Press ^C to interrupt if you have to ..." |
|---|
| 921 |
for i in 1 2 3 4 5 6 7 8 9 10 ; do |
|---|
| 922 |
sleep 1 |
|---|
| 923 |
echo -en "." |
|---|
| 924 |
done |
|---|
| 925 |
echo "Boom." |
|---|
| 926 |
sleep 1 |
|---|
| 927 |
else |
|---|
| 928 |
echo -en "Type 'exit' to reboot the PC\n" |
|---|
| 929 |
umount /mnt/cdrom 2> /dev/null |
|---|
| 930 |
mount / -o rw,remount > /dev/null 2> /dev/null |
|---|
| 931 |
LogIt "Launching Shell" |
|---|
| 932 |
sh |
|---|
| 933 |
fi |
|---|
| 934 |
CaughtSoftReset |
|---|
| 935 |
|
|---|
| 936 |
|
|---|