북극곰의 개발일기

[리눅스마스터 2급]





posted by purplebeen on Wed Jan 10 2018 00:41:36 GMT+0900 (KST) in Linux


root:x:0:0:root:/root:/bin/bash

root : 관리자 이름

x : password 암호화

Setuid : user 권한 설정 (유저의 권한을 실행할때 루트권한으로 상승)

Setgid : group 권한 설정 (그룹의 권한을 실행할때 루트권한으로 상승)

: 4000, 2000 : 권한

stickybit : 기타 권한 설정 (기타의 권한을 실행할 때 루트 권한으로 상승)

: 1000: 공유디렉토리, 삭제 소유자만

ext4

장점

형 파일 시스템

  • 최대 1EB의 볼륨과 최대 16TB의 파일을 지원함.

Extent

  • ext2와 ext3에서 쓰이던 전통적인 블록 매핑(block mapping) 방식을 대체하기 위한 것
  • 인접한 물리적 블록의 묶음, 대용량 파일 접근 성능을 향상시키고 단편화를 줄임
  • ext4에서 하나의 extent는 최대 128 MiB의 연속적인 공간에 매핑될 수 있음.
  • 그 공간은 4 KiB 크기의 블록으로 구분됨.
  • inode에는 4개의 extent가 존재할 수 있음.
  • 하나의 파일에 extent가 4개 이상 할당되는 경우에는, 나머지 extent들이 Htree에 인덱스됨

하위 호환성

  • 하위 호환성이 있어 ext3와 ext2 파일 시스템을 ext4로 마운트 하는 것이 가능 (약간의 성능 향상)

-> ext4의 새 기능 중 새로운 블록 할당 알고리즘과 같은 것은 ext3과 ext2에서도 사용될 수 있기 때문

  • ext3은 ext4 파일 시스템을 마운트할 수 있는, ext4에 대한 부분적인 상위 호환성이 존재.
  • 단, ext4의 주요 특징인 Extents를 사용한다면, ext3으로 마운트는 불가능.

지연된 할당

  • allocate-on-flush(지연된 할당) 이라는 파일 시스템 성능 기술을 사용
  • 데이터가 디스크에 쓰여지기도 전에 블록을 할당하는 다른 파일 시스템과는 다르게, 데이터가 디스크에 쓰여지기 전까지 블록 할당을 지연시킴.
  • 실제 파일 크기에 기반하여 블록 할당을 결정함으로 인해 향상된 블록 할당이 가능하게 되어 하나의 파일에 대한 블록이 여러 곳으로 분산되는 현상을 막음

-> 이는 다시 디스크 이동을 최소화 시킴으로써 성능을 향상 시킴

32,000개의 하위 디렉터리 제한 없음

  • ext3에서 하위 디렉터리의 수는 32,000개로 제한되어 있음.
  • ext4에서 64,000개로 늘어났으며, "dir_nlink" 기능은 이보다 더 큰 개수도 허용한다.
  • 더 큰 디렉터리를 가능하게 하면서도 지속된 성능을 얻기 위해서, Htree 인덱스 (B-tree의 특별한 버전)은 기본적으로 사용됨
  • 커널 2.6.23에서 구현되었다. Htree는 ext3에서도 "dir_index" 기능이 켜져있으면 사용 가능

단점

지연된 할당과 데이터 유실 가능성

  • 프로그래머가 ext3에서 의도했던 동작을 변경하기 때문에, 이 특성은 모든 데이터가 디스크에 기록되기 전에 발생한 시스템 크래시나 전원 차단 시 추가적인 데이터 유실 위험을 야기함.
  • 2.6.30 이상의 커널에서는 자동으로 이런 경우를 알아차리고 이전의 동작으로 되돌린다.

