diff options
author | Stephen Hemminger <shemminger@vyatta.com> | 2012-01-03 11:01:46 -0800 |
---|---|---|
committer | Stephen Hemminger <shemminger@vyatta.com> | 2012-01-03 11:01:46 -0800 |
commit | 11b7290a75eefa9da5c08a25e3c17723be6a4e90 (patch) | |
tree | d18eab4ba0bd5778a12fe686279eaa797b9a39e5 /scripts | |
parent | a5fee35267cf7527a96d8042b31d7f6adf4a5646 (diff) | |
download | vyatta-cfg-system-11b7290a75eefa9da5c08a25e3c17723be6a4e90.tar.gz vyatta-cfg-system-11b7290a75eefa9da5c08a25e3c17723be6a4e90.zip |
install: use sfdisk to get disk size
sfdisk is simpler, and safer for getting disk size. It doesn't
require as much screen scraping and doesn't need disk label.
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/install/install-functions | 38 |
1 files changed, 6 insertions, 32 deletions
diff --git a/scripts/install/install-functions b/scripts/install/install-functions index 0cca8944..042ef5bb 100755 --- a/scripts/install/install-functions +++ b/scripts/install/install-functions @@ -139,40 +139,14 @@ turnoffswap () { # Return the size of the drive in MB get_drive_size () { - ldrive=$1 + local ldrive=$1 - # Make sure you can print disk info using parted - parted --script /dev/$ldrive p >/dev/null 2>&1 + # Get size of disk in 1k blocks + local blocks=$(sfdisk -s /dev/$ldrive) - # If unable to read disk, it's likely it needs a disklabel - if [ "$?" != "0" ]; then - lecho "Creating a new disklabel on $ldrive" - lecho "parted /dev/$ldrive mklabel msdos" - output=$(parted -s /dev/$ldrive mklabel msdos) - - # Get the drive size from parted - lsize=$(parted -s /dev/$ldrive p | grep "^Disk" | awk '{ print $3 }') - - if [ $(echo $lsize | grep error) ]; then - echo "Unable to read disk label. Exiting." - exit 1 - fi - fi - - # Get the drive size from parted - lsize=$(parted -s /dev/$ldrive p | grep "^Disk" | awk '{ print $3 }') - # Get the reported units (mB, GB, kB) - lmodifier=$(echo $lsize | sed 's/[0-9\.]//g') - # remove the modifier - lsize=$(echo $lsize | sed 's/[a-z,A-Z]//g') - # Remove any fractions - lsize=$(echo $lsize | cut -f1 -d'.') - # Translate our size into mB if not there already - if [ $lmodifier = "GB" ]; then - lsize=$(($lsize * 1000)) - elif [ $lmodifier = "kB" ]; then - lsize=$(($lsize / 1000)) - fi + # Translate to Megabytes (SI units) + local bytes=$(($blocks * 1024)) + local lsize=$(($bytes / 1000000)) echo $lsize } |