Contents

System/OS
2013.04.23 12:52

[linux] /etc/fstab 설정 방법.. ㅋㅋ

조회 수 12435 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
유닉스의 장치구성 
  /devices/pci@1f,0/pci@1,1/ide@3/cmdk@0,0:a2

  pci@ : bus 방식
  ide@ : 컨트롤러
  cmdk : 하드디스크  ide hdd는 dad , scsi는 sd 로 표기


인스턴트이름  cmdk0  : 시스템 커널이 이용 /etc/path_to_inst
  /dev/dsk/c0t0d0s0  : d0는 무조건 0임  ( x86 시스템은 t0 생략 )

  c0 : 컨트롤러 1번  ( ide는 마더보드에 하나의 컨트롤러 => c0, scsi는 여러개의 컨트롤러가 있다면 c0, c1 ..
  t0 : target 1번 ( ide는 4개 ( Primary-master , slave , Secondary -master , slave )
       scsi는 0~7 8개  scsi II는 16개 (0~15)
  s0 : 파티션0번을 의미  ( 유닉스 파티션은 0,1,3,4,5,6,7  7개  2번은 디스크 전체를 의미)


--
prtconf 명령 : 시스템에 연결된 장치 출력  ( -v : 세부정보 )
# prtconf | grep -v not  => 사용중인 장치만 출력 ( 단일명령은 사용하지 않는것도 모두 표시됨)
instance #0 는 1번 즉 1개라는 의미


--
devfsadm 명령 : 연결은 하였으나 인식되지 않는 장비 인식시키는 명령 (솔라리스 8버전 이상)
# devfsadm - i dad  (또는 sd(cd-rom,scsi), st(tape device) 등)  => 한번의 명령으로 장치인식
# devfsadm -c disk  (또는 tape)
# prtconf | grep -v not


drvconfig 명령 : 동일 명령이나 후속명령이 따라야 함
# drvconfig -i dad  (또는 sd(cd-rom,scsi), st(tape device) 등)  => 후속명령 # disks  , # tapes  명령을 추가
# disks ( tapes)  => 하드디스크라면 disks  명령을 추가해야 장치가 인식됨
# prtconf | grep -v not


--
hdd 추가

--
hdd의 구조

- sector : 디스크 구성의 최소단위  유닉스에서는 block으로도 부름 보통 512byte로 구성
  > VTOC : disk label 이라고도 하며 partition table이 저장되어 있다. 보통 헤더가 플래터에 처음 닿는 0번섹터를 의미 한다.
- track : sector로 구성된 하나의 띠
- cylinder : 몇개의 track의 묶음 ( 정보운영의 최소단위)
- slice : 몇개의  (임의조정) cylinder의 묶음 ( = partition)


--
장치구분의 타겟넘버 : 장치의 수를 의미 hdd의 갯수, cdrom의 갯수
  ide방식 : 0~3 (4개) - primary master/slave , secondary master/slave
  scsi방식 :  scsi I : 0~7 (56핀 컨넥터사용 - nero방식) 8개중 하나는 컨트롤러사용 7개
  scsi II : 0~15 (72핀 컨넥터사용 - wide방식) 16개중 하나는 컨트롤러사용 15개
  참고 : scsi방식은 우선순위는 타겟넘버는 번호가 큰번에서 순위가 높다. 항상 최고순위는 컨트롤러이며 저속장치에 우선순위가 높은 번호를 부여한다. hdd는 0번이며 tape 6번등에 부여된다.


--
unix에서 hdd의 slice 구성

하나의 hdd의 파티션은 0,1,3,4,5,6,7 총 7개까지 나눌수 있으며 아래와 같은 용도로 사용한다.
0 : /
1 : swap
2 : overlap  - 디스크전체를 의미 (예약)
3 : 임의사용
4 : 임의사용
5 : /opt  ( /var)  - 근래에는 /에 옮겨서 같이사용
6 : /usr  - 근래에는 /에 옮겨서 같이사용
7 : /export/home

unix의 파티셔닝은 cylinder단위로 구성하는데 두번째 파티션의 시작 cylinder 번호는 항상 " 첫번째 실린더마지막 번호 + 1 " 로  중복이나 낭비를 막아야 한다. ( 항상 조심)

========================= 디스크추가 -> 장치인식 -> format -> newfs -> mount

format 명령 : unix의 파티션 명령
: format명령은 hdd의 vtoc에서 메모리로 불러와서 메모리에서 작업을 함 hdd에 파티션구성을 저장할때는 항상 format 내부의 명령인 label 명령을 실행해야 함


--
새로운 disk 추가 step

1. hdd 추가
2. # prtconf + grep -v not  : 장치확인
3. # devfsadm -i sd  : 인식안되었을때
4. # format
5. 디스크 선택
6.  format > fdisk  : 새로운 디스크는 0번 섹터가 없으므로 fdisk 먼저 실행
7.  format > verify  : hdd 정보 출력  0번섹터에서 불러옴 (물리 hdd에 적용된 내용)
8.  format > partition
9.  partition > print  : hdd 정보 출력 메모리에서 불러옴 (물리 hdd와 다름) 
10.  partition > 0
11.  partition > ?  :  ? 는 도움말 출력
12.  enter paririon id tag [unassigned] : 추가디스크라면 기본값 unassigned  엔터
13.  enter partition permission flag[wm] : 기본값 입력 (기본값은 wm:read-write 연결해제가능)
14.  enter new starting cyl[0]:  기본값 입력  ( 단 두번째 파티션의 시작은 마지막실린더번호+1 )
15.  enter partition size[0h,0c,0e,0.00mb, 0.00gb] : 용량지정 (MB, GB 가능 - 단 실린더로 바꾸므로 gap 발생)
16.  partition > print  : 적용한 내용 확인
17.  partition > 3  : 3번 파티션 할당
18.  enter paririon id tag [unassigned] : 추가디스크라면 기본값 unassigned  엔터
19.  enter partition permission flag[wm] : 기본값 입력 (기본값은 wm:read-write 연결해제가능)
20.  enter new starting cyl[0]:  두번째 파티션의 시작은 마지막실린더번호+1 )
21.  enter partition size[0h,0c,0e,0.00mb, 0.00gb] : 용량지정 (MB, GB 가능 - 단 실린더로 바꾸므로 gap 발생)
22.  partition > print
23.  partition > label  : 실제디스크에 적용
24.  ready to label disk, continue?  y  입력
25.  partition > quit
26.  foramt > verify  : 실제디스크 파티션 확인

파티션 삭제는 동일과정으로 size를 0 입력

--

동일한 disk가 여러개일때는 위의 step을 여러번 반복해야 하는데 이때 동일한 파티션정보를 복사하고자할때
(단 동일제조사, 동일 용량, 동일 실린더 일때만 가능)

# format > disk  :  디스크 지정 ( 원본으로 쓸 디스크)
# format > partition
  partition > name
  enter table name : 임의이름 입력 ex)  test1
  partition > quit
  format > save
  saving new ~ : /etc/format.dat  입력 (반드시 지정)
  format > disk  : 새로운 디스크를 지정
  format > partition 
  partition >  select
  0:original
  1:test1
  specify table (enter its number[1]: 0 적용시킬 원본을 선택 ( 0번을 1번에 적용)
  partition > print : 적용된것 확인
  partition > lavel  : 물리디스크에 적용
  
참고 : format 내부의 analyze 메뉴에서는 bad 섹터정보를 확인하는데 ( low format 진행)
  메뉴에서 doesn't harm : 데이터에 영향없는것 (권장)  -> (read, refresh, test)
  corrupts data : 데이터에 변형이 됨 (데이터 못쓰게됨)

--
fmthard => name /save 대체명령  (역시 동일 디스크 동일 실린더이어야만 함)
  # fmthard -s 장치파일  대상hdd  : ex> fmthard -s /etc/format.dat  /dev/rdsk/c1d1s0

--
prtvtoc : 파티션 정보보기 명령 (섹터단위로 보이는 명령) prtvtoc  /dev/rdsk/c0d0s0  ( 장치파일 생성)
  => 주로 fmthard 명령을 수행하기 위해 쓰임

ex># prtvtoc /dev/rdsk/c0d1s0 > c0d1  => c0d1으로 장치파일 생성
  # fmthard -s c0d1 /dev/rdsk/c0d1s0


===============
파일 시스템
==============

- ufs : unix file system : 유닉스에서 사용하는 파일시스템
- hsfs : cd-rom에서 사용하는 파일시스템
- pcfs : pc file system (diskette)
- udfs : universal disk file system => DVD rom
- nfs : 원격파일시스템 (공유파일시스템) - 네트웍을 통해 사용하는 system
- swapfs : 가상파일 시스템 ( 메모리의 파일시스템) - 메모리 작업영역
  참고 - tmpfs : /tmp 디렉토리는 swap 영역의 일부공간을 이용 ( 메모리영역이기에 속도가빠르지만 휘발성임)


--
ufs (unix file system) : 디스크의 구조체를 만듬

0번 sector : vtoc정보
1~15번 sector : BOOT Block
16~31번 sector : Super Block
32번 이상 : super backup block, cylinder group block , i-node table
그외 DATA영역
minfree 영역 : 디스크의 끝부분에 root가 관리용도로 사용할수 있는공간 파티션의 1%~10%를 사용

위와 같은 형태로 2번째 파티션도 구조는 같다 단 vtoc는 없음
다른 디스크는 0~15번 섹터는 비어있고 그이후부터는 동일구조를 가짐

super block : 실린더 기초정보, 연결정보
super backup block : super 블럭의 백업
cylinder block : 각실린더그룹에 관련된 정보, i-node갯수
i-node table : inode와 file명 연력

파일을 지운다는것은 inode가 가진 포인터를 끊는것

======
newfs 명령 : 윈도우의 format명령으로 파티셔닝 된 공간에 파일시스템 작업을 함

# newfs /dev/rdsk/c0d1s0  ; 실린더 정보가 올라옴
# newfs -N /dev/rdsk/c0d1s0  ; simulation ( 실제적용은 안됨)

--
mount 명령 : 장치의 구성 ( format -> newfs 이후 장치를 시스템에 연결시킬때 사용하는 명령
  '/' 디렉토리 하위에 /mnt 라는 디렉토리를 만들어 접속지점(마운트 포인트 - 임의생성가능 반드시 /mnt는 아님)을 만들어야 함 ( 디렉토리위에  파티션을 올리는 개념임)

df 명령 : disk용량확인 및 설치지점 확인 명령
# df -k : 전체크기 사용공간 여유공간 출력 ( Kbyte단위로 출력)
# df -h : 전체크기 사용공간 여유공간 출력 ( Mkbyte단위로 출력)


>> mount명령:
  # mount  장치명 마운트지점 => 단일명령시엔 연결방식 연결내역만 출력
  사용자에게 주는 옵션  /intr : 설정이 있다면 ctl-c 명령이 먹는다
  /largefiles : 2G이상의 파일 인식
  /onerror : pannic -> 심각한 에러발생시 해당시스템을 리부팅시킴 (vmcore 파일생성)
  : lock  -> 장치를 잠그어 버림
  /dev = 198.126. . .  device 정보 


형식 # mount  장치명  마운트포인트
ex>
  방법 1.  # mount /dev/dsk/c0d0s3 /dir  : c0d0s3를 /dir 디렉토리로 마운트시킴

  방법 2.  # mount /dev/dsk/c0d0s5  or  # mount  /dir1  : 먼저 /etc/vfstab 파일에 설정을 기록
  /etc/vfstab 파일은 부팅시 점검하며 logging 파일이 있다면 점검안함 (부팅속도 증가)

  방법 3.  # mount -o ro /dev/dsk/c0d1s0  /dir2
  -o : option을 만드는 옵션 , 뒷쪽에 오는것이 옵션이 됨
  ro : read-only , rw은 read-write (생략하면 기본값으로 적용)
  read-only 는 file server같은 경우 변형이 되면 안되는 곳에 쓰임 (root도 안됨)

  no를 생략한 값은 생략시 기본적으로 들어가는 값
  -o  nosuid  : setuid, gid 기능 비활성화(보안에 유리)
  -o  nologgin : 파티션에 문제가 있는지 없는지 점검하는 logging을 안쓰도록 설정함
  -o  nolargefiles : 2G이상 파일의 인식을 지원안함 (사용자 home 디렉토리에 설정할것)
  -o  noatime : 액세스시 액세스 하면서 변경되는 시간을 변경을 금지 (보안에 좋음)
  -o  attr  : 솔라리스 8이상에서 추가보안모듈 사용 허용
  
  여러개의 옵션 사용시 ' , '로 연결  # mount -o ro,nolargefiles,noatime ...

  방법 4.  /etc/vfstab에 정보가 설정이 되어있다면  # mountall  단일명령만 실행 -> 모든장비 마운트
  단! mount시에 mount point에 특정유저가 있다면 mount가 안됨 (umount 도 안됨) 반드시 다른 디렉토리로 이동해야 함

파티션은 하나의 마운트지점에만 연결이 가능함 (디렉토리당 1개)

--
umount 명령 : 장치연결해제

# umount  마운트포인트  =>  ex> # umount /dir
/etc/vstab에 설정이 있다면  => ex> # umountall  # df -h 명령으로 연결확인

--
/etc/vfstab 파일의 내용  (부팅하면서 자동실행됨)

# vi /etc/vfstab의 내용

dev/dsk/ ...  dev/rdsk/....  마운트포인트  점검우선순위  부팅후마운트  옵션
  1)  2)  3)  4)  5)  6)

  1) ->2) 점검한다는 의미
  3) ->  1) 2)  점검하고 연결한다는 의미  
  5) no면 부팅시 연결안함
  6) 안쓸때는 ' - '를 넣을 것  옵션을 넣을때는  -o 생략하고  ro,nolargefiles, ... 입력

