본문 바로가기

IT 관련정보/리눅스

리눅스 기본 이론(3) - 마운트 및 파일 시스템, 스왑, 쿼터 설정

*마운트 사용법


형식


mount -t <파일시스템> -o <옵션> <디바이스명> <마운트위치>


옵션


async - 파일시스템에서 비동기 I/O 사용

defaults - rw, suid, dev, auto, exec, nouser, async를 기본옵션으로 함.

auto - /etc/fstab에 있는 모든 파일시스템을 부팅시 자동마운트 함.

dcv - 파일시스템상의 문자/블록장치를 해석(찾음)함.

exec - 파일시스템에 포함된 바이너리파일을 실행가능하도록함.

noauto - 자동마운트 안 함.

nodev - 파일시스템상의 문자/블록장치를 해석(찾음)안 함.

noexec - 파일시스템에 포함된 바이너리파일을 실행 안 함.

nosuid - SetUID, SetGID 제한

nouser - 일반 사용자의 마운트 제한

remount - 이미 마운트된 파일시스템의 재 마운트

ro - 읽기전용으로 파일시스템 마운트

rw - 읽기/쓰기로 파일시스템 마운트

suid - SetUID, SetGID 허용

vsync - 파일시스템에서 동기 입출력 사용

user - 일반 사용자의 마운트 허용

users - 모든 사용자의 마운트 허용

noatime - 파일시스템 접근을 기록하지 않음


실습1] CD-ROM 마운트

CD-ROM, DVD의 경우 파일시스템 iso9660이다.


mount -t iso9660 /dev/hdc /cdrom


CD 꺼내기 - eject


실습2] MS-DOS 파티션 마운트


mkdir /doc

mount -t msdos /dev/hdd1 /dos


실습3] NTFS 파일시스템 마운트

*Centos는 ntfs 파일시스템을 지원하지 않는다.

ntfs 패키지를 설치해야 마운트가 가능하다.

패키지명 : fuse-ntfs-3g,dkms,dkms-fuse

사이트에서 rpm으로 설치


mkdir /ntfs

ntfs-3g /dev/hdd1 /ntfs


실습4] 파일시스템을 모르는 경우 마운트하기


mount -t auto /dev/hdd1/test


실습5] ISO 파일을 마운트하기


mount -t iso9660 -o loop iso파일 /폴더명


실습6] NFS 서버 마운트하기


mount -t nfs 서버주소: 공유디렉토리 마운트포인트



* 부팅 시 파일시스템 

1. 디바이스필드

하드디스크 파티션을 지정하는 디바이스 필드는 세가지 형태로 구분한다.


*UUID로 디바이스 표시하기


ex)

#/ib/udev/vol_id /dev/sda1

ID_FS_USAGE = filesystem

ID_FS_TYPE = ext3

ID_FS_VERSION = 1.0

ID_FS_UUID = b520ec9b-c399-47fe-ga5e-26456aea03f4

ID_FS_LABEL = /boot

ID_FS_LABEL_SAFE = boot


# findfs UUID=b520ec9b-c399-47efe-9a5e-26456aca03f4


두번째, 라벨명으로 디바이스명 표기하기

/dev/sda1 / 

fidsk -l /dev/sda


*새로운 라벨명 지정하기

# e2label 디바이스명 새라벨명


#e3label /dev/sda1 NEW


/etc/fstab 라벨명으로 마운트 설정 형식

LABEL=NEW / ext3  defaults 1  1


세번째, 장치명으로 디바이스명 표기하기

/dev/sda1 / ext3 defaults  1   1


2.마운트위치(마운트포인트)필드

파티션 또는 파일시스템이 마운트되어질 위치를 지정한다.


swap 파티션은 swap으로 지정한다.


3.파일시스템 종류 필드

ext2, ext3, ext4, reiserfs, jfs, xfs, msdos, vfat, ntfs, iso9600, nfs, udf ...

만약 파일시스템을 모를 경우 auto로 지정해주면 자동으로 파일시스템을 인식하게 된다.


4.옵션필드

옵션

async 파일시스템에서 비동기 I/O사용

auto /etc/fstab에 있는 모든 파일 시스템을 부팅시 자동마운트함

defaults rw, suid, dev, auto, exec, nouser, asybc를 기본옵션으로함.

dev 파일시스템상의 문자/블록장치를 해석함.

exec 파일시스템에 포함된 바이너리파일을 실행가능하도록함

noauto 자동마운트 안 함

nodev 파일시스템상의 문자/블록장치를 해석안 함

noexec 바이너리파일을 실행 안 함

nosuid SetUID, SetGID 제한시킴

nouser 일반사용자의 마운트 제한

remount 이미 마운트된 파일시스템의 재 마운트

ro 읽기전용으로 파일시스템 마운트

rw 읽기/쓰기로 파일시스템 마운트

suid SetUID, SetGID 허용

vsync 파일시스템에서 동기 입출력 사용

