]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/install+setup/install/main.c
snort: Update urls for rules download (2.9.7.0) in 'ids.cgi'
[ipfire-2.x.git] / src / install+setup / install / main.c
index 319dfded7ea8c1489b736d9a00feef7788bcac19..309e006c9d3927fd6ed0792ade6e911ae841159e 100644 (file)
@@ -12,7 +12,7 @@
 #include "install.h"
 #define _GNU_SOURCE
  
-#define INST_FILECOUNT 10700
+#define INST_FILECOUNT 21000
 #define UNATTENDED_CONF "/cdrom/boot/unattended.conf"
 #define LICENSE_FILE   "/cdrom/COPYING"
 
@@ -35,19 +35,22 @@ extern char *en_tr[];
 extern char *es_tr[];
 extern char *de_tr[];
 extern char *fr_tr[];
+extern char *nl_tr[];
 extern char *pl_tr[];
 extern char *ru_tr[];
+extern char *tr_tr[];
 
 int main(int argc, char *argv[])
 {
 
        char discl_msg[40000] = "Disclaimer\n";
 
-       char *langnames[] = { "Deutsch", "English", "Français", "Español", "Polski", "Русский", NULL };
-       char *shortlangnames[] = { "de", "en", "fr", "es", "pl", "ru", NULL };
-       char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, pl_tr, ru_tr, NULL };
+       char *langnames[] = { "Deutsch", "English", "Français", "Español", "Nederlands", "Polski", "Русский", "Türkçe", NULL };
+       char *shortlangnames[] = { "de", "en", "fr", "es", "nl", "pl", "ru", "tr", NULL };
+       char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, nl_tr, pl_tr, ru_tr, tr_tr, NULL };
        char hdletter;
        char harddrive[30], sourcedrive[5];     /* Device holder. */
+       char harddrive_info[STRING_SIZE];       /* Additional infos about target */
        struct devparams hdparams, cdromparams; /* Params for CDROM and HD */
        int rc = 0;
        char commandstring[STRING_SIZE];
@@ -57,7 +60,6 @@ int main(int argc, char *argv[])
        int choice;
        int i;
        int found = 0;
-       int firstrun = 0;
        char shortlangname[10];
        char message[1000];
        char title[STRING_SIZE];
@@ -122,8 +124,6 @@ int main(int argc, char *argv[])
        }
 
        // Load common modules
-       mysystem("/sbin/modprobe iso9660"); // CDROM
-//     mysystem("/sbin/modprobe ext2"); // Boot patition
        mysystem("/sbin/modprobe vfat"); // USB key
        
        /* German is the default */
@@ -203,13 +203,8 @@ int main(int argc, char *argv[])
                                found = 1;
                                break;
                        case 10: // No harddisk found
-                               if (firstrun == 1) {
-                                       errorbox(ctr[TR_NO_HARDDISK]);
-                                       goto EXIT;
-                               }
-                               // Do this if the kudzu-scan fails...
-                               runcommandwithstatus("/bin/probehw.sh deep-scan", ctr[TR_PROBING_HARDWARE]);
-                               firstrun = 1;
+                               errorbox(ctr[TR_NO_HARDDISK]);
+                               goto EXIT;
                }
        }
 
@@ -219,6 +214,12 @@ int main(int argc, char *argv[])
        }
        fgets(harddrive, 30, handle);
        fclose(handle);
+       if ((handle = fopen("/tmp/dest_device_info", "r")) == NULL) {
+               sprintf(harddrive_info, "%s", harddrive);
+       }
+       fgets(harddrive_info, 70, handle);
+       fclose(handle);
+
                        
        /* load unattended configuration */
        if (unattended) {
@@ -242,7 +243,7 @@ int main(int argc, char *argv[])
 
        fprintf(flog, "Destination drive: %s\n", hdparams.devnode_disk);
        
-       sprintf(message, ctr[TR_PREPARE_HARDDISK], hdparams.devnode_disk);
+       sprintf(message, ctr[TR_PREPARE_HARDDISK], harddrive_info);
        if (unattended) {
            hardyn = 1;
        } else {
@@ -275,7 +276,7 @@ int main(int argc, char *argv[])
                        ctr[TR_CANCEL], NULL);
        } else {
            rc = 1;
-           fstype = EXT3;
+           fstype = EXT4;
        }
        if (rc == 2)
                goto EXIT;
