summaryrefslogtreecommitdiff
path: root/setup-disk.in
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-11-07 14:01:23 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2011-11-07 14:01:23 +0000
commita8e3f8ca13a03356b89d096b25c7e9223aae89c8 (patch)
treeb3481e83100b984a62c7413e713a025f50b605aa /setup-disk.in
parentf236951ea709c9dbcc9714d66a7896fffbf4fbe3 (diff)
downloadalpine-conf-a8e3f8ca13a03356b89d096b25c7e9223aae89c8.zip
setup-disk: fix compaq server disk arrays /dev/cciss/c0d0 style disks
Diffstat (limited to 'setup-disk.in')
-rw-r--r--setup-disk.in15
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
}