user 일반 사용자의 마운트 허용

users 모든 사용자의 마운트 허용

noatime 파일시스템 접근을 기록하지 않음


*옵션을 여러개 지정할 경우 사이띄기 없이 콤마로 구분해준다.

옵션1,옵션2,옵션3....


5.dump 필드

덤프필드는 dump 명령으로 파일시스템을 덤프할 것인지 결정한다.

1의 값은 리눅스 파일시스템에 지정하고, 그외의 경우는 0을 지정


dump?

메모리에서 작업하고 있는것을 하드디스크로 저장.


6.파일시스템점검필드(fsck)

fsck 명령으로 파일시스템을 점검할 것인지를 결정.

0인 경우에는 부팅시 파일시스템을 점검하지 않는다.

1인 경우에는 부팅시 루트 파일시스템을 점검한다.

2인 경우에는 부팅시 나머지 파티션을 점검한다(루트 파티션 제외).


/       기본 최소설정보다 조금 더    /dev/sda2

home 제일 많은 용령

/export/home

var 로그, 매일......

usr 사용자가 프로그램 설치


-------------------------------------------------------

파일시스템 변환하기


1.ext2를 ext3로 변환하기

/dev/sdd를 ext2로 파티션 하기


tune2fs -j 파티션 명

ex)tune2fs -j /dev/sdd1


tune2fs 1.39 (29-May-2006)

Creating journal inode: done

This filesystem will be automatically checked every 35 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.


=>마운트를 무제한으로 할 수 있는 것이 아님


2.ext3를 ext2로 변환하기

tune2fs -O ^has_journal /dev/sdd1


3.mount 최대횟수와 점검 간격일을 늘려주기


tune2fs -c 50 -i 365 /dev/sdd1


확인 

tune2fs -l /dev/sdd1


[root@GNOME-08 PE]# tune2fs -l /dev/sdd1

tune2fs 1.39 (29-May-2006)

Filesystem volume name:   <none>

Last mounted on:          <not available>

Filesystem UUID:          634ca404-3752-4b8e-8044-640a570b3876

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal resize_inode dir_index filetype needs_recovery sparse_super large_file

Default mount options:    (none)

Filesystem state:         clean

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              130560

Block count:              261048

Reserved block count:     13052

Free blocks:              252519

Free inodes:              130549

First block:              0

Block size:               4096

Fragment size:            4096

Reserved GDT blocks:      63

Blocks per group:         32768

Fragments per group:      32768

Inodes per group:         16320

Inode blocks per group:   510

Filesystem created:       Thu Apr 21 15:06:32 2016

Last mount time:          Thu Apr 21 15:23:03 2016

Last write time:          Thu Apr 21 15:27:12 2016

Mount count:              4

Maximum mount count:      50

Last checked:             Thu Apr 21 15:06:32 2016

Check interval:           31536000 (12 months, 5 days)

Next check after:         Fri Apr 21 15:06:32 2017

Reserved blocks uid:      0 (user root)

Reserved blocks gid:      0 (group root)

First inode:              11

Inode size:               128

Journal inode:            8

Default directory hash:   tea

Directory Hash Seed:      d07f69d1-2867-4391-8d03-31feb405524c

Journal backup:           inode blocks


[실습] 파일시스템을 점검하지 않으려면?

예를 들어 하드디스크 용량이 100TB라고 가장한다.

fsck는 언제 동작할까? 부팅시


tune2fs -c 0 -i 0 /dev/sdd1


----------------------------------------------------------------------------------

PROC 파일 시스템


proc 파일시스템은 리눅스 시스템이 부팅될 때 커널에 의해서 생성되는 가상파일시스템이다.

/proc 디렉토리에는 숫자로된 디렉토리와 각종 시스템파일,

네트워크 관련 정보를 담고 있는 파일들이 위치하고 있으며,

cat 명령을 사용하여 파일내의 정보를 확인할 수 있다.


cmdl 명령행 command line

cpuset 작업 CPU

cwd 작업디렉토리 링크

environ 환경변수

exe 프로세스를 실행시킨 명령어의 심볼링링크

maps 실행어와 라이브러리파일의 메모리 맵

io 입출력정보

lognuid 로그인사용자의 uid

mem 프로세스에 의해서 사용되는 메모리

mounts 파일시스템 마운트 정보

mountstats 파일시스템 마운트 상세정보

root 프로세스의 루트 디렉토리

stat 프로세스 상태

startm 프로세스 메모리상태

status 프로세스 상태로 구별이 쉽도록 쉬운 포멧


1.CPU 정보(/proc/cpuinfo)


cat /proc/cpuinfo


2.드라이버 보기(/proc/drivers)


cat /proc/drivers


3.인터럽트 상태 (/proc/interrupts) =>긴급 상황에서 cpu 호출 (윈도우에서 ctrl+alt+del) 


 12:      49271    IO-APIC-edge  i8042 =>마우스


4.RAID 상태보기 (/proc/mdstat)


