1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
From a8e3f8ca13a03356b89d096b25c7e9223aae89c8 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
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
|