Contents

System/OS
2013.04.23 12:52

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

조회 수 12079 댓글 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
번호 분류 제목 글쓴이 날짜 조회 수
1173 System/OS 해커스랩 깨기.. 후후.. ㅋㅋ file hooni 2013.04.23 18409
1172 Etc 플라스터(Plaster) 수업 내용 secret hooni 2016.05.24 0
1171 Develop 프로그램 문서 관리 (Doxygen) hooni 2013.04.23 16384
1170 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 21243
1169 Develop 프로그래밍 소스 관련 사이트.. hooni 2013.04.23 16484
1168 Develop 페이팔에서 돈 찾기 (Paypal withdraw) file hooni 2014.02.20 10954
1167 Etc 티스토리 테이블 html,css 구문 hooni 2013.11.03 15941
1166 System/OS 콘솔에서 패스워드 걸린 zip 압축하는 명령 hooni 2018.03.02 926
1165 System/OS 컴파일러 수업 자료(교재 : 컴파일러 입문) file hooni 2003.04.23 21964
1164 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 724
1163 Etc 캘리포니아 운전면허 문제 file hooni 2017.07.22 956
1162 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98