cat /proc/mdstat


5.메모리정보(/proc/meminfo)

cat /proc/meminfo


6.마운트정보(/proc/mounts)

cat /proc/mounts


7.파티션정보(/proc/partitions)

cat /proc/partitions


8.스왑정보(/proc/swaps)

cat /proc/swaps


--------------------------------------------------------------------------------------------------

파일시스템 만들기


포멧 명령어

1.mkfs -t 파일시스템 파티션명

2.mkfs.파일시스템 파티션명


파일시스템 점검하기

(fsck)


부팅시 오류메시지 발생


--------------------화면 ----------------------


**** an error occurred durin the file system check.

**** Droppping you to a shell; they system will reboot

**** when you leave the shell

Give root passwd for maintenance

(or type Control-D for normal startup):루트패스워드


(Repair filesysystem)1 # 여기에 fsck 명령을 실행한다.

==>fsck.ext3 /dev/sda1


---------------------------------------------------------------------------------------------------

스왑파티션 만들기

swap 파티션은 물리적 메모리 용량이 부족하여 더 이상 처리중인 데이터를 저장할 공간이 없을 때 사용되는 임시 메모리라고

할 수 있다. 스왑이 자주 발생한다면 실제로는 물리메모리가 부족한 경우라고 볼수 있기 때문에 스왑공간을 늘리는것보다는 물리메모리를 

업그레이드하는 것이 효과적인 방법이 될 수 있다.


1. 스왑파티션 생성

mkswap -c 디바이스명

예)

mkswap -c /dev/sdc

Setting up swapspace version 1, size = 1073737 kB


2. 스왑 파티션활성화

swapon 디바이스명

swapoff 디바이스명


3. /etc/fstab에 추가

스왑 파티션 swap swap defaults 0 0


DISK QUOTA

쉘 사용자의 게정 용량을 제한하는 것.

웹호스트 또는 계정서비스에서 사용자에 일정 계정 공간을 할당하고자 할 때 주로 사용된다.

예) N드라이브 , 구글드라이브 , DropBox , 카페 , 블로그


1. 디스크쿼터설정

/etc/fstab 옵션필드에 쿼터옵션을 추가해주어야 한다.


#vi /etc/fstab

/dev/VolGroup00/LogVol00 /                   ext3    defaults,usrquota 1 1

            grpquota



실습] /dev/sdc, /sdv/sdd


두개의 하드디스크를 하나로 합쳐서 쿼터선언.


작업1. RAID

작업2. LVM


2. 쿼터 파티션 재 마운트하기


mount -o remount /


mount 명령으로 마운트옵션에 usrquota옵션이 추가된것을 확인한다





3. 쿼터 데이터베이스 파일 생성 (aquota.user)

사용자의 쿼터정보를 저장하는 데이터베이스 파일인 aquota.user 파일을 만든 후 600의 퍼미션을 부여해준다.


touch /aquota.user

chmod 600 aquota.user




4. 쿼터상태 체크

quotacheck 명령을 사용하여 쿼터상태를 체크하고 /aquota.user 데이터베이스 파일에 저장되도록 한다.


quotacheck -avugm




5. 쿼터활성화

모든 계정에 대해서 쿼터를 설정하기 위해서 쿼터를 활성해준다.


quotaon /




6. 사용자 용량 제한하기

edquota 명령을 이용하여 시스템내에 존재하는 계정 사용자에 대해서 쿼터를 설정할 수 있다.

예)tel2 계정의 용량을 제한하려면


edquota tel2


위의 명령을 실행하면 vi 편집기가 실행되며 tel2 사용자의 쿼터설정 내용이 보인다. 이 부분을 수정해주면 된다.


Filesystem     blocks         soft            hard            inodes              soft           hard

                       총용량  제한용량  오버용량   파일총개수    제한개수     오버개수


예를들어 500MB로 제한하고 파일은 10개로 제한하고자 한다.(오버는 10%,20%)


Filesystem     blocks         soft            hard            inodes              soft           hard

                                     500*1024    550*1024                                10               12


* 오버범위는 기본 1주일동안만 사용가능하다.


7.유예기간은 사용자의 계정 용량이 soft limit로 지정한 용량에 도달했을 때부터 

hard linit 범위내에서 계정 용량을 초과하여 사용할 수 있도록 한시적으로 적용되는 기간이다.

이 설정을 하지 않으면 기본값으로 1주일이 지정된다.


edquota -t 명령으로 확인할 수 있다.


8.쿼터 설정 상태 확인 (repquota -a)

쿼터 상태를 확인할 수 있다.

일반유저는 자신의 계정으로 로그인한 후 quota 명령을 사용하여 자신의 쿼터정보를 확인할 수 있다.


9.쿼터설정을 다른 사용자와 동일하게 설정하기


계정:user1, user2, user3, user4

쿼터:user1dprp 500MB, 15개의 파일 허용


edquota -p user1 user2 user3 user4