fsck 옵션

  • -s : fsck 동작을 시리얼화한다. 대화형 모드에서 여러 파일 시스템을 점검할 때 유용.(주의 : e2fsck는 기본값으로 대화형으로 실행. e2fcsk을 비대화형 모드로 실행하려면, 에러를 자동으로 치유하고자 하는 경우에는 -p 또는 -a 옵션을 주고 자동으로 치유하고 싶지 않은 경우에는 -n 옵션을 줌.)
  • -t : 검사할 파일 시스템의 형식을 지정. -A 옵션과 같이 사용되면 /etc/fstab 파일에 기술된 파일 시스템 중 해당하는 형식의 파일 시스템들만 검사하게 됨. 파일 시스템 형식 앞에 no를 붙이게 되면 해당 파일 시스템 형식을 제외한 다른 파일 시스템들을 검사함.
  • -r : 검사 후 복구 여부를 묻는다.
  • -a : 검사 후 오류가 난 파일을 자동으로 복구한다.
  • -A : /etc/fstab 파일에 기술되어 있는 파일 시스템들을 지정된 순서에 맞게 모두 검사. 일반적으로 rc 스크립트에 기술되어(rc 스크립트 참조) 시스템 자동으로 검사하도록 설정됨.
  • -N : 실행하지 않고 단지 수행될 내용을 출력. 즉, 수행 내용을 시뮬레이션함.
  • -P : -A 플래그와 같이 사용될 때 다른 파일 시스템과 함께 병렬 처리하여 루트 파일 시스템을 점검하도록 함. 이것은 루트 파일 시스템에 의심스러운 상태라면 오류를 일으킬 수 있으므로 안전한 방법은 아님.
  • -R : -A 플래그와 같이 사용될 때 루트 파일 시스템은 제외하도록 함.
  • -V : 실행되는 각 파일 시스템용 명령을 포함하여 자세한 출력을 수해함.

파일 시스템 특정 옵션

  • -a : 어떤 질문도 하지 않고 파일 시스템을 자동으로 보수함.
  • -r : 대화형 모드로 파일 시스템의 오류를 수정한다. 즉, 사용자에게 확인을 요구함.
  • -n : 몇몇 파일 시스템에 특정된 것으로, 문제를 수정하지 않고 단순히 그런 문제를 표준출력(stdout)으로 보고.
  • -y : 몇몇 파일 시스템에 특정된 것으로, 감지된 파일 시스템 오류를 자동적으로 수정하도록 함.

vi /etc/fstab

  • e2fsck : 파일시스템 이상 여부 검사
  • fdisk : 파티션생성
  • mkfs : make file system.
  • quota : 디스크 사용 제한 설정 명령어
  • mount : 파일 시스템을 인식할 때 사용
  • -a : /etc/fstab에 명시된 시스템을 마운트 할 때 쓰이는 옵션.
  • -t 파일 시스템 타입: 파일 시스템의 타입을 지정하는 옵션으로 이 옵션을 지정하지 않으면 /etc/fstab 파일에서 참조함. 보통 5가지타입이 있음.

파일시스템 타입

  • msdos : 긴 이름을 지원하지 못하는 타입으로 파일 이름도 최대 8.3구조이다. MS-DOS, 윈도 우95 파일 시스템을 마운트 할 때 사용함.
  • vfat => 긴 이름의 디렉토리를 지원하는 타입으로 요즘 윈도우 타입. 윈도우98 파일 시스템을 보기 위해선 보통 이 타입으로 설정하면 됨.
  • ntfs => 윈도우 NT, 2000 계열 파일시스템
  • ext2,ext3 => 리눅스 파일시스템 타입. iso9660 => CD-ROM파일시스템

-o 옵션

  • 마운트할 때 ro(읽기전용)와 rw(읽기/쓰기)를 지정. 또는 시스템을 다시 마운트할때 사용
  • 옵션 ro : 읽기 전용 으로 마운트. rw : 읽기/쓰기 모드로 마운트. 기본값.
  • remount : 해당 파티션을 다시 마운트. 파티션 정보를 바꾸었을 때 사용.
  • loop : loop 디바이스로 마운트할 때 씀. CD 이미지인 iso 이미지등을 마운트 해서 사용할 때 씀.
  • noatime: 노트북에서 사용하는 옵션으로 디스크 접근에 따른 배터리시간을 늘려줌
  • --bind : 커널 2.4부터 지원하는 옵션으로 이미 마운트 되어 있는 디렉토리를 추가로 다른 디렉토리로 마운트 시켜줌