@@ -320,16 +321,16 @@ int main(int argc, char *argv[])
                swap_file = memory / 4;
        
   /* Calculating Root-Size dependend of Max Disk Space */
-  if ( disk < 756 )
-               root_partition = 200;
-       else if ( disk >= 756 && disk <= 3072 )
-               root_partition = 512;
+  if ( disk < 2048 )
+               root_partition = 1024;
+       else if ( disk >= 2048 && disk <= 3072 )
+               root_partition = 1536;
        else 
                root_partition = 2048;
                
        
   /* Calculating the amount of free space */
-       boot_partition = 20; /* in MB */
+       boot_partition = 64; /* in MB */
        system_partition = disk - ( root_partition + swap_file + boot_partition );
        
        fprintf(flog, ", boot = %ld, swap = %ld, mylog = %ld, root = %ld\n",
@@ -369,7 +370,14 @@ int main(int argc, char *argv[])
 
        fclose(handle);
 
-       snprintf(commandstring, STRING_SIZE, "/sbin/sfdisk -L -uM %s < /tmp/partitiontable", hdparams.devnode_disk);
+       if (disk < 2097150) {
+               // <2TB use sfdisk and normal mbr
+               snprintf(commandstring, STRING_SIZE, "/sbin/sfdisk -L -uM %s < /tmp/partitiontable", hdparams.devnode_disk);
+       } else {
+               // >2TB use parted with gpt
+               snprintf(commandstring, STRING_SIZE, "/usr/sbin/parted -s %s mklabel gpt mkpart boot ext2 1M 64M mkpart swap linux-swap 64M 1000M mkpart root ext4 1000M 5000M mkpart var ext4 5000M 100%% disk_set pmbr_boot on", hdparams.devnode_disk);
+       }
+
        if (runcommandwithstatus(commandstring, ctr[TR_PARTITIONING_DISK]))
        {
                errorbox(ctr[TR_UNABLE_TO_PARTITION]);
@@ -430,7 +438,7 @@ int main(int argc, char *argv[])
        mkdir("/harddisk/boot", S_IRWXU|S_IRWXG|S_IRWXO);
        mkdir("/harddisk/var", S_IRWXU|S_IRWXG|S_IRWXO);
        mkdir("/harddisk/var/log", S_IRWXU|S_IRWXG|S_IRWXO);
-       
+
        snprintf(commandstring, STRING_SIZE, "/bin/mount %s1 /harddisk/boot", hdparams.devnode_part);
        if (runcommandwithstatus(commandstring, ctr[TR_MOUNTING_BOOT_FILESYSTEM]))
        {
@@ -534,7 +542,7 @@ int main(int argc, char *argv[])
                replace("/harddisk/boot/grub/grub.conf", "splashimage", "#splashimage");
                replace("/harddisk/boot/grub/grub.conf", "#serial", "serial");
                replace("/harddisk/boot/grub/grub.conf", "#terminal", "terminal");
-               replace("/harddisk/boot/grub/grub.conf", " panic=10 ", " console=ttyS0,38400n8 panic=10 ");
+               replace("/harddisk/boot/grub/grub.conf", " panic=10 ", " console=ttyS0,115200n8 panic=10 ");
 
                /*inittab*/
                replace("/harddisk/etc/inittab", "1:2345:respawn:", "#1:2345:respawn:");
@@ -594,12 +602,6 @@ EXIT:
                fclose(flog);
                newtFinished();
 
-               if (unattended) {
-                       // Remove Setup autorun after boot
-                       if (system("rm -f /harddisk/etc/rc.d/rcsysinit.d/S75firstsetup"))
-                               printf("Unable to disable setup autorun.\n");
-               }
-
                if (system("/bin/umount /harddisk/proc"))
                        printf("Unable to umount /harddisk/proc.\n"); 
        } else {