Changeset 737 in MondoRescue
- Timestamp:
- Aug 3, 2006, 8:49:44 PM (19 years ago)
- Location:
- branches/stable
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/stable/mindi/rootfs/sbin/init
r736 r737 307 307 # pipe vgscan's output, strip it, run 'vgchange' on its output, etc.etc. 308 308 LogIt "LVM's have been started." 309 }310 311 312 313 StartNfs() {314 # using mount -o nolock avoids portmap requirement315 #if which portmap > /dev/null 2> /dev/null ; then316 #LogIt "Running portmap"317 #portmap318 #[ "$?" -eq "0" ] && LogIt "Portmap started OK" || LogIt "Portmap error"319 if [ -e "/sbin/start-nfs" ] ; then320 chmod 755 /sbin/start-nfs321 LogIt "Starting NFS..."322 /sbin/start-nfs323 fi324 #fi325 309 } 326 310 … … 481 465 fi 482 466 483 #if [ -e "/tmp/2880.siz" ] ; then 484 # HandleCDROMorFloppies 485 #el 467 # 468 # Create NFS configuration 469 # 470 cat > /sbin/start-nfs << EOF 471 #!/bin/sh 472 # 473 # number of ping 474 # 475 ipcount=3 476 477 # Get info from config file 478 ipdev=`grep nfs-dev /tmp/mondo-restore.cfg | cut -d' ' -f2-` 479 ipaddress=`grep nfs-client-ipaddr /tmp/mondo-restore.cfg | cut -d' ' -f2-` 480 ipnetmask=`grep nfs-client-netmask /tmp/mondo-restore.cfg | cut -d' ' -f2-` 481 ipbroadcast=`grep nfs-client-broadcast /tmp/mondo-restore.cfg | cut -d' ' -f2-` 482 ipgateway=`grep nfs-client-defgw /tmp/mondo-restore.cfg | cut -d' ' -f2-` 483 ipconf="" 484 nfsmount=`grep nfs-server-mount /tmp/mondo-restore.cfg | cut -d' ' -f2-` 485 imgname=`grep iso-prefix /tmp/mondo-restore.cfg | cut -d' ' -f2-` 486 if [ "$imgname" = "" ]; then 487 imgname="mondorescue" 488 fi 489 dirimg=`grep nfs-server-path /tmp/mondo-restore.cfg | cut -d' ' -f2-` 490 if [ "$dirimg" = "" ]; then 491 dirimg="/" 492 fi 493 494 # info from cmdline are predominent 495 for i in `cat /proc/cmdline` ; do 496 echo $i | grep -qi ping= && ipcount=`echo $i | cut -d= -f2` 497 echo $i | grep -qi ipconf= && ipconf=`echo $i | cut -d= -f2` 498 echo $i | grep -qi nfsmount= && nfsmount=`echo $i | cut -d= -f2` 499 echo $i | grep -qi prefix= && imgname=`echo $i | cut -d= -f2` 500 done 501 502 if [ $ipdev = "" ] && [ $ipconf = "" ]; then 503 # No network configuration neither stored during archive 504 # nor on cmdline so no network wanted => exiting 505 exit 0 506 else 507 LogIt "Starting Network..." 508 fi 509 510 # Activate loobback 511 ifconfig lo 127.0.0.1 512 513 echo "$ipconf" | grep -q "dhcp" 514 if [ $? -eq 0 ]; then 515 ipdev=`echo $ipconf | cut -d: -f1` 516 echo "Making DHCP request on $ipdev" 517 udhcpc -i $ipdev 518 else 519 if [ "$ipconf" != "" ]; then 520 ipdev=`echo $ipconf | cut -d: -f1` 521 ipaddress=`echo $ipconf | cut -d: -f2` 522 ipnetmask=`echo $ipconf | cut -d: -f3` 523 ipbroadcast=`echo $ipconf | cut -d: -f4` 524 ipgateway=`echo $ipconf | cut -d: -f5` 525 fi 526 echo "Configuring $ipdev statically ($ipaddress/$ipnetmask)" 527 ifconfig $ipdev $ipaddress netmask $ipnetmask broadcast $ipbroadcast 528 route add default gw $ipgateway 529 fi 530 531 # ping server helps waking interface up 532 LogIt "Pinging NFS server..." 533 nfs_server_ipaddr=`echo $nfsmount | cut -d: -f1` 534 ping -c $ipcount $nfs_server_ipaddr 535 536 # Finally mounts the NFS share 537 LogIt "Mounting NFS share ($nfsmount) on /tmp/isodir..." 538 mount -t nfs -o nolock $nfsmount /tmp/isodir 539 540 LogIt "Mounting NFS image $imgname-1.iso in $dirimg on /mnt/cdrom in loopback" 541 losetup /dev/loop7 /tmp/isodir/$dirimg/$imgname-1.iso 542 mount -o ro -t iso9660 /dev/loop7 /mnt/cdrom 543 EOF 544 chmod 755 /sbin/start-nfs 545 486 546 if [ "`grep -i 'tape ' /tmp/mondo-restore.cfg`" ] || [ "`grep -i udev /tmp/mondo-restore.cfg`" ] ; then 487 547 HandleTape 488 548 ExtractDataDisksAndLoadModules 489 elif [ -e "/sbin/start-nfs" ] && [ "`grep -i pxe /proc/cmdline`" ]; then 490 StartNfs 491 imgname=`grep iso-prefix /tmp/mondo-restore.cfg | cut -d' ' -f2-` 492 if [ "$imgname" = "" ]; then 493 imgname="mondorescue" 494 fi 495 if [ "`grep -i prefix /proc/cmdline`" ] ; then 496 for i in `cat /proc/cmdline` ; do 497 if [ "`echo $i | grep -i prefix`" ] ; then 498 imgname=`echo $i | cut -d'=' -f2` 499 fi 500 done 501 fi 502 dirimg=`grep nfs-server-path /tmp/mondo-restore.cfg | cut -d' ' -f2-` 503 if [ "$dirimg" = "" ]; then 504 dirimg="/" 505 fi 506 LogIt "Mounting NFS image $imgname-1.iso in $dirimg on /mnt/cdrom in loopback" 507 losetup /dev/loop7 /tmp/isodir/$dirimg/$imgname-1.iso 508 mount -o ro -t iso9660 /dev/loop7 /mnt/cdrom 549 elif [ "`grep -i pxe /proc/cmdline`" ]; then 550 /sbin/start-nfs 551 509 552 # Simulate a local CD 510 553 echo "/mnt/cdrom" > /tmp/CDROM-LIVES-HERE 511 554 CD_MOUNTED_OK=yes 512 555 ExtractDataDisksAndLoadModules 513 556 else 514 557 HandleCDROMorFloppies 515 558 ExtractDataDisksAndLoadModules 516 if [ -e "/sbin/start-nfs" ]; then 517 StartNfs 518 fi 559 /sbin/start-nfs 519 560 fi 520 561 res=$? -
branches/stable/mondo/mondo/common/libmondo-files.c
r684 r737 1267 1267 ("Unable to find ethN (eth0, eth1, ...) adapter via NFS mount you specified."); 1268 1268 } 1269 sprintf(outfile, "%s/start-nfs", bkpinfo->tmpdir);1270 sprintf(tmp, "outfile = %s", outfile);1271 log_it(tmp);1272 if (!(fout = fopen(outfile, "w"))) {1273 fatal_error("Cannot store NFS config");1274 }1275 fprintf(fout, "#!/bin/sh\n");1276 fprintf(fout, "# number of ping\n");1277 fprintf(fout, "ipcount=3\n");1278 fprintf(fout, "for i in `cat /proc/cmdline` ; do\n");1279 fprintf(fout, " echo $i | grep -qi ping= && ipcount=`echo $i | cut -d= -f2`\n");1280 fprintf(fout, "done\n");1281 fprintf(fout, "ifconfig lo 127.0.0.1 # config loopback\n");1282 fprintf(fout, "ipdev=%s\n", nfs_dev);1283 fprintf(fout, "ipaddress=%s\n", nfs_client_ipaddr);1284 fprintf(fout, "ipnetmask=%s\n", nfs_client_netmask);1285 fprintf(fout, "ipbroadcast=%s\n", nfs_client_broadcast);1286 fprintf(fout, "ipgateway=%s\n", nfs_client_defgw);1287 fprintf(fout, "ipconf=\n");1288 fprintf(fout, "nfsmount=%s\n", bkpinfo->nfs_mount);1289 fprintf(fout, "for i in `cat /proc/cmdline` ; do\n");1290 fprintf(fout, " echo $i | grep -qi ipconf= && ipconf=`echo $i | cut -d= -f2`\n");1291 fprintf(fout, " echo $i | grep -qi nfsmount= && nfsmount=`echo $i | cut -d= -f2`\n");1292 fprintf(fout, "done\n");1293 fprintf(fout, "nfs_server_ipaddr=`echo $nfsmount | cut -d: -f1`\n");1294 fprintf(fout, "echo \"$ipconf\" | grep -q \"dhcp\"\n");1295 fprintf(fout, "if [ $? -eq 0 ]; then\n");1296 fprintf(fout, " ipdev=`echo $ipconf | cut -d: -f1`\n");1297 fprintf(fout, " echo \"Making DHCP request on $ipdev\"\n");1298 fprintf(fout, " udhcpc -i $ipdev\n");1299 fprintf(fout, "else\n");1300 fprintf(fout, " if [ \"$ipconf\" != \"\" ]; then\n");1301 fprintf(fout, " ipdev=`echo $ipconf | cut -d: -f1`\n");1302 fprintf(fout, " ipaddress=`echo $ipconf | cut -d: -f2`\n");1303 fprintf(fout, " ipnetmask=`echo $ipconf | cut -d: -f3`\n");1304 fprintf(fout, " ipbroadcast=`echo $ipconf | cut -d: -f4`\n");1305 fprintf(fout, " ipgateway=`echo $ipconf | cut -d: -f5`\n");1306 fprintf(fout, " fi\n");1307 fprintf(fout, " ifconfig $ipdev $ipaddress netmask $ipnetmask broadcast $ipbroadcast\n");1308 fprintf(fout, " route add default gw $ipgateway\n");1309 fprintf(fout, "fi\n");1310 fprintf(fout, "ping -c $ipcount $nfs_server_ipaddr # ping server\n");1311 fprintf(fout, "mount -t nfs -o nolock $nfsmount /tmp/isodir\n");1312 paranoid_fclose(fout);1313 chmod(outfile, 0777);1314 1269 make_hole_for_dir("/var/cache/mondo-archive"); 1315 1316 // paranoid_system ("mkdir -p /var/cache/mondo-archive 2> /dev/null");1317 1318 sprintf(tmp, "cp -f %s /var/cache/mondo-archive", outfile);1319 run_program_and_log_output(tmp, FALSE);1320 1270 1321 1271 sprintf(tmp, "%s/NFS-DEV", bkpinfo->tmpdir);
Note:
See TracChangeset
for help on using the changeset viewer.