압축 & 아카이빙
여러개의 파일 및 디렉토리를 gzip, bzip2, tar, zip 방식의 압축을 실시하여 파일 용량을 최소화할 수 있으며,
가장 널리 사용되는 방식은 gzip 방식이다. 또한, tar 방식은 압축이라고 하기에는 애매모호하며, 여러개의
파일들을 하나의 파일로 관리하는 방식이기 때문에 용량은 줄지 않는다. 그렇기 때문에 tar 를 이용하여 압축
대상 파일들을 하나의 파일로 아카이빙(어러개 파일을 하나로 생성) 한 이후, 이 파일들을 gzip 으로 압축하는
것을 권장한다.
gzip & gunzip & zcap
'gzip'은 파일을 압축 및 해지할때 사용하는 명령어이다. 이때 확장자는 '.gz'로 되며, 파일의 속성 정보도
유지하여 압축한다.
'gunzip'은 확장자가 '.gz'로 된 압축 파일 해지 및 압축 파일 내용 확인하는 명령어이다.
'zcat'은 압축 파일 내용을 확인하는 명령어이다.
[root@CentOS /root/test]# gzip -d // 압축 파일 해지할때 사용
[root@CentOS /root/test]# gzip -r // 디렉토리이면, 하위 디렉토리 및 파일까지 압축
[root@CentOS /root/test]# gzip -v // 압축 통계 출력
zcat
bzip2 & bunzip2
bzip2 는 성능이 높은 압축 방식이며, 압축된 파일은 기존 파일의 속성 정보를 그대로 유지한다. tar 아카이브
파일을 압축하면, 기존 아카이브 파일이 제거되고 , bz2 확장자로 생성한다.
[root@CentOS /root/test]# bzip2 -d // 압축 파일 해지
[root@CentOS /root/test]# bzip2 -z // 파일 압축 실시
[root@CentOS /root/test]# bzip2 -v // 압축 및 해지 진행 상황 출력
[root@CentOS /root/test]# bunzip2 -c // 압축 파일 내용을 확인할때 사용
bzcat file1.bz2
tar(압축 & 아카이빙)
tar 는 여러개의 파일이나 디렉토리를 한개의 묶음 파일로 압축할 때 사용하는 명령어이다.
이때, 아카이브(archive), 아카이빙(archiving)이라는 단어는 파일을 보관/기록하다는 의미를 갖고 있다.
c 아카이빙 파일 생성
t 아카이빙 파일 내용 확인
x 아카이빙 파일 해지
f 아카이빙 파일 지정
v 진행 과정 보여줌
z gzip 파일 압축 및 해지 할때 사용
-tar cvzf file.tar.gz file1 file2 file3
= tar cvf file.tar file1 file2 file3
= tar gzip file.tar
파일 타입
리눅스에서 파일은 아래 그림과 같이 Filename, inode, Data Block 으로 구성된다.
filename
inode : 파일 속성 정보, Data Block 포인트 정보가 포함되어 있으며, 'ls -i' 명령어를 이용하여 확인할 수 있다.
Data Block : 일반파일 .심볼릭링크 파일, 디렉토리 이름은 중복되면 안되며, 대소문자도 구분한다.
d : 디렉토리파일
파일명과 파일의 inode number 값이 저장되어 있는 파일(파일내용은 디렉토리에 저장되지 않는다)
디렉토리의 크기는 디렉토릭내의 파일크기와는 무관하다.
mkdir 명령어로 생성한다.
l : 링크파일
- 하드링크와 소프트링크(심볼링크)로 나뉜다.
- 원본파일의 경로가 저장되는 파일.
(링크파일의 실제 퍼미션은 원본파일의 퍼미션을 따른다)
@ 하드링크
[root@CentOS /test]# rm -rf /test/*
[root@CentOS /test]# ls
[root@CentOS /test]# echo ABC > file1
[root@CentOS /test]# ls -l file1
-rw-r--r-- 1 root root 4 2017-04-21 11:31 file1
[root@CentOS /test]# cat file1
ABC
[root@CentOS /test]# ln file1 file2
[root@CentOS /test]# ls -li
합계 8
393221 -rw-r--r-- 2 root root 4 2017-04-21 11:31 file1
393221 -rw-r--r-- 2 root root 4 2017-04-21 11:31 file2
@원본 파일과 하드 링크 파일 관계 확인
1) 파일생성시
ABC
[root@CentOS /test]# echo DEF >> file2
[root@CentOS /test]# cat file2
ABC
DEF
[root@CentOS /test]# cat file1
ABC
DEF
----> file1과 file2이 동일
2) 파일 삭제시
[root@CentOS /test]# cat file1
ABC
DEF
[root@CentOS /test]#
[root@CentOS /test]# rm file1
rm: remove 일반 파일 `file1'? y
[root@CentOS /test]# cat file2
ABC
DEF
------> file1을 지워도 file2는 남아있다.
@심볼릭 링크
만드는 방법 ln -s 파일1 파일2(원본파일)
[root@CentOS /test]# ls -li
합계 4
393221 -rw-r--r-- 1 root root 8 2017-04-21 11:33 file2
393321 lrwxrwxrwx 1 root root 5 2017-04-21 11:37 file3 -> file2
---> file2가 원본, file3가 심볼릭 파일
[root@CentOS /test]# echo XYZ >> file3
[root@CentOS /test]# cat file3
ABC
DEF
XYZ
-----> 심볼릭 링크파일(file3)에 문자를 추가하면 아래와 같이 file2도 연결되어 문자 XYZ가 추가 된다.
[root@CentOS /test]# cat file2
ABC
DEF
XYZ
[root@CentOS /test]# rm file2
rm: remove 일반 파일 `file2'? y
[root@CentOS /test]# cat file2
cat: file2: 그런 파일이나 디렉터리가 없습니다
[root@CentOS /test]# cat file3
cat: file3: 그런 파일이나 디렉터리가 없습니다
---> file2를 삭제하면 file3이 남아있지만 실행이 되지 않는다. 왜냐하면 원본이 사라졌기 때문
[root@CentOS /test]# ls -li
합계 0
393321 lrwxrwxrwx 1 root root 5 2017-04-21 11:37 file3 -> file2
[root@CentOS /test]# ls
file3
ls /dev -l | more
l : 심볼릭링크 파일
b: 블록 디바이스 파일
c: 문자 디바이스 파일
하드 링크
하드 링크는 원본 파일의 경로를 저장하고 있는 파일이다. 만약, 원본 파일 내용이 수정되면, 원본과
동일하게 내용이 수정되며 항상 동일한 정보를 유지하게 된다. 또한, 원본이 삭제되어도 원본과 동일한
정보를 유지하고 있기때문에 원본에 대한 백업으로도 사용할 수 있다. (단, 같은 파티션 내에서만 사용할
수 있다.)
심볼릭 링크(소프트 링크)
심볼릭 링크는 원본 파일을 공유해서 사용하는 방식이다. 주로 다수의 디렉토리에서 동일한 라이브러리를
요구하거나, 하나의 파일을 다수 사용자들이 공용으로 사용할 경우 사용한다. (윈도우 단축 아이콘 개념과
동일하며, 다른 파티션 간에서 사용 가능하다.)
393221 -rw-r--r-- 1 root root 8 2017-04-21 11:00 file2
393321 lrwxrwxrwx 1 root root 5 2017-04-21 11:01 file3 -> file2 file2가 원본
file2가 지워지면 file3도 사라진다.
root@CentOS /test]# ls /dev/ -l | grep ^l --> 링크파일보기
lrwxrwxrwx 1 root root 13 2017-04-21 09:24 MAKEDEV -> /sbin/MAKEDEV
lrwxrwxrwx 1 root root 3 2017-04-21 09:24 cdrom -> sr0
디바이스 파일 (/dev 디렉토리에 있음)
ls -l /dev // 모든 디바이스 파일을 보여줌
[root@CentOS /test]# ls -l /dev | grep ^b ----> 블럭 디바이스 파일만 보여준다.
brw-rw---- 1 root disk 253, 0 2017-04-21 09:24 dm-0
brw-rw---- 1 root disk 253, 1 2017-04-21 09:24 dm-1
brw-rw---- 1 root disk 7, 0 2017-04-21 09:24 loop0
[root@CentOS /test]# ls -l /dev | grep ^c ---- > 캐릭터 디바이스 파일
crw-rw---- 1 root video 10, 175 2017-04-21 09:24 agpgart
crw-rw---- 1 root root 10, 55 2017-04-21 09:24 autofs
crw------- 1 root root 10, 234 2017-04-21 09:24 btrfs-control
[root@CentOS /test]# ls /dev/sda -l
brw-rw---- 1 root disk 8, 0 2017-04-21 09:24 /dev/sda
[root@CentOS /test]# ls /dev/pts/1 -l
crw--w---- 1 root tty 136, 1 2017-04-21 11:08 /dev/pts/1
[root@CentOS /test]# file /dev/pts/1
/dev/pts/1: character special
root@CentOS /test]# ls -ld /etc /etc/issue /bin/ls /dev/sda /dev/pts/1
-rwxr-xr-x. 1 root root 117024 2014-10-15 13:51 /bin/ls
crw--w---- 1 root tty 136, 1 2017-04-21 11:09 /dev/pts/1
brw-rw---- 1 root disk 8, 0 2017-04-21 09:24 /dev/sda
drwxr-xr-x. 120 root root 12288 2017-04-21 10:33 /etc
-rw-r--r--. 1 root root 47 2014-10-23 20:41 /etc/issue
[root@CentOS /test]# ls -ld /etc /etc/issue /bin/ls /dev/sda /dev/root
-rwxr-xr-x. 1 root root 117024 2014-10-15 13:51 /bin/ls
lrwxrwxrwx 1 root root 4 2017-04-21 09:24 /dev/root -> dm-0
brw-rw---- 1 root disk 8, 0 2017-04-21 09:24 /dev/sda 주디바이스번호, 부디바이스번호
drwxr-xr-x. 120 root root 12288 2017-04-21 10:33 /etc
-rw-r--r--. 1 root root 47 2014-10-23 20:41 /etc/issue
디렉토리 구조
리눅스는 트리 구조로 디렉토리를 구성하며, 명령어, 내용, 사용 권한에 따라서 디렉토리가 구분되어 있다.
또한 FHS(Filesystem Hierarchy Standard)라는 표준 파일 시스템 계층을 사용하고 있기 때문에 같은 목적의
파일들을 같은 디렉토리로 관리하여 시스템 자원 및 프로그램들을 쉽게 찾을 수 있다. 리눅스에서 사용하는
대표적인 디렉토리는 다음과 같다.
/ root 디렉토리, 디렉토리 트리 구조에서 가장 상단에 위치함
/root 시스템 관리자 홈 디렉토리
/bin 일반 사용자가 사용하는 기본 명령어들이 있는 디렉토리
/sbin 관리자가 사용하는 시스템 관리 명령어들이 있는 디렉토리
/etc 환경 설정 파일 및 디렉토리를 갖고 있는 디렉토리
/usr 프로그램들이 설치되는 디렉토리
/boot 부트로더와 부팅을 위한 파일이 있는 디렉토리
/dev 장치 파일들이 있는 디렉토리
/var 가변 자료 디렉토리 ex) log 파일
/tmp 임시 파일들이 저장되는 디렉토리
/proc 프로세스 및 프로그램 정보, 메모리/하드웨어 정보 파일이 있는 디렉토리
/lib 공유 라이브러리와 커널 모듈이 있는 디렉토리
/mnt NFS 와 같은 파일 시스템이 임시로 마운트하는 디렉토리
/srv 시스템이 제공하는 서비스를 위한 파일들이 있는 디렉토리
/media USB, CD, DVD 와 같은 이동식 디스크가 마운트되는 디렉토리
/home 시스템 계정을 위한 사용자 홈 디렉토리
/lost+found 부팅시 파일시스템에 문제가 발생하면, 복구할때 사용하는 디렉토리
[root@CentOS /root]# ls -F /bin *실행파일, @링크파일
cat, chmod, chgrp, chwon, env(현재 환경 설정 내용 출력),date, ls, mkdir, rm, rmdir, touch, vi, ping...
[root@CentOS /root]# ls -F /sbin
- ifconfig, reboot, shutdown, mount, fsck(디스크 점검), mkfs(디스크 포멧), iptables...
---------------------------------------------------------------------------------------------------------------------------
파티션
파티션이란 시스템의 하드디스크 영역을 논리적으로 분할하는 것을 의미하며, 파티션 작업을 하는 목적은 다음과 같다.
(Ex : 윈도우 시스템 C, D, E 드라이브)
주파티션
기본적인 파티션이기 때문에 더이상 분리할 수 없으며, 확장 파티션까지 포함해서 총 4개까지 생성할 수 있다.
확장 파티션
파티션을 5개 이상 생성할 경우 사용하는 파티션이다. 확장 파티션은 저장 공간이 별도로 없는 대신, 논리적인 파티션을 생성할 수 있도록 한다. 확장 파티션은 1개만 사용할 수 있으며, 가장 마지막 파티션 번호를 사용하는 것을 권장한다.
논리적인 파티션
확장 파티션에서 제공하는 논리적인 파티션이다. 하나의 확장 파티션가지고 여러개의 논리 파티션을 구성할 수 있다.
Primary Master HardDisk : /dev/hda
Primary Master HardDisk : /dev/sda
Primary Slave HardDisk : /dev/hdb
Primary Slave HardDisk : /dev/sdb
Secondary Master HardDisk : /dev/hdc
Secondary Master HardDisk : /dev/sdc
Secondary Slave HardDisk : /dev/hdd
Secondary Slave HardDisk : /dev/sdd
[파티션 구성]
주파티션 주파티션 주파티션 확장파티션
hda1 hda2 hda3 hd4
논리적 파티션
hd5 ~ hd15
파티션 작업
'/dev/sdc' 파티션 설정 및 삭제
첫번째 주파티션 : 30M
두번째 확장 파티션 : 150번 실린더까지 할당
논리 파티션 : 50개 실린더 할당 (+49)
논리 파티션 : 나머지 모든 영역 할당
세번째 주파티션 : 180번 실린더까지 할당
네번째 주파티션 : 나머지 모든 영역 할당
[root@CentOS /root]# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x78557309.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-204, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-204, default 204): +30M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (32-204, default 32): 32
Last cylinder, +cylinders or +size{K,M,G} (32-204, default 204): 150
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (32-150, default 32): 32
Last cylinder, +cylinders or +size{K,M,G} (32-150, default 150): +49
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (82-150, default 82): 82
Last cylinder, +cylinders or +size{K,M,G} (82-150, default 150): 150
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (151-204, default 151): 151
Last cylinder, +cylinders or +size{K,M,G} (151-204, default 204): 180
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
p
Selected partition 4
First cylinder (181-204, default 181): 181
Last cylinder, +cylinders or +size{K,M,G} (181-204, default 204): 204
Command (m for help): p
Disk /dev/sdc: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x78557309
Device Boot Start End Blocks Id System
/dev/sdc1 1 31 31728 83 Linux
/dev/sdc2 32 150 121856 5 Extended
/dev/sdc3 151 180 30720 83 Linux
/dev/sdc4 181 204 24576 83 Linux
/dev/sdc5 32 81 51184 83 Linux
/dev/sdc6 82 150 70640 83 Linux
Command (m for help): w ---> 다 완료 되면 w를 눌러서 저장한다.
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
---------------------------------------------------------------------------------------------------
[root@CentOS /root]# fdisk -l /dev/sdb ------> 해당장치 파티션 확인하는 명령어
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders(영랭_
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
[root@CentOS2 /root]# fdisk /dev/sdb -------> sdb디바이스의 해당장치 파티션 설정 명령어
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
- 주파티션(50M, 50M , 50M , 나머지영역) 4개 생성
Command (m for help): n ---> 파티션 추가 ,삭제는 d
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-204, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-204, default 204): +50M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (52-204, default 52): 52
Last cylinder, +cylinders or +size{K,M,G} (52-204, default 204): +50M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (103-204, default 103): 103
Last cylinder, +cylinders or +size{K,M,G} (103-204, default 204): +50M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Selected partition 4
First cylinder (154-204, default 154): 154
Last cylinder, +cylinders or +size{K,M,G} (154-204, default 204): 204
Command (m for help): p
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000131fb
Device Boot Start End Blocks Id System
/dev/sdb1 1 51 52208 83 Linux
/dev/sdb2 52 102 52224 83 Linux
/dev/sdb3 103 153 52224 83 Linux
/dev/sdb4 154 204 52224 83 Linux
Command (m for help): w 저장
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@CentOS /root]# ls /dev/sdc*
/dev/sdc /dev/sdc1 /dev/sdc2 /dev/sdc3 /dev/sdc4 /dev/sdc5 /dev/sdc6
[root@CentOS /root]#
---------------------------------------------------------------------------------------------------------------------
파일 시스템 생성= 포맷과 비슷함
파일 시스템이란 파일을 저장하고 관리하는 구조 체계를 의미하며, 리눅스에서는 포멧을 파일 시스템
생성이라고 한다. 파일 시스템을 생성하려면 'mkfs' 명령어를 이용하면 된다.
root@CentOS /root]# fdisk -l /dev/sdb
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x992d33c0
Device Boot Start End Blocks Id System
/dev/sdb1 1 51 52208 83 Linux
/dev/sdb2 52 102 52224 83 Linux
/dev/sdb3 103 153 52224 83 Linux
/dev/sdb4 154 204 52224 83 Linux
[root@CentOS /root]# mkfs -t ext4 /dev/sdb1 // mkfs.ext4 /dev/sdb1 명령어 동일
[root@CentOS /root]# mkfs -t ext4 /dev/sdb2 // mkfs.ext4 /dev/sdb2 명령어 동일
[root@CentOS /root]# mkfs -t ext4 /dev/sdb3 // mkfs.ext4 /dev/sdb3 명령어 동일
[root@CentOS /root]# mkfs -t ext4 /dev/sdb4 // mkfs.ext4 /dev/sdb4 명령어 동일
--------------------------------------------------------------------------------------------------------------------------
마운트
이제 마지막으로 마운트 (mount) 라는 개념을 알아보겠습니다. mount 라는 뜻을 영어적으로 해석하면 '올리다' 라는 뜻이 있죠..말 그대로 입니다..
물리적장치를 특정한 위치[디렉토리]에 연결시켜 주는 과정
/dev/sda1/ ------> /data/ -----> test.txt
버스(물리적장치) -----> 버스 정류장(마운트 된 디렉토리) ----> 홍길동(저장될 데이터)
버스는 버스정류장에 정차한다....(마운트의 개념)
홍길동은 버스 정류장에서 버스를 탄다.(데이터를 마운트 디렉토리에 저장)
버스는 홍길동을 태우고 목적지까지 간다(실제 물리적으로 디스크에 저장)
예를 들어서 data.txt를 /data 아래에 저장하면 /dev/sda1 디스크에 저장이된다.
그 후 /dev/sda1/ date2 디렉토리를 마운트 시키면 데이터는 text.txt가 보이지 않을 뿐 실제로는 /dev/sda1에 저장되어있다.
명령어(파일)위치 : /sbin/mkfs
사용형식
mkfs [-V] [-t 파일시스템타입] [-o 파일시스템옵션] 장치이름 [블록]
-V : 자세한 정보 보기
-t : 생성할 파일시스템타입(ext2, ext3, ext4 등)을 지정, 기본값 ext2
[파일시스템옵션]
-c : 파일시스템을 생성하기 전에 배드블록(Bad Block)을 검사
-l 파일명 : 지정된 파일명으로부터 배드블록(Bad Block)목록 읽기
-v : 작업상태와 결과를 자세히 보기
장치이름 : 장치명(/dev/hda1, /dev/sdb2 등)으로 지정
파일시스템을 생성하려면 ext4 나 ext2등 타입을 정한후 장치명을 확인 해야하는데 장치명은 fdisk -l 로 확인할수있다.
파일 시스템을 생성한 다음, 해당 장치를 사용하기 위해서는 마운트(mount) 작업을 실시해야 한다. 만약, 장치 사용이 완료되었다면 언마운트(umount)를 실시해야 한다.
단, 해당 장치를 사용하고 있다면, 언마운트는 실시되지 않는다.
또한, 'mount' 명령어를 이용하여 마운트된 장치는 부팅시에 적용되지 않기 때문에 '/etc/fstab' 파일을 이용하여 부팅시에 마운트가 되도록 구성해야 한다.
1. 마운트 정보 확인
'df -h' 명령어를 이용하면 마운트 정보 및 디스크 스용량을 확인할 수 있으며, 'mount' 명령어를 이용하면 마운트 진행 및 마운트 상태를 확인할 수 있다.
[root@CentOS /test]# df -h
Filesystem Size Used Avail Use%
/dev/mapper/vg_centos-lv_root 35G 3.7G 30G 12% /
tmpfs 1000M 72K 1000M 1% /dev/shm
/dev/sda1 477M 34M 419M 8% /boot ------(용량 및 마운트 정보확인)
[root@CentOS /test]# mount (# mount | column -t)
/dev/mapper/vg_centos-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)
2. '/etc/mtab' 마운트 파일
현재 마운트된 정보는 '/etc/mtab' 파일로 관리한다. 이 파일은 마운트된 정보를 실시간으로 기록하여 관리하기 때문에
마운트가 된 장치가 있다면 자동으로 정보를 기록하며, 언마운트가된 장치가 있다면 자동으로 정보를 삭제한다.
[root@CentOS /test]# cat /etc/mtab
/dev/mapper/vg_centos-lv_root / ext4 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs rw,rootcontext="system_u:object_r:tmpfs_t:s0" 0 0
/dev/sda1 /boot ext4 rw 0 0 -----> 마운트 된 파일 확인
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
vmware-vmblock /var/run/vmblock-fuse fuse.vmware-vmblock rw,nosuid,nodev,default_permissions,allow_other 0 0
[root@CentOS /test]# cat /etc/mtab | grep /dev/sda1 (# mount | grep /dev/sda1)
/dev/sda1 /boot ext4 rw 0 0
3. 파티션 정보 확인
[root@CentOS /test]# fdisk -l /dev/sdb
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x992d33c0
Device Boot Start End Blocks Id System
/dev/sdb1 1 51 52208 83 Linux 마운트 실시
/dev/sdb2 52 102 52224 83 Linux
/dev/sdb3 103 153 52224 83 Linux
/dev/sdb4 154 204 52224 83 Linux
4. 마운트 실시
[root@CentOS /test]# mount /dev/sdb1 /test ---> 마운트 실행 명령어 test폴더를 /dev/sdb 폴더에 마운트하라
[root@CentOS /test]# cat /etc/mtab | grep /dev/sdb1 ---> 다시 마운트 된 정보 확인
/dev/sdb1 /test ext4 rw 0 0
[root@CentOS /test]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_centos-lv_root
35G 3.7G 30G 12% /
tmpfs 1000M 72K 1000M 1% /dev/shm
/dev/sda1 477M 34M 419M 8% /boot
/dev/sdb1 46M 826K 43M 2% /test
[root@CentOS /test]# cp /etc/services /test
[root@CentOS /test]# ls
lost+found services 'services' 파일은 /test 디렉토리에 있는게 아니라, /dev/sdb1에 있는 개념
[root@CentOS /test]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_centos-lv_root
35G 3.7G 30G 12% /
tmpfs 1000M 72K 1000M 1% /dev/shm
/dev/sda1 477M 34M 419M 8% /boot
/dev/sdb1 46M 1.5M 42M 4% /test
[root@CentOS /test]# rm -f services
[root@CentOS /test]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_centos-lv_root
35G 3.7G 30G 12% /
tmpfs 1000M 72K 1000M 1% /dev/shm
/dev/sda1 477M 34M 419M 8% /boot
/dev/sdb1 46M 826K 43M 2% /test
[root@CentOS /test]# umount /test 마운트된 디렉토리에 있기 때문에 언마운트가 안됨
umount: /test: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
@마운트 이해
1. 'mount' 명령어를 이용한 마운트
'mount' 명령어를 이용하여 해당 파일 시스템을 마운트한다. 반대로 마운트를 해지할 경우에는
'umount' 명령어(umount -a)를 사용한다. 단, 'mount' 명령어를 이용한 마운트 정보는 시스템이 재부팅되면
기록이 남지 않기 때문에 언마운트 상태로 시작된다.
기본값 내용 반대
rw 읽기,쓰기 ro
suid setuid 사용 가능 nosuid
exec 파일 실행 가능 권한 noexec
auto 부팅시 자동 마운트 noauto
nouser 일반 계정 마운트 금지 user
atime access time 기록 noatime
ex) mount -t ext4 -o rw,suid,exec /dev/sdb1 /mnt/test1
ex) mount -t ext4 -o nosuid /dev/sdb1 /mnt/test1
ex) mount -o noexec,rw /dev/sdb3 /mnt/test3
ex) mount -o ro /dev/sdb4 /mnt/test4
2. 장치명을 이용하여 마운트 설정
[root@CentOS2 /root]# vi /etc/fstab
1
2 #
3 # /etc/fstab
4 # Created by anaconda on Wed Feb 3 01:40:21 2016
5 #
6 # Accessible filesystems, by reference, are maintained under '/dev/disk'
7 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
8 #
9 UUID=7c533aa0-0a72-4a94-b076-382622ad8486 / ext4 de faults 1 1
10 UUID=f55d38f2-1434-4107-8aab-3f9ac3cba3b5 /home ext4 de faults 1 2
11 UUID=78b6f307-7ca2-4ae7-b2e5-866f01d64a15 swap swap de faults 0 0
12 tmpfs /dev/shm tmpfs defaults 0 0
13 devpts /dev/pts devpts gid=5,mode=620 0 0
14 sysfs /sys sysfs defaults 0 0
15 proc /proc proc defaults 0 0
16 /dev/sdb1(장치명) /mnt/test1(마운트 포인트) ext4(파일 시스템 유형) defaults(옵션) 1 2
17 /dev/sdb2 /mnt/test2 ext4 nosuid 1 2
18 /dev/sdb3 /mnt/test3 ext4 noexec 1 2
19 /dev/sdb4 /mnt/test4 ext4 ro 1 2
파일 점검 옵션
0: 부팅시 파일 시스템 점검 안함
1: 부팅시 시스템 점검시 가장 먼저 검사
2: 파일 시스템 점검시 순서
[root@CentOS2 /root]# mount -a --> 전부 마운트
[root@CentOS2 /root]# df -h ---> 용량확인
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 13G 4.5G 7.1G 39% /
tmpfs 495M 72K 495M 1% /dev/shm
/dev/sda3 477M 2.3M 449M 1% /home
/dev/sdb1 46M 826K 43M 2% /mnt/test1
/dev/sdb2 46M 875K 42M 2% /mnt/test2
/dev/sdb3 46M 875K 42M 2% /mnt/test3
/dev/sdb4 46M 826K 43M 2% /mnt/test4
3. LABEL을 이용하여 마운트 설정
[root@CentOS2 /root]# e2label /dev/sdb1 /test1 (삭제 # e2label /dev/sdb1 '')
[root@CentOS2 /root]# e2label /dev/sdb2 /test2 (삭제 # e2label /dev/sdb2 '')
[root@CentOS2 /root]# e2label /dev/sdb3 /test3 (삭제 # e2label /dev/sdb3 '')
[root@CentOS2 /root]# e2label /dev/sdb4 /test4 (삭제 # e2label /dev/sdb4 '')
[root@CentOS2 /root]# vi /etc/fstab
1
2 #
3 # /etc/fstab
4 # Created by anaconda on Wed Feb 3 01:40:21 2016
5 #
6 # Accessible filesystems, by reference, are maintained under '/dev/disk'
7 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
8 #
9 UUID=7c533aa0-0a72-4a94-b076-382622ad8486 / ext4 de faults 1 1
10 UUID=f55d38f2-1434-4107-8aab-3f9ac3cba3b5 /home ext4 de faults 1 2
11 UUID=78b6f307-7ca2-4ae7-b2e5-866f01d64a15 swap swap de faults 0 0
12 tmpfs /dev/shm tmpfs defaults 0 0
13 devpts /dev/pts devpts gid=5,mode=620 0 0
14 sysfs /sys sysfs defaults 0 0
15 proc /proc proc defaults 0 0
16 LABEL=/test1 /mnt/test1 ext4 defaults 1 2
17 LABEL=/test2 /mnt/test2 ext4 nosuid 1 2
18 LABEL=/test3 /mnt/test3 ext4 noexec 1 2
19 LABEL=/test4 /mnt/test4 ext4 ro 1 2
[root@CentOS2 /root]# mount -a --> 전부 마운트
[root@CentOS2 /root]# df -h ---> 용량확인
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 13G 4.5G 7.1G 39% /
tmpfs 495M 72K 495M 1% /dev/shm
/dev/sda3 477M 2.3M 449M 1% /home
/dev/sdb1 46M 826K 43M 2% /mnt/test1
/dev/sdb2 46M 875K 42M 2% /mnt/test2
/dev/sdb3 46M 875K 42M 2% /mnt/test3
/dev/sdb4 46M 826K 43M 2% /mnt/test4
'네트워크/서버/모의해킹 > 리눅스' 카테고리의 다른 글
17.4.25(51일차 리눅스 명령어-7) (496) | 2017.04.25 |
---|---|
17.4.24(50일차 리눅스 명령어-6) (506) | 2017.04.24 |
17.4.20(47일차 리눅스 명령어-4) (482) | 2017.04.20 |
17.4.19(46일차 리눅스 명령어-3) (498) | 2017.04.19 |
17.4.18(45일차 리눅스 명령어-2) (496) | 2017.04.18 |