From a8e3f8ca13a03356b89d096b25c7e9223aae89c8 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Mon, 7 Nov 2011 14:01:23 +0000 Subject: [PATCH] setup-disk: fix compaq server disk arrays /dev/cciss/c0d0 style disks --- setup-disk.in | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) diff --git a/setup-disk.in b/setup-disk.in index 33ab925..a2b610f 100644 --- a/setup-disk.in +++ b/setup-disk.in @@ -292,7 +292,8 @@ find_swap_size() { local size=$(( $memtotal_kb * 2 / 1024 )) local disk= disksize= for disk in $@; do - local sysfspath=/sys/block/${disk#/dev/}/size + local sysfsdev=$(echo ${disk#/dev/} | sed 's:/:!:g') + local sysfspath=/sys/block/$sysfsdev/size # disksize = x * 512 / (1024 * 1024) = x / 2048 # maxsize = $disksize / 4 = x / (2048 * 4) = x / 8192 maxsize=$(awk '{ printf "%i", $0 / 8192 }' $sysfspath ) @@ -312,11 +313,12 @@ find_swap_size() { has_mounted_part() { local p + local sysfsdev=$(echo ${1#/dev/} | sed 's:/:!:g') # parse /proc/mounts for mounted devices - for p in $(awk '$1 ~ /^\/dev\// {gsub("/dev/", "", $1); print $1}' \ + for p in $(awk '$1 ~ /^\/dev\// {gsub("/dev/", "", $1); gsub("/", "!", $1); print $1}' \ /proc/mounts); do - [ "$p" = "$1" ] && return 0 - [ -e /sys/block/$1/$p ] && return 0 + [ "$p" = "$sysfsdev" ] && return 0 + [ -e /sys/block/$sysfsdev/$p ] && return 0 done return 1 } @@ -376,11 +378,12 @@ init_progs() { show_disk_info() { local disk= vendor= model= d= size= for disk in $@; do - d=${disk##*/} + local dev=${disk#/dev/} + d=$(echo $dev | sed 's:/:!:g') vendor=$(cat /sys/block/$d/device/vendor 2>/dev/null) model=$(cat /sys/block/$d/device/model 2>/dev/null) size=$(awk '{gb = ($1 * 512)/1000000000; printf "%.1f GB\n", gb}' /sys/block/$d/size 2>/dev/null) - echo " $d ($size $vendor $model)" + echo " $dev ($size $vendor $model)" done } -- 1.7.7.2