]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/install+setup/install/main.c
Das kleine AJAX-Bandbreitenmeter gefixt. Zeigte zu hohe Werte aufgrund eines Berechnu...
[people/pmueller/ipfire-2.x.git] / src / install+setup / install / main.c
index c4c3ba5b72da4b93981253b2a68712259733cf9e..e8e83711c17f537a7a10fc388451b1d411be6dd8 100644 (file)
@@ -21,7 +21,6 @@
 #define REISERFS 1
 #define EXT3 2
 
-int raid_disk = 0;
 FILE *flog = NULL;
 char *mylog;
 
@@ -82,7 +81,7 @@ int main(int argc, char *argv[])
        char *shortlangnames[] = { "de", "en", NULL };
        char **langtrs[] = { de_tr, en_tr, NULL };
        char hdletter;
-       char harddrive[5], sourcedrive[5];      /* Device holder. */
+       char harddrive[11], sourcedrive[5];     /* Device holder. */
        struct devparams hdparams, cdromparams; /* Params for CDROM and HD */
        int cdmounted = 0; /* Loop flag for inserting a cd. */
        int rc = 0;
@@ -101,6 +100,7 @@ int main(int argc, char *argv[])
        char title[STRING_SIZE];
        int allok = 0;
        int allok_fastexit=0;
+       int raid_disk = 0;
        struct keyvalue *ethernetkv = initkeyvalues();
        FILE *handle, *cmdfile;
        char line[STRING_SIZE];
@@ -258,10 +258,17 @@ int main(int argc, char *argv[])
                switch (mysystem("/bin/mountdest.sh") % 255) {
                        case 0: // Found IDE disk
                                scsi_disk = 0;
+                               raid_disk = 0;
                                found = 1;
                                break;
                        case 1: // Found SCSI disk
                                scsi_disk = 1;
+                               raid_disk = 0;
+                               found = 1;
+                               break;
+                       case 2: // Found RAID disk
+                               scsi_disk = 0;
+                               raid_disk= 1;
                                found = 1;
                                break;
                        case 10: // No harddisk found
@@ -275,53 +282,11 @@ int main(int argc, char *argv[])
                }
        }
 
-       /*
-       // Need to clean this up at some point
-       // scsi disk is sdb/sdc when sda/sdb is used for usb-key
-       // if scsi-disk is sdd or more, it is not discovered
-       // Support only 2 usb keys, none could be unplugged
-       if (checkusb("sdb") && try_scsi("sdc")) {
-               scsi_disk = 1;
-               sprintf(harddrive, "sdc");
-               goto FOUND_DESTINATION;
-       }
-       if (checkusb("sda") && try_scsi("sdb")) {
-               scsi_disk = 1;
-               sprintf(harddrive, "sdb");
-               goto FOUND_DESTINATION;
-       }
-       if (try_scsi("sda")) {
-               scsi_disk = 1;
-               sprintf(harddrive, "sda");
-               goto FOUND_DESTINATION;
-       }
-       if (try_scsi("ida/c0d0")) {
-               raid_disk = 1;
-               sprintf(harddrive, "ida/c0d0");
-               goto FOUND_DESTINATION;
-       }
-       if (try_scsi("cciss/c0d0")) {
-               raid_disk = 1;
-               sprintf(harddrive, "cciss/c0d0");
-               goto FOUND_DESTINATION;
-       }
-       if (try_scsi("rd/c0d0")) {
-               raid_disk = 1;
-               sprintf(harddrive, "rd/c0d0");
-               goto FOUND_DESTINATION;
-       }
-       if (try_scsi("ataraid/d0")) {
-               raid_disk = 1;
-               sprintf(harddrive, "ataraid/d0");
-               goto FOUND_DESTINATION;
-       } */
-
-       FOUND_DESTINATION:
        if ((handle = fopen("/tmp/dest_device", "r")) == NULL) {
                errorbox(ctr[TR_NO_HARDDISK]);
                goto EXIT;
        }
-       fgets(harddrive, 5, handle);
+       fgets(harddrive, 11, handle);
        fclose(handle);
                        
        /* load unattended configuration */
@@ -639,6 +604,10 @@ int main(int argc, char *argv[])
        }
 
        mysystem("ln -s grub.conf /harddisk/boot/grub/menu.lst");
+       
+       mysystem("umount /cdrom");
+       snprintf(commandstring, STRING_SIZE, "eject /dev/%s", sourcedrive);
+       mysystem(commandstring);
 
        if (!unattended) {
                sprintf(message, ctr[TR_CONGRATULATIONS_LONG],