]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/commitdiff
installer: add target drive details security question.
authorArne Fitzenreiter <arne_f@ipfire.org>
Thu, 1 Nov 2012 12:24:47 +0000 (13:24 +0100)
committerArne Fitzenreiter <arne_f@ipfire.org>
Thu, 1 Nov 2012 12:24:47 +0000 (13:24 +0100)
src/install+setup/install/main.c
src/install+setup/install/mountdest.sh

index 9513a7f1fbb518cc95a4524a9fa8ec840bffb541..6a500445f0dd7d379cbbd959cda02a6ffecfbe5d 100644 (file)
@@ -48,6 +48,7 @@ int main(int argc, char *argv[])
        char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, pl_tr, ru_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];
@@ -213,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) {
@@ -236,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 {
index ccee6913c8ee7b6ea223658ab00ed9ef5880e9c1..068659cca033b6f964e9a3774d76c83e46beed4b 100644 (file)
@@ -79,18 +79,18 @@ for path in /sys/block/*; do
        esac
 
        # Replace any exclamation marks (e.g. cciss!c0d0).
-       device=${device//!/\/}
+       device_=${device//!/\/}
 
        # Guess if this could be a raid device.
-       for dev in ${device} ${device}p1; do
+       for dev in ${device_} ${device_}p1; do
                if [ -e "/dev/${dev}" ]; then
                        device=${dev}
                        break
                fi
        done
 
-       echo "Checking ${device}"
-       if check_source_drive ${device}; then
+       echo "Checking ${device_}"
+       if check_source_drive ${device_}; then
                echo "  is source drive - skipping"
                continue
        fi
@@ -102,13 +102,22 @@ for path in /sys/block/*; do
 
        # Found it.
        echo "  OK, this is it..."
-       echo -n "${device}" > /tmp/dest_device
+       echo -n "${device_}" > /tmp/dest_device
+
+       # Build string with drive details
+       echo -n "/dev/${device_} (" > /tmp/dest_device_info
+       # size is in sectors (512 Bytes)
+       let DISK_SIZE=$(cat /sys/block/${device}/size)/2097152
+       echo -n "$DISK_SIZE GB - " >> /tmp/dest_device_info
+       echo -n "$(cat /sys/block/${device}/device/vendor) " >> /tmp/dest_device_info
+       echo -n "$(cat /sys/block/${device}/device/model) " >> /tmp/dest_device_info
+       echo -n "$(cat /sys/block/${device}/device/rev))" >> /tmp/dest_device_info
 
        # Exit code table:
        #  1: sda
        #  2: RAID
        # 10: nothing found
-       case "${device}" in
+       case "${device_}" in
                *p1|*c0d0)
                        exit 2
                        ;;