From 212cab4f9d7d4ebad0c45020f36ee145cc9be709 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Thu, 1 Nov 2012 13:24:47 +0100 Subject: [PATCH] installer: add target drive details security question. --- src/install+setup/install/main.c | 9 ++++++++- src/install+setup/install/mountdest.sh | 21 +++++++++++++++------ 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c index 9513a7f1f..6a500445f 100644 --- a/src/install+setup/install/main.c +++ b/src/install+setup/install/main.c @@ -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 { diff --git a/src/install+setup/install/mountdest.sh b/src/install+setup/install/mountdest.sh index ccee6913c..068659cca 100644 --- a/src/install+setup/install/mountdest.sh +++ b/src/install+setup/install/mountdest.sh @@ -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 ;; -- 2.39.2