summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2000-07-11 20:24:21 +0000
committerPascal Rigaux <pixel@mandriva.com>2000-07-11 20:24:21 +0000
commit64e3af6a229bbadbee8b64ede2f8bf7f44bd5c05 (patch)
tree312f11c979a9a0e7119c3f1ff98cfc4a5149ce5a
parentb54d78676ac459c8fb94bc6b43caa29d5764e9bd (diff)
downloaddrakx-backup-do-not-use-64e3af6a229bbadbee8b64ede2f8bf7f44bd5c05.tar
drakx-backup-do-not-use-64e3af6a229bbadbee8b64ede2f8bf7f44bd5c05.tar.gz
drakx-backup-do-not-use-64e3af6a229bbadbee8b64ede2f8bf7f44bd5c05.tar.bz2
drakx-backup-do-not-use-64e3af6a229bbadbee8b64ede2f8bf7f44bd5c05.tar.xz
drakx-backup-do-not-use-64e3af6a229bbadbee8b64ede2f8bf7f44bd5c05.zip
no_comment
-rw-r--r--Makefile15
-rwxr-xr-xmake_boot_img3
-rw-r--r--rescue/Makefile4
-rw-r--r--rescue/kernel_read_part.c39
-rw-r--r--rescue/tree/boot/grub/menu.lst5
-rwxr-xr-xrescue/tree/etc/oem41
-rwxr-xr-xrescue/tree/etc/rc.sysinit4
7 files changed, 97 insertions, 14 deletions
diff --git a/Makefile b/Makefile
index 92d0f2214..caa2a9930 100644
--- a/Makefile
+++ b/Makefile
@@ -25,9 +25,6 @@ UPLOAD_DEST = $(UPLOAD_DEST_)/cooker
UPLOAD_DEST_CONTRIB = $(UPLOAD_DEST_)/contrib
UPLOAD_SPARC_DEST = /mnt/BIG/distrib/sparc
-AUTOBOOT = $(ROOTDEST)/dosutils/autoboot/mdkinst
-
-
.PHONY: dirs $(FLOPPY_IMG) install network_ks.rdz pcmcia_ks.rdz
install: build autoboot rescue
@@ -55,13 +52,9 @@ ifeq (i386,$(ARCH))
cp -f cdrom.rdz $(ROOTDEST)/lnx4win/initrd.gz
/usr/sbin/rdev -v $(ROOTDEST)/lnx4win/vmlinuz 788
- install -d $(AUTOBOOT)
- cp -f vmlinuz $(AUTOBOOT)
- cp -f hd.rdz $(AUTOBOOT)/initrd.hd
- cp -f cdrom.rdz $(AUTOBOOT)/initrd.cd
- cp -f pcmcia.rdz $(AUTOBOOT)/initrd.pc
- cp -f network.rdz $(AUTOBOOT)/initrd.nt
- /usr/sbin/rdev -v $(AUTOBOOT)/vmlinuz 788
+ install -d $(ROOTDEST)/boot
+ cp -f vmlinuz {hd,cdrom,pcmcia,network}.rdz $(ROOTDEST)/boot
+ /usr/sbin/rdev -v $(ROOTDEST)/boot/vmlinuz 788
endif
dirs:
@@ -101,7 +94,7 @@ upload: clean install
function upload() { rsync -qSavz --verbose --exclude '*~' -e ssh --delete $(ROOTDEST)/$$1/$$2 mandrake@kenobi:/c/cooker/$$1; } ;\
upload Mandrake/mdkinst '' ;\
upload Mandrake/base {compss*,mdkinst_stage2.gz,rescue_stage2.gz} ;\
- upload dosutils/autoboot/mdkinst {initrd.*,vmlinuz} ;\
+ upload boot '' ;\
upload lnx4win {initrd.gz,vmlinuz} ;\
for i in $(RELEASE_BOOT_IMG); do upload images $$i; done ;\
echo
diff --git a/make_boot_img b/make_boot_img
index 14dde54b1..55a25f6f9 100755
--- a/make_boot_img
+++ b/make_boot_img
@@ -121,6 +121,9 @@ label expert
label rescue
kernel vmlinuz
append ramdisk_size=32000 initrd=$type.rdz $type rescue rw
+label oem
+ kernel vmlinuz
+ append ramdisk_size=32000 initrd=cdrom.rdz cdrom rescue oem rw
label auto
kernel vmlinuz
append ramdisk_size=32000 initrd=$type.rdz $type auto_install=auto_inst.cfg.pl
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/kernel_read_part.c b/rescue/kernel_read_part.c
new file mode 100644
index 000000000..4b9d16d65
--- /dev/null
+++ b/rescue/kernel_read_part.c
@@ -0,0 +1,39 @@
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <sys/mount.h>
+#include <fcntl.h>
+
+
+void die(char *msg)
+{
+ perror(msg);
+ exit(1);
+}
+
+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)
+{
+ if (argc != 2) {
+ fprintf(stderr, "usage: kernel_read_part <hard drive device>\n");
+ exit(1);
+ }
+ kernel_read(argv[1]);
+}
diff --git a/rescue/tree/boot/grub/menu.lst b/rescue/tree/boot/grub/menu.lst
new file mode 100644
index 000000000..372c24902
--- /dev/null
+++ b/rescue/tree/boot/grub/menu.lst
@@ -0,0 +1,5 @@
+timeout 0
+
+title oem
+kernel (hd0,0)/boot/vmlinuz ramdisk_size=32000 hd vga=788 flang=fr_FR fclass=normal oem
+initrd (hd0,0)/boot/hd.rdz
diff --git a/rescue/tree/etc/oem b/rescue/tree/etc/oem
new file mode 100755
index 000000000..e95d572e1
--- /dev/null
+++ b/rescue/tree/etc/oem
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+[ "$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"
+
+read
+
+cd /proc/ide
+for i in hd*; do
+ grep -q disk $i/media && hd=/dev/$i
+ grep -q cdrom $i/media && cd=/dev/$i
+done
+
+echo "hd: $hd"
+echo "cdrom: $cd"
+
+mkdir /cdrom ; mount -r -t iso9660 $cd /cdrom
+
+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 "Mounting partition"
+mkdir /hd ; mount -t ext2 ${hd}1 /hd
+
+echo "Copying cdrom on hard drive"
+cp -a /boot /cdrom/boot /cdrom/Mandrake /hd
+rm /hd/Mandrake/mdkinst/usr/bin/runinstall2
+
+echo "Done, oem hard drive ready! Press enter to reboot"
+read
+reboot \ No newline at end of file
diff --git a/rescue/tree/etc/rc.sysinit b/rescue/tree/etc/rc.sysinit
index da7e07a8f..4f81e9e57 100755
--- a/rescue/tree/etc/rc.sysinit
+++ b/rescue/tree/etc/rc.sysinit
@@ -22,8 +22,10 @@ load ide-mod
load ide-probe
load ide-disk
load ide-cd
-load isofs
load af_packet
+load isofs
+
+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