본 문서는 format 출력 시 원하는 영역의 디스크를 추출하는 방법을 설명한다.
OVMM 에서 디스크 alias 를 생성할때 유용 하다.
- Disk List
[sa-ovs2:~#] format < /dev/null | grep FUJITSU
2. c0t600000E00D000000000205A100A00000d0 <FUJITSU-ETERNUS_DXL-0000-1.00GB>
3. c0t600000E00D000000000205A100A10000d0 <FUJITSU-ETERNUS_DXL-0000-1.00GB>
4. c0t600000E00D000000000205A100A20000d0 <FUJITSU-ETERNUS_DXL-0000-1.00GB>
5. c0t600000E00D000000000205A100A30000d0 <FUJITSU-ETERNUS_DXL-0000-1.00GB>
6. c0t600000E00D000000000205A100A40000d0 <FUJITSU-ETERNUS_DXL-0000-1.00GB>
7. c0t600000E00D000000000205A100A50000d0 <FUJITSU-ETERNUS_DXL-0000-1.00GB>
8. c0t600000E00D000000000205A100A60000d0 <FUJITSU-ETERNUS_DXL-0000-1.00GB>
9. c0t600000E00D000000000205A100A70000d0 <FUJITSU-ETERNUS_DXL-0000-1.00GB>
10. c0t600000E00D000000000205A100A80000d0 <FUJITSU-ETERNUS_DXL-0000-1.00GB>
11. c0t600000E00D000000000205A100A90000d0 <FUJITSU-ETERNUS_DXL-0000-1.00GB>
(... 중략)
173. c0t600000E00D000000000205A100870000d0 <FUJITSU-ETERNUS_DXL-0000-10.00GB>
174. c0t600000E00D000000000205A100880000d0 <FUJITSU-ETERNUS_DXL-0000-10.00GB>
175. c0t600000E00D000000000205A100890000d0 <FUJITSU-ETERNUS_DXL-0000-10.00GB>
176. c0t600000E00D000000000205A100900000d0 <FUJITSU-ETERNUS_DXL-0000-10.00GB>
177. c0t600000E00D000000000205A100910000d0 <FUJITSU-ETERNUS_DXL-0000-10.00GB>
178. c0t600000E00D000000000205A100920000d0 <FUJITSU-ETERNUS_DXL-0000-10.00GB>
179. c0t600000E00D000000000205A100930000d0 <FUJITSU-ETERNUS_DXL-0000-10.00GB>
180. c0t600000E00D000000000205A100940000d0 <FUJITSU-ETERNUS_DXL-0000-10.00GB>
181. c0t600000E00D000000000205A100950000d0 <FUJITSU-ETERNUS_DXL-0000-10.00GB>
182. c0t600000E00D000000000205A100960000d0 <FUJITSU-ETERNUS_DXL-0000-10.00GB>
183. c0t600000E00D000000000205A100970000d0 <FUJITSU-ETERNUS_DXL-0000-10.00GB>
184. c0t600000E00D000000000205A100980000d0 <FUJITSU-ETERNUS_DXL-0000-10.00GB>
185. c0t600000E00D000000000205A100990000d0 <FUJITSU-ETERNUS_DXL-0000-1.00GB>
- 16진수를 비교하여 원하는 영역의 디스크를 추출하는 스크립트
: 0x0060 보다 크고 0x0090 보다 작은 영역의 디스크 추출
-- Case#1) ibase 사용
[sa-ovs2:~#] vi disk_select.sh
#!/bin/bash
DISK=`format < /dev/null | grep FUJITSU | awk '{print $2}' | sed -e 's/c0t600000E00D000000000205A1//g' | sed -e 's/0000d0//g'`
START_DISK=`echo "ibase=16; 0060" | bc`
END_DISK=`echo "ibase=16; 0090" | bc`
for D in $DISK;do
TR=`echo "ibase=16; $D" | bc`
if [[ ${TR} -gt $START_DISK ]] && [[ ${TR} -lt $END_DISK ]];then
printf "%s\n" $D
fi
done
-- Case#2) 16진수가 소문자인 경우(ex. 008f : bc 가 대문자만 지원한다)
--- sh 또는 bash 에서
[sa-ovs2:~#] vi disk_select.sh
#!/bin/bash
DISK=`format < /dev/null | grep FUJITSU | awk '{print $2}' | sed -e 's/c0t600000E00D000000000205A1//g' | sed -e 's/0000d0//g'`
START_DISK=`echo $((0x0060))`
END_DISK=`echo $((0x0090))`
for D in $DISK;do
TR=`echo $((0x$D))`
if [[ ${TR} -gt $START_DISK ]] && [[ ${TR} -lt $END_DISK ]];then
printf "%s\n" $D
fi
done
--- bash 에서
[sa-ovs2:~#] vi disk_select.sh
#!/bin/bash
DISK=`format < /dev/null | grep FUJITSU | awk '{print $2}' | sed -e 's/c0t600000E00D000000000205A1//g' | sed -e 's/0000d0//g'`
START_DISK=`echo $((16#0060))`
END_DISK=`echo $((16#0090))`
for D in $DISK;do
TR=`echo $((16#$D))`
if [[ ${TR} -gt $START_DISK ]] && [[ ${TR} -lt $END_DISK ]];then
printf "%s\n" $D
fi
done
- 실행
[sa-ovs2:~#]sh disk_select.sh
006A
006B
006C
006D
006E
006F
007A
007B
007C
007D
007E
007F
008A
008B
008C
008D
008E
008F
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
반응형
'OS > Solaris_관리' 카테고리의 다른 글
[Solaris_관리] SVM 환경에서 스토리지 교체절차(on solaris cluster, mpxio 제거) (0) | 2020.10.09 |
---|---|
[Solaris_관리] Package 관리 : package repository 서비스 구성(http) (0) | 2020.07.03 |
[Solaris] disk label 스크립트 (0) | 2020.04.22 |
[Solaris] disk volname 설정 스크립트 (0) | 2020.04.21 |
[Solaris] hostname 변경 (0) | 2020.03.23 |