home *** CD-ROM | disk | FTP | other *** search
/ Caldera Network Desktop 1.0 / caldera-network-desktop-1.0.bin / images / ramdisk1.img / sbin / init < prev    next >
Text File  |  1995-10-31  |  3KB  |  109 lines

  1. #!/sbin/perl
  2.  
  3. sub flush {
  4.     local($old) = select(shift);
  5.     $| = 1;
  6.     print "";
  7.     $| = 0;
  8.     select($old);
  9. }
  10.  
  11. $ENV{'PATH'} = "/usr/X11/bin:/bin:/usr/bin:/sbin:/usr/sbin";
  12. $ENV{'LD_LIBRARY_PATH'} = "/lib:/usr/lib:/usr/X11/lib";
  13.  
  14. # Run bdflush.
  15. system 'update';
  16.  
  17. # Remount /
  18. system 'mount -n -o remount,rw /';
  19.  
  20. # Mount /proc
  21. system 'mount -t proc /proc /proc';
  22.  
  23. # Clean out /etc.
  24. unlink '/etc/mtab~', '/etc/fastboot', '/etc/nologin';
  25. open(FD,'>/etc/utmp');
  26. open(FD,'>/etc/mtab');
  27. close FD;
  28.  
  29. # Enter root into mtab.
  30. system 'mount -f /';
  31.  
  32. # Set the system clock. (Assume GMT for now...)
  33. #system 'clock -u -s';
  34.  
  35. $ENV{'PATH'} = "/bin:/usr/bin:/sbin:/usr/sbin:/mnt2/bin:/mnt2/usr/bin:/mnt2/sbin:/mnt2/usr/sbin:/mnt3/bin:/mnt2/mnt/cdrom/bin";
  36.  
  37. # Start a shell in another VT
  38. system 'open /bin/ash';
  39.  
  40. $ENV{'PATH'} = "/bin:/usr/bin:/sbin:/usr/sbin";
  41. $ENV{'TERM'} = "linux";
  42.  
  43. # Create space for a second ramdisk
  44. open(VERSION, "</proc/version") || die("cannot open /proc/version");
  45. $_ = <VERSION>;
  46. chop;
  47. close(VERSION);
  48.  
  49. ($release) = /version ([0-9\.]+) /;
  50. $release =~ s/\.[0-9]+$//;
  51. system "insmod /lib/ramdisk-$release.o";
  52.  
  53. print "RHL: Insert ramdisk 2 floppy and press ENTER";
  54. flush(STDOUT);
  55. $line = <>;
  56. #print "\nLoading... This will take a minute or two...\n";
  57. #system 'exec dd if=/dev/fd0 of=/dev/ram2 bs=64k';
  58.  
  59. open(DISK, "</dev/fd0") || die("couldn't open /dev/fd0");
  60. open(RAM, ">/dev/ram2") || die("couldn't open /dev/ram2");
  61.  
  62. print "RAMDISK2: Loading 1440 blocks into RAM disk";
  63.  
  64. $nblocks = 1440;
  65. while ($nblocks) {
  66.     $amount = ($nblocks > 16) ? 16 : $nblocks;
  67.     $nblocks -= $amount;
  68.  
  69.     read(DISK, $buffer, 1024 * $amount) || die("couldn't read $amount blocks");
  70.     syswrite(RAM, $buffer, 1024 * $amount) || die("couldn't syswrite $amount blocks");
  71.     print ".";
  72.     flush(STDOUT);
  73. }
  74. close(DISK);
  75. close(RAM);
  76. print "\ndone\n";
  77.  
  78. system 'mount -t ext2 /dev/ram2 /ramdisk';
  79.  
  80. # Turn off screen blanking
  81. # system 'setterm -blank 0 -powersave off';
  82.  
  83. # Let's free up some tmp space by erasing old binaries
  84. unlink('/sbin/setterm');
  85. `/ramdisk/bin/rm /lib/ramdisk*.o`;
  86. unlink('/sbin/uname');
  87.  
  88. unlink('/bin');
  89. symlink('/ramdisk/bin', '/bin');
  90.  
  91. #rmdir('/tmp');
  92. #symlink('/ramdisk/tmp', '/tmp');
  93.  
  94. system 'syslogd > /dev/null 2>&1';
  95. system 'klogd > /dev/null 2>&1';
  96.  
  97. # Run the install script.
  98. if ( ! ($child = fork)) {
  99.     $ENV{'PERLLIB'} = "/usr/lib/perl";
  100.     exec '/usr/lib/perl/install';
  101. }
  102.  
  103. $pid = 0;
  104.  
  105. while ( (( $pid = wait ) != -1) && $pid != $child) { }
  106.  
  107. # Reboot the system.
  108. exec '/sbin/shutdown';
  109.