--
마운트포인터에 사용자가 있어서 umount가 안될때
=> # umount -f /dir  : 사용자가 사용중일때 강제적으로 umount시키면 DATA가 깨짐 (자주사용 권장 않음)

# mount  [  -F ufs  ]  생략가능  /etc/default.fs  , /etc/dfs/fstype 에 미리 설정되어 있슴
  [  nfs  ]  생략가능  /etc/default.fs  , /etc/dfs/fstype 에 미리 설정되어 있슴

  -F hsfs  : 반드시 지정해야함
  pcfs :  반드시 지정해야함
  udfs : 역시 지정을 해야 인식함

--
/etc/mnttab  =>  #mount 단일명령에서 불러들이는 값임
  이 파일은 log파일임 ( 중요하기때문에  /var 디렉토리가 아닌 /etc 디렉토리에 존재함)


?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
275 Algorithm 암호 알고리즘 및 프로토콜의 이해.. file hooni 2013.04.23 17593
» System/OS [linux] /etc/fstab 설정 방법.. ㅋㅋ hooni 2013.04.23 12435
273 Algorithm Polynomial time 이란? ㅋㅋ hooni 2013.04.23 23186
272 Database [mysql] 루트 암호 초기화 hooni 2013.04.23 11413
271 System/OS [owasp] 10대 웹어플리케이션 보안 취약 file hooni 2013.04.23 16284
270 System/OS 라우팅 경로 결정 영향 요소 ㅋㅋ file hooni 2013.04.23 16265
269 System/OS OSI (Open Systems Interconnection) 개방형 시스템간 상호 접속 file hooni 2013.04.23 11100
268 System/OS 네트워크별 MTU(최대 전송 단위) hooni 2013.04.23 17984
267 System/OS [router] 라우팅 프로토콜 BGP (간단한 세팅) hooni 2013.04.23 11242
266 Algorithm [security] 블럭 암호에 대해서.. hooni 2013.04.23 17495
265 System/OS [router] 시스코 라우터 명령어 모드.. hooni 2013.04.23 13273
264 Develop [c++] RSA Sample 4 CPP hooni 2013.04.23 9394
Board Pagination Prev 1 ... 71 72 73 74 75 76 77 78 79 80 ... 98 Next
/ 98