From 0880c7ba8ce88e87fa600aeb367a8f88a3ae71e7 Mon Sep 17 00:00:00 2001 From: damien Date: Tue, 28 Nov 2000 16:56:52 +0000 Subject: branch to build the firewall install. --- rescue/.cvsignore | 1 + rescue/Makefile | 4 +-- rescue/aliases | 1 + rescue/dirs | 4 +++ rescue/kernel_read_part.c | 13 -------- rescue/list | 24 +++++++------ rescue/list.i386 | 4 +-- rescue/list.sparc | 1 - rescue/make_rescue_img | 20 +++++++---- rescue/tree/boot/grub/menu.lst | 2 +- rescue/tree/etc/issue | 2 +- rescue/tree/etc/oem | 76 ++++++++++++++++++++++++++++++++++-------- rescue/tree/etc/profile | 2 +- rescue/tree/etc/rc.sysinit | 6 ++++ rescue/tree/sbin/modprobe | 3 +- 15 files changed, 110 insertions(+), 53 deletions(-) (limited to 'rescue') diff --git a/rescue/.cvsignore b/rescue/.cvsignore index 13933b8b3..420d9cd67 100644 --- a/rescue/.cvsignore +++ b/rescue/.cvsignore @@ -1 +1,2 @@ rescue_stage2.gz +kernel_read_part diff --git a/rescue/Makefile b/rescue/Makefile index 4edae97bd..ed2d73018 100644 --- a/rescue/Makefile +++ b/rescue/Makefile @@ -3,8 +3,8 @@ ROOTDEST = /export install: rescue_stage2.gz cp -f $< $(ROOTDEST)/Mandrake/base -rescue_stage2.gz: +rescue_stage2.gz: kernel_read_part ./make_rescue_img clean: - rm -f rescue_stage2.gz + rm -f rescue_stage2.gz kernel_read_part diff --git a/rescue/aliases b/rescue/aliases index 3a8d38e9a..14090ddd6 100644 --- a/rescue/aliases +++ b/rescue/aliases @@ -1,2 +1,3 @@ /bin/zcat gzip /bin/gunzip gzip +/bin/rpm /usr/bin/rpm-dynamic diff --git a/rescue/dirs b/rescue/dirs index ae6616b1e..6ace88d5d 100644 --- a/rescue/dirs +++ b/rescue/dirs @@ -1,3 +1,7 @@ /mnt/cdrom /mnt/disk /mnt/floppy +/lib +/tmp +/modules +/proc diff --git a/rescue/kernel_read_part.c b/rescue/kernel_read_part.c index 4b9d16d65..279dfe787 100644 --- a/rescue/kernel_read_part.c +++ b/rescue/kernel_read_part.c @@ -1,14 +1,7 @@ -#include -#include #include -#include -#include -#include -#include #include #include - void die(char *msg) { perror(msg); @@ -18,15 +11,9 @@ void die(char *msg) void kernel_read(char *dev) { int fd; - - sync(); if ((fd = open(dev, O_RDONLY)) == -1) die("can't open device"); - sync(); - sleep(1); ioctl(fd, BLKRRPART, 0); - sync(); close(fd); - sync(); } int main(int argc, char **argv) diff --git a/rescue/list b/rescue/list index 17c7ddb6c..d11c8b01c 100644 --- a/rescue/list +++ b/rescue/list @@ -13,7 +13,7 @@ /usr/bin/bzip2 /usr/bin/bunzip2 /usr/bin/bzcat -/usr/bin/extract_archive +/usr/bin/packdrake /bin/hostname /bin/kill /bin/ln @@ -53,6 +53,7 @@ /dev/port /dev/ram* /dev/random +/dev/sd[a-h]* /dev/stderr /dev/stdin /dev/stdout @@ -63,11 +64,11 @@ /dev/zero /etc/inputrc /etc/termcap -/mnt/cdrom -/mnt/disk -/mnt/floppy +/lib/libnss_files-* +/lib/libnss_files.so.2 /sbin/debugfs /sbin/e2fsck +/sbin/sfdisk /sbin/fdisk /sbin/fsck.ext2 /sbin/halt @@ -75,12 +76,12 @@ /sbin/init /sbin/insmod /sbin/ldconfig -/sbin/lilo /sbin/mingetty /sbin/mkdosfs /sbin/mkfs.ext2 /sbin/reboot /sbin/rmmod +/sbin/shutdown /usr/bin/strace /sbin/route /sbin/mkswap @@ -90,6 +91,7 @@ /sbin/update /usr/bin/cmp /usr/bin/cut +/usr/bin/eject /usr/bin/fdformat /usr/bin/file /usr/bin/find @@ -105,6 +107,7 @@ /usr/bin/telnet /usr/bin/telnet /usr/bin/tset +/usr/sbin/chroot /usr/sbin/traceroute /usr/share/magic /usr/share/terminfo/l/linux @@ -112,11 +115,12 @@ /sbin/killall5 /usr/bin/perl /usr/bin/perl5 -/usr/bin/perl5.00503 -/usr/bin/extract_archive +/usr/bin/perl5.6.0 +/usr/lib/perl5/5.6.0/i386-linux/CORE/libperl.so /bin/sort /usr/bin/md5sum /etc/protocols -/sbin/lspci -/usr/share/pci.ids -/bin/rpm \ No newline at end of file +/etc/services +/bin/rpm +/sbin/mkraid +/usr/lib/rpm/rpmrc diff --git a/rescue/list.i386 b/rescue/list.i386 index 1bbe9fe7f..17a7aee85 100644 --- a/rescue/list.i386 +++ b/rescue/list.i386 @@ -1,7 +1,7 @@ /usr/sbin/ext2resize /usr/sbin/rescuept /sbin/mkreiserfs -/sbin/lspci +/usr/bin/lspci /usr/share/pci.ids -/usr/bin/perl5.00503 /sbin/lilo +/boot/grub/stage[12] diff --git a/rescue/list.sparc b/rescue/list.sparc index 00ca832e2..074144cf0 100644 --- a/rescue/list.sparc +++ b/rescue/list.sparc @@ -1,2 +1 @@ -/usr/bin/perl5.6.0 /sbin/silo diff --git a/rescue/make_rescue_img b/rescue/make_rescue_img index 8b9c823f4..d6667519e 100755 --- a/rescue/make_rescue_img +++ b/rescue/make_rescue_img @@ -22,27 +22,32 @@ BEGIN { undef *_; } sub __ { print @_, "\n"; system(@_); } sub _ { __ @_; $? and die; } -sub install { +sub install_ { return if -e "$tmp$_[0]"; my $d = dirname($_[0]); commands::mkdir_("-p", "$tmp$d") unless -d "$tmp$d"; - _ "$sudo cp -a $_[0] $tmp$d"; -} -sub install_lib { - _ "cp $_[0] $tmp$_[0]" unless -e "$tmp$_[0]"; + _ "$sudo cp $_[1] $_[0] $tmp$d"; } +sub install { install_($_[0], "-a") } +sub install_lib { install_($_[0], "") } _ "$sudo rm -rf $tmp" if -e $tmp; _ "mkdir $tmp"; _ 'find . -name "*~" | xargs rm -f'; +foreach (cat_("dirs")) { + chomp; + commands::mkdir_("-p", "$tmp$_"); +} _ "cp -a tree/* $tmp"; +_ "find $tmp -name 'CVS*' | xargs rm -rf"; + foreach (keyboard::loadkeys_files) { install($_); symlink "$2.kmap.gz", "$tmp$1/$3.kmap.gz" if m|(.*)/((..).+)\.kmap\.gz|; } unlink "$tmp/usr/lib/kbd/keymaps/i386/qwertz/fr.kmap.gz"; -foreach (cat_("list")) { +foreach (cat_("list"), cat_(`../tools/specific_arch list`)) { chomp; install($_); chomp, install_lib($_) foreach `ldd $_ 2>/dev/null | grep "=>" | sed -e 's/.*=> //' -e 's/ .*//'`; @@ -53,6 +58,7 @@ foreach (cat_("aliases")) { } _ "cp ../modules/modules.{cz*,dep} $tmp/modules"; +_ "install -s kernel_read_part $tmp/sbin" if $arch =~ /i.86/; __ "$sudo strip $tmp/{lib,bin,sbin}/* $tmp/usr/{bin,sbin}/* 2>/dev/null"; exit 0 if $ARGV[0]; @@ -60,7 +66,7 @@ exit 0 if $ARGV[0]; $size = `du -s $tmp | cut -f1` + 2048; #- add 2MB of free space commands::mkdir_("-p", $mnt) if !-e $mnt; -__ "$sudo umount $rescue"; +__ "$sudo umount $rescue 2>/dev/null"; _ "dd if=/dev/zero of=$rescue bs=1k count=$size"; _ "$mke2fs $rescue"; diff --git a/rescue/tree/boot/grub/menu.lst b/rescue/tree/boot/grub/menu.lst index 372c24902..c74b13ee7 100644 --- a/rescue/tree/boot/grub/menu.lst +++ b/rescue/tree/boot/grub/menu.lst @@ -1,5 +1,5 @@ timeout 0 title oem -kernel (hd0,0)/boot/vmlinuz ramdisk_size=32000 hd vga=788 flang=fr_FR fclass=normal oem +kernel (hd0,0)/boot/vmlinuz ramdisk_size=32000 hd vga=788 fclass=normal oem initrd (hd0,0)/boot/hd.rdz diff --git a/rescue/tree/etc/issue b/rescue/tree/etc/issue index 8c579e127..9b04ad8cd 100644 --- a/rescue/tree/etc/issue +++ b/rescue/tree/etc/issue @@ -18,7 +18,7 @@         -Linux Mandrake release 7.0 (Air) +Linux Mandrake release 7.2 (Odyssey) Use loadkeys to change your keyboard layout (eg: loadkeys fr) Use modprobe to load modules diff --git a/rescue/tree/etc/oem b/rescue/tree/etc/oem index e95d572e1..f30c9a433 100755 --- a/rescue/tree/etc/oem +++ b/rescue/tree/etc/oem @@ -2,12 +2,20 @@ [ "$1" = "-f" ] || { echo "Call it with option -f, but don't fear loosing all your data, this command is dangerous!"; exit 1; } -echo "I'm going to install the oem version on your hard drive" -echo "!!ALL DATA IS GOING TO BE LOST!!" -echo -echo "Press enter to go on" +inst=1 +swap=2 +root=3 -read +yes= +while [ "$yes" != "yes" ]; do + echo + echo + echo "I'm going to install the OEM version on your hard drive" + echo "!!ALL DATA IS GOING TO BE LOST!!" + echo + echo "Type \`\`yes'' and [enter] to go on" + read yes +done cd /proc/ide for i in hd*; do @@ -20,22 +28,62 @@ echo "cdrom: $cd" mkdir /cdrom ; mount -r -t iso9660 $cd /cdrom +if grep -q "[ -]fr" /cdrom/VERSION; then + lang=fr + flang=fr_FR +else + lang=en + flang=en_US +fi +echo "Found lang $lang" + echo "Installing new partition table and bootloader" dd if=/etc/part_and_bootloader of=$hd echo "Asking kernel to take into account this new partition table" kernel_read_part $hd -echo "Formatting (ext2) partition" -mkfs.ext2 ${hd}1 +echo "Setting swap" +mkswap $hd$swap +swapon $hd$swap + +echo "Formatting $hd$inst partition" ; mkfs.ext2 $hd$inst +echo "Formatting $hd$root partition" ; mkfs.ext2 $hd$root + +echo "Mounting partitions" +mkdir -p /hd ; mount -t ext2 $hd$inst /hd +mkdir -p /mnt; mount -t ext2 $hd$root /mnt -echo "Mounting partition" -mkdir /hd ; mount -t ext2 ${hd}1 /hd +echo "Copying installation on hard drive" +cp -a /boot /cdrom/boot /hd +mkdir -p /hd/Mandrake /hd/Mandrake/RPMS +cp -a /cdrom/Mandrake/base /cdrom/Mandrake/mdkinst /hd/Mandrake -echo "Copying cdrom on hard drive" -cp -a /boot /cdrom/boot /cdrom/Mandrake /hd -rm /hd/Mandrake/mdkinst/usr/bin/runinstall2 +perl -pi -e "s/^(kernel .*)/\1 flang=$flang/" /hd/boot/grub/menu.lst -echo "Done, oem hard drive ready! Press enter to reboot" +for i in `/etc/closurepkgs /hd/Mandrake/base/depslist.ordered /hd/Mandrake/base/compssList $lang | grep C: | cut -d: -f2`; do + [ -e /cdrom/Mandrake/RPMS/$i.*.rpm ] && cp -a /cdrom/Mandrake/RPMS/$i.*.rpm /hd/Mandrake/RPMS +done + +echo "Installing packages" +export DURING_INSTALL=1 +export RPM_INSTALL_LANG=$lang +export LD_LIBRARY_PATH=/usr/X11R6/lib +export SECURE_LEVEL=2 +for i in /etc /var/lib/rpm /proc ; do mkdir -p /mnt$i; done +mount -t proc proc /mnt/proc +rpm --root /mnt --initdb +echo >/mnt/etc/fstab "$hd$root / ext2 defaults 1 1" +for i in `/etc/closurepkgs /hd/Mandrake/base/depslist.ordered /hd/Mandrake/base/compssList $lang | grep I: | cut -d: -f2`; do + [ -e /cdrom/Mandrake/RPMS/$i.*.rpm ] && rpm --root /mnt -ivh /cdrom/Mandrake/RPMS/$i.*.rpm --nodeps --force +done +umount /mnt/proc +umount /cdrom +eject $cd + +echo +echo "Done. OEM hard drive ready!" +echo "The hard drive is now ready for a customer." +echo "Press enter to halt." read -reboot \ No newline at end of file +halt diff --git a/rescue/tree/etc/profile b/rescue/tree/etc/profile index ffd2b3174..ce6db9cd7 100644 --- a/rescue/tree/etc/profile +++ b/rescue/tree/etc/profile @@ -6,7 +6,7 @@ PROFILE_LOADED=1 -export PATH=/bin:/sbin:/usr/bin:/usr/sbin +export PATH=/usr/bin:/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/mnt/disk/sbin:/mnt/disk/bin:/mnt/disk/usr/sbin:/mnt/disk/usr/bin:/mnt/disk/usr/X11R6/bin PS1="[root@rescue]\\$ " ls () { /bin/ls --color=auto -F "$@";} diff --git a/rescue/tree/etc/rc.sysinit b/rescue/tree/etc/rc.sysinit index 476c9bfe9..8fb6aea63 100755 --- a/rescue/tree/etc/rc.sysinit +++ b/rescue/tree/etc/rc.sysinit @@ -17,12 +17,18 @@ mount -f /proc action "Setting hostname rescue" hostname rescue echo rescue > /etc/HOSTNAME +# Loads common modules ( no kerneld :( ) load() { modprobe $* 2>/dev/null; } load ide-mod load ide-probe load ide-disk load ide-cd load af_packet +load isofs +load vfat +load reiserfs + +grep -q oem /proc/cmdline && exec /etc/oem -f /sbin/ifconfig lo 127.0.0.1 netmask 255.0.0.0 /sbin/route add 127.0.0.1 lo diff --git a/rescue/tree/sbin/modprobe b/rescue/tree/sbin/modprobe index 494f5b2a2..574f8ff56 100755 --- a/rescue/tree/sbin/modprobe +++ b/rescue/tree/sbin/modprobe @@ -27,9 +27,10 @@ sub load { $conf{$name}{loaded} and return; eval { load($_, 'prereq') } foreach @{$deps{$name}}; - system("extract_archive /modules/modules.cz* /tmp $name.o >/dev/null"); + system("packdrake -x /modules/modules.cz* /tmp $name.o"); -r "/tmp/$name.o" or die "can't find module $name\n"; system("/sbin/insmod -f /tmp/$name.o"); $? and die("insmod $name failed"); + system("rm /tmp/$name.o"); } !@ARGV || $ARGV[0] =~ /-h/ and die "usage: modprobe []\n"; -- cgit v1.2.1