Solaris 운영 체제의 "format" 유틸리티Greg (shoe) Schuweiler, 2004년 11월 많은 사람들에게 하드 디스크는 "블랙 박스"로, 어떤 의미에서는 데이터, 프로그램 및/또는 운영 체제를 저장하는 작은 장치로 간주됩니다. 물론 이 접근 방식이 여러분들이 관심을 가지는 전부인 경우 잘못된 점은 없습니다. 하지만 시스템 관리자로서 여러분들이 고려해야 하는 주된 관심사 중 하나는 데이터 보호이며, 우선 순위가 높은 또 다른 관심사로는 메모리와 물리적 디스크 간의 효율적인 데이터 이동이 있습니다. 이 기사에서는 Solaris OS에서 우리가 사용할 수 있는 기본 유틸리티 중 하나인
디스크에서 슬라이스를 관리하기 위해 사용되는
경고를 위한 또 다른 단어인 비소거 명령은 문자 그대로 비소거이어야 하지만, 시스템에서 이 명령을 실행할 지 여부를 결정하는 것은 여러분의 몫입니다. 소거 명령은 디스크에서 데이터를 삭제합니다. 수행하고 있는 작업에 대해 잘 알고 있는 경우에만 이 명령을 실해하십시오. 이 기사에서 사용한 명령은 디스크 레이블 결함 목록 분할 영역 테이블 다음 사항에 유의하면서 이 기사를 읽어보십시오.
이 기사가 대화식이 될 수 있도록 여러분에게 사용할 수 있는 연결된 디스크가 있는 시스템이 있기를 바랍니다. 먼저 r_gps@holstein: format Searching for disks...done AVAILABLE DISK SELECTIONS: 0.c0t0d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> boot /pci@1f,4000/scsi@3/sd@0,0 1.c0t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> home /pci@1f,4000/scsi@3/sd@1,0 2.c2t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> trashme /pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0 Specify disk (enter its number): 'quit'를 입력하여 한 개의 메뉴를 종료 또는 백업하거나, <Ctrl-D>를 사용하여 « Warning: echo "adios data" | dd of=/dev/dsk/c2t1d0s2 bs=1 count=512 » 이제
r_gps@holstein: format
Searching for disks...done
c2t1d0: configured with capacity of 33.92GB
AVAILABLE DISK SELECTIONS:
0. c0t0d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> boot
/pci@1f,4000/scsi@3/sd@0,0
1. c0t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107> home
/pci@1f,4000/scsi@3/sd@1,0
2. c2t1d0 <SUN36G cyl 24620 alt 2 hd 27 sec 107>
/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0
Specify disk (enter its number): 2
selecting c2t1d0
[disk formatted]
Disk not labeled. Label it now?
디스크에 레이블을 지정하려는 경우 여기에 'y'를 입력하면 Solaris OS용으로 사용할 수 있게 됩니다. 그런 다음 r_gps@holstein: prtvtoc /dev/dsk/c2t1d0s2 * /dev/dsk/c2t1d0s2 partition map * * Dimensions: * 512 bytes/sector * 107 sectors/track * 27 tracks/cylinder * 2889 sectors/cylinder * 24622 cylinders * 24620 accessible cylinders * * Flags: * 1: unmountable * 10: read-only * * First Sector Last * Partition Tag Flags Sector Count Sector Mount Directory 0 2 00 0 262899 262898 1 3 01 262899 262899 525797 2 5 01 0 71127180 71127179 6 4 00 525798 70601382 71127179
r_gps@holstein: format /dev/rdsk/c2t1d0s2
Current partition table (original): Total disk cylinders available: 24620 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 90 128.37MB (91/0/0) 262899 1 swap wu 91 - 181 128.37MB (91/0/0) 262899 2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 182 - 24619 33.67GB (24438/0/0) 70601382 7 unassigned wm 0 0 (0/0/0) 0 partition>
r_gps@holstein: dd if=/dev/dsk/c2t1d0s2 of=wart.bin bs=512 count=1 1+0 records in 1+0 records out
이렇게 하면 r_gps@holstein: od -x wart.bin 0000000 5355 4e33 3647 2063 796c 2032 3436 3230 0000020 2061 6c74 2032 2068 6420 3237 2073 6563 0000040 2031 3037 0000 0000 0000 0000 0000 0000 0000060 0000 0000 0000 0000 0000 0000 0000 0000 * 0000200 0000 0001 0000 0000 0000 0000 0008 0002 0000220 0000 0003 0001 0005 0001 0000 0000 0000 0000240 0000 0000 0000 0004 0000 0000 0000 0000 0000260 0000 0000 0000 0000 0000 0000 600d deee 0000300 0000 0000 0000 0000 0000 0000 0000 0000 * 0000640 0000 0000 2729 602e 0000 0000 0000 0001 0000660 602c 0002 001b 006b 0000 0000 0000 0000 0000700 0004 02f3 0000 005b 0004 02f3 0000 0000 0000720 043d 508c 0000 0000 0000 0000 0000 0000 0000740 0000 0000 0000 0000 0000 0000 0000 00b6 0000760 0435 4aa6 0000 0000 0000 0000 dabe 4297 0001000
8진 덤프에는 많은 정보가 있으며, 아주 훌륭한 Sun 문서에서 이를 다룹니다. 해당 정보는 중복하여 다루지 않겠습니다. SunSolve에서 문서 ID 74047을 검색합니다. 체크섬 전에는 해당
r_gps@holstein: format /dev/rdsk/c2t1d0s2
selecting /dev/rdsk/c2t1d0s2
[disk formatted]
FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
save - save new disk/partition definitions
inquiry - show vendor, product and revision
volname - set 8-character volume name
!<cmd> - execute <cmd>, then return
quit
format>
항상 각 디스크에 볼륨 이름을 지정하는 것이 좋습니다. 이렇게 하면 시스템이 좀 더 간결해 보입니다. 또한 동일한 디스크 드라이브를 살펴보는 둘 이상의 시스템이 있는 경우에도 도움이 되며, 이는 고가용성 클러스터에서 발생할 수 있습니다. RAID 엔진 쌍으로 표시되는 120개 이상의 디스크가 VERITAS 클러스터의 15개 시스템에서 모두 표시됨을 확인했습니다. 각 디스크에 볼륨 이름을 지정하면 이미 사용한 디스크를 식별하는 데 도움이 됩니다. 볼륨 이름이 없는 디스크는 사용되지 않습니다. 다음 예에서와 같이 format> volname Enter 8-character volume name (remember quotes)[""]:"pigsnot" Ready to label disk, continue? y format>
디스크 레이블에 대해
format> disk
AVAILABLE DISK SELECTIONS:
0. /dev/rdsk/c2t1d0s2 <SUN36G cyl 24620 alt 2 hd 27 sec 107> pigsnot
/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0
Specify disk (enter its number)[0]:
Current Disk = c2t1d0: pigsnot <SUN36G cyl 24620 alt 2 hd 27 sec 107> /pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0
r_gps@holstein: ls /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0* /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:a /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:a,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:b /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:b,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:c /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:c,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:d /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:d,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:e /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:e,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:f /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:f,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:g /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:g,raw /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:h /devices/pci@1f,4000/pci@5/SUNW,isptwo@4/sd@1,0:h,raw 단어 "raw"가 있는 물리적 장치 이름은 문자 장치이며, 그밖에 다른 장치는 블록 장치를 말합니다. 문자 'a'는 분할 영역 0을, 문자 'b'는 분할 영역 1 등을 나타냅니다.
format> verify Primary label contents: Volume name = < pigsnot> ASCII name = <SUN36G cyl 24620 alt 2 hd 27 sec 107> pcyl = 24622 ncyl = 24620 acyl = 2 nhead = 27 nsect = 107 Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 90 128.37MB (91/0/0) 262899 1 swap wu 91 - 181 128.37MB (91/0/0) 262899 2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 182 - 24619 33.67GB (24438/0/0) 70601382 7 unassigned wm 0 0 (0/0/0) 0
#
# New disk/partition type saved on Fri Aug 6 06:34:05 2004
#
disk_type = "SUN36G" \
: ctlr = SCSI : ncyl = 24620 : acyl = 2 : pcyl = 24622 \
: nhead = 27 : nsect = 107 : rpm = 10025
...
마지막으로 디스크 정보를 수집하기 위해 사용한 옵션 목록에는 format> inq Vendor: FUJITSU Product: MAN3367M SUN36G Revision: 1502 format> 주의해야 할 점은 개정 레벨입니다. 펌웨어 업데이트는 디스크 드라이브에서 나타납니다. 이 옵션을 사용하면 디스크 공급업체에서 사용할 수 있는 레벨과 비교하여 디스크에서 보유한 개정 레벨을 비교할 수 있습니다. 저의 경우에는 공급업체가 대형 RAID 배열에서 디스크의 드라이브 펌웨어를 업데이트하도록 했으나 공급업체는 즉석에서 업데이트를 수행합니다. 저는 오래 전에 SCSI 디스크에서 펌웨어를 한두 번 업데이트했습니다. 오늘날 환경에 맞는 수많은 디스크와 필요한 작동 중지 용량으로 인해 더 이상 걱정이 없습니다. 때로는 오래된 격언인 "긁어 부스럼 만들지 말아라"라는 말이 이치에 맞습니다. 작동 중지 없이 업그레이드하는 방법은 아직 살펴보지 않았습니다.
defect both dump /disks/c2t1d0-defect.dat r_gps@holstein: format -f c2t1d0.cmd /dev/rdsk/c2t1d0s2
하지만 디스크에서 분할 영역을 마운트한 경우에는
경고:
r_gps@holstein: format /dev/rdsk/c2t1d0s2
selecting /dev/rdsk/c2t1d0s2
[disk formatted]
FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
save - save new disk/partition definitions
inquiry - show vendor, product and revision
volname - set 8-character volume name
!<cmd> - execute <cmd>, then return
quit
format>
이를 수행해야 하기 위해 사용한 드라이브는 IPI와 SMD 드라이브였습니다. 구글에서 'ipi smd 디스크' 드라이브를 사용하여 약간의 이력을 검색하고 관심이 있는 경우에는 이러한 드라이브 유형을 구매할 수 있는 위치를 찾아 보십시오.
제가 Sun의 방침에 강하게 동의하지 않는 영역에 대해서는 이제 나타납니다. 예를 들어 Sun 및 제가 알고 있는 Sun 시스템 엔지니어(SE)는 시스템 디스크에서 루트 분할 영역 하나와 다른 모든 것에 대한 또 다른 분할 영역 하나를 사용할 것을 권장하고 있습니다. 이는 가당치 않습니다! 디스크에서 각 슬라이스는 OS별로 구분된 디스크로 표시됩니다. 따라서 테스트 디스크를 분할하기 전에 이 부분에서 제가 Sun의 제안에 동의하지 않는 이유에 대해 살펴보겠습니다. 여러분이 저의 의견에 동의하지 않을 수도 있습니다. 이 경우 여러분께서 직접 기사를 작성해 주십시오.
응용 프로그램이 고장 난다는 이유로 운영 체제는 각 분할 영역을 개별 파일 시스템으로 표시합니다. 즉 운영 체제는 이러한 파일 시스템 각각에 대해 캐시와 버퍼를 만듭니다. 추가 캐시와 버퍼는 I/O 로드를 작은 조각으로 분해합니다. 물론 여러분은 백업, 상호 연결 속도 및 디스크 제어기로 인해 제한을 받습니다. 하지만 I/O가 과중한 경우에는 문제가 발생할 가능성이 줄어듭니다. 이제 저의 의견에서 벗어나 분할 영역 메뉴를 계속 진행하겠습니다. 이 메뉴는 다음과 같은 또 다른 메뉴를 엽니다.
PARTITION MENU:
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label to the disk
!<cmd> - execute <cmd>, then return
quit
분할 작업을 위해 제가 찾은 가장 쉬운 방법으로는 분할 영역 메뉴에서 간단히 Current partition table (original): Total disk cylinders available: 24620 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 90 128.37MB (91/0/0) 262899 1 swap wu 91 - 181 128.37MB (91/0/0) 262899 2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 usr wm 182 - 24619 33.67GB (24438/0/0) 70601382 7 unassigned wm 0 0 (0/0/0) 0
이 표는 기본 분할 영역 테이블로, 겹친 분할 영역을 한정적으로 원하지 않는다고 생각되면 이를 변경해야 합니다. 분할 영역을 수정하는 가장 안전한 방법은
partition> modify
Select partitioning base:
0. Current partition table (original)
1. All Free Hog
Choose base (enter number) [0]?
기본적으로 현재 분할 영역을 수정하고, 이렇게 하는 것이 좋습니다. 실제로 여러분이 작업을 수행할 때에는 큰 차이가 없습니다. Current partition table을 선택하면
partition> 0 Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 90 128.37MB (91/0/0) 262899 Enter partition id tag[root]: Enter partition permission flags[wm]: Enter new starting cyl[0]: Enter partition size [262899b, 91c, 90e, 128.37mb, 0.13gb]: 256mb 분할 영역 태그와 사용 권한 플래그 질문에 '?'를 입력하고 허용 가능한 응답을 가져올 수 있습니다. 'P' 키를 다시 누르면 수정해야 할 문제가 있음이 표시될 수 있습니다. Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 181 256.74MB (182/0/0) 525798 1 swap wu 91 - 181 128.37MB (91/0/0) 262899 ...분할 영역 0이 분할 영역 1과 겹칩니다. 분할 영역 만들기를 진행할 때 만드는 분할 영역이 겹치지 않는지 확인해야 합니다. 만든 분할 영역의 수와 크기는 실제로 사이트, 필요, 경험 등에 따라 달라집니다. 저의 경우에는 작업을 마치고 나서 다음이 표시되었습니다. Current partition table (original): Total disk cylinders available: 24620 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 181 56.74MB (182/0/0) 525798 1 swap wu 182 - 272 128.37MB (1452/0/0) 4194828 2 backup wu 0 - 24619 33.92GB (24620/0/0) 71127180 3 unassigned wm 3540 - 4265 1.00GB (726/0/0) 2097414 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 4266 - 4991 1.00GB (726/0/0) 2097414 6 usr wm 273 - 2087 2.50GB (1815/0/0) 5243535 7 var wm 2088 - 3539 2.00GB (1452/0/0) 4194828
분할 영역 테이블을 기록해야 합니다. 이 작업은
Sun의 디스크를 구입한 경우에는 실제로
이전에
이제까지 재미있으셨습니까? 여러 개의 디스크에서 분할 영역을 포맷하고 설정하는 작업은 문제도 아닙니다. 조금만 입력하기만 하면 되며, 이는 참을 만합니다. 하지만 대형 RAID 배열에 연결하여 10개, 심지어는 200개의 디스크를 동일하게 구성해야 하는 경우에는 어떻게 합니까? 대형 이미징 프로젝트용으로 이 작업을 수행해야 했던 친구가 있습니다. 그녀는
* Partition Tag Flag First Sector Sector Count 0 2 00 4194828 1048707 1 7 00 5243535 4145715 2 5 00 0 71127180 3 3 01 0 4194828 4 0 00 9389250 2097414 5 0 00 11486664 8389656 6 4 00 19876320 6292242
따라서 fmthard -i -n "" /dev/rdsk/c2t1d0s2 > ./mypartition.dat
앞의 명령이 « fmthard -s mypartition.dat -n "volumename" /dev/rdsk/cxtydzs2 »
이제
-e Enable SCSI expert menu. Note this option is not
recommended for casual use.
실제로 저는 여러분들에 대한 정보가 없습니다. 단지 제 경우에는 이 옵션을 사용해야 했습니다. scsi - independent SCSI mode selects cache - enable, disable or query SCSI disk cache
이제 캐시 옵션이 디스크 읽기 및 쓰기 캐시용으로 메뉴에 제공됩니다. 캐시는 일부 SCSI 디스크에 있으며, 캐시가 있는 디스크 중에서 일부 디스크를 사용하여 해당 캐시 옵션을 변경할 수 있습니다. 이 캐시는 디스크에 있는 소량의 메모리로, 시스템 메모리와는 상관이 전혀 없습니다. 즉 각 디스크는 약간 다를 수 있으며, 이러한 디스크로 작업하는 경우 약간씩 다르게 작동할 수 있습니다. 저는 보통 읽기 캐시가 설정되어 있음을 발견했습니다. 이것은 읽기 작업 중에 전원이 중단되더라도 아무 것도 손상되지 않음을 생각해보면 이해할 수 있습니다. 디스크에는 데이터가 있으면 안 됩니다. 이와 마찬가지로 저는 쓰기 캐시가 항상 설정 해제되어 있음을 발견했습니다. 이것은 전원이 중단되면 쓰기 캐시에 있는 모든 것도 잃어버린다는 점을 생각해보면 말이 됩니다. 쓰기 캐시를 설정하고 IOzone을 사용하여 I/O 로드와 비교했을 때 쓰기 작업의 범위가 아주 작은 범위에서 상당히 개선되었습니다. 이러한 개선 사항은 디스크 모델 간, 공급업체 간 달라질 수 있습니다.
format> label [0] SMI Label [1] EFI Label Specify Label type[0]:
제 생각으로는 SMI는 Sun Microsystems를 의미합니다. 이는 기본 옵션으로, EFI(Extensible Firmware Interface) 레이블을 선택하는 경우에는 아래에 표시된 대로 또 다른 분할 영역을 얻을 수 있습니다. ascii name = <FUJITSU MAN3367M SUN36G 1502 43d671f> bytes/sector = 512 sectors = 71132958 accessible sectors = 71132925 Part Tag Flag First Sector Size Last Sector 0 root wm 34 128.35MB 262898 1 swap wu 262899 128.37MB 525797 2 unassigned wm 0 0 0 3 unassigned wm 0 0 0 4 unassigned wm 0 0 0 5 unassigned wm 0 0 0 6 usr wm 525798 33.66GB 71116540 7 unassigned wm 0 0 0 8 reserved wm 71116541 8.00MB 71132924 format> Intel 웹 사이트의 Extensible Firmware Interface 페이지에서 EFI에 대한 좀 더 자세한 내용을 참조할 수 있습니다.
이제 이러한 설명을 통해 우리가 얻은 것은 무엇입니까? 여러분들이 저자 정보 Greg (shoe) Schuweiler는 20년간 컨설턴트, 임베디드 소프트웨어 디자이너, Oracle DBA 및 기타 낯선 분야의 호스트로 미국 중서부 지방에서 근무하고 있으며, 지난 8년간 훌륭한 전문인인 UNIX SA로 종사하고 있습니다. 연락처는 gshoe [at] xadd.org입니다.
Comments (latest comments first)Discuss and comment on this resource in the BigAdmin Wiki
Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License. |
BigAdmin SubscriptionsBigAdmin Areas
BigAdmin Sun Center
BigAdmin Topics | ||||||||||