우리가 디스크를 사용하기 위해서는 디스크에 파티션을 생성한 뒤 파티션을 file system으로 포맷한 후 그 영역에 디바이스를 mount 해야한다.
✅ 디스크
✅ 디스크 구조
- 섹터 : 섹터는 자체적으로 주소를 가지고 있는 스토리지의 단위이다.
- 트랙 : 플래터 위의 동심원이다. 트랙은 숫자가 붙여져 있으며 플래터 바깥면부터 0으로 시작된다.
- 실린더 : 각 드라이브 플래터 표면에 동일한 트랙들의 집합으로, 헤드는 트랙번호가 아닌 실린더 번호를 참조한다.
- 플래터 : 하나 또는 다수의 평평한 디스크들을 플래터라고하며 데이터는 이곳에 바이너리 코드로 기록된다. 플래터의 양 표현에 데이터를 기록하거나 읽게되며 플래터의 수가 디스크 용량을 결정 짓는다.
✅ Hard Disk 종류 (타입)
- IDE (Integrated Drive Electronics) - hdx
- SATA (Serial Advanced Technology Attachment) - sdx
- SCSI (Small Computer System Interface)
- SAS (Serial Attached SCSI) 크기가 작고 빠르며, 안정적이다. → 가격이 비싸다
- Virtual Disk - vdx
✅ 파티션(Partition)
- 하나의 물리적인 디스크를 여러개의 논리적 디스크로 나누는 것이다.
- 리눅스 파티션의 종류
- 주(Primary) 파티션
- 확장(Extention) 파티션
- 논리(Logical) 파티션
- 리눅스는 주 파티션을 4개까지만 생성할 수 있다. 그 이상 파티션이 필요한 경우 확장 파티션을 생성해야한다.
- 확장 파티션을 다시 논리 파티션으로 나눌 수 있으며 주, 확장, 논리를 포함 총 12개까지 파티션을 만들 수 있다.
✅ 파티션 종류
MBR | GPT | |
개발 시기 | 1980년대 초 | 1990년대 말 |
파티션 수 | 주파티션 4 주파티션 3 + 확장 1 |
주파티션 128개까지 가능 |
인식 용량 | 2TB 까지 가능 2TB 이상일 시 인식하지 못함 |
8ZB 까지 가능 (8ZB == 80억TB) |
명령어 | fdisk | gdisk |
- 1개의 디스크에는 1개의 파티션 종류만 사용 가능하다. (MBR, GPT를 혼합해서 사용할 수 없다는 뜻이다)
✅ 파티션 명령어
- lsblk - 현재 시스템의 블록 장치 상태 확인 명령어
- fdisk [- 디스크의 파티션 설정과 정보를 확인하는 명령어
- 사용 방법
fdisk [options] <disk> 파티션 테이블 변경
fdisk [options] -l <disk> 파티션 테이블들을 나열
fdisk -s <partition> 블록 안의 파티션에 사이즈 부여
- fdisk 옵션
옵션 | 의 미 |
-l | 파티션 정보를 출력해 줍니다. |
-s | 특정 파티션의 크기를 출력합니다. 512byte 단위 |
-t | 지정된 파티션 테이블 유형만 인식합니다. |
-v | fdisk 버젼을 출력합니다. |
- gdisk [디스크명] - GPT 파티션 생성
- partprobe [디스크명] - 디스크 정보를 시스템에 등록
✅ 파티셔닝 사용 예시
키워드 | 의 미 |
d | 파티션을 삭제 합니다. |
F | 파티션이 없는 빈 공간을 조회합니다. |
l | 파티션 타입의 종류를 조회합니다. |
n | 파티션을 새롭게 추가 합니다. |
p | 현재 디스크의 정보를 출력합니다. |
t | 파티션의 속성을 변경합니다. 속성은 l 로 종류를 확인할 수 있습니다. |
v | 파티션 테이블을 확인합니다. |
i | 파티션에 대한 정보를 출력합니다. |
w | 저장 후 종료 |
0. 현재 시스템의 블록 장치 상태 확인
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 4G 0 part [SWAP]
└─sda2 8:2 0 56G 0 part /
sdb 8:16 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
1. 파티션 생성
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x8a0aae58.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048): # 0부터 2047까지는 MBR partition table
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +4G
Partition 1 of type Linux and of size 4 GiB is set
- p 키로 주 파티션, e 키로 확장 파티션 선택 가능 (default : p)
- 섹터 개수 혹은 지정 사이즈로 생성 가능
- First sector의 영역이 2048에서 시작하는 이유 : 0 ~ 2047 영역은 MBR partition table 저장 장소
- MBR partition table : 파티션에 대한 데이터가 저장되는 영역
2. 현재 디스크 정보 출력
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x8a0aae58
Device Boot Start End Blocks Id System
/dev/sdb1 2048 8390655 4194304 83 Linux
- 전체 디스크 크기와 섹터 개수 및 사이즈 확인 가능
- 생성된 파티션에 대한 정보 확인
Q) 20G로 구성된 디스크 영역을 각각 4G, 5G, 6G 크기로 파티셔닝한 후 마지막 파티션을 5G로 설정하면 "value out of range" 가 뜬다. 그 이유는 ?
MBR table에 새로만든 파티션에 대한 정보가 추가되었으므로 온전한 5G 영역을 사용할 수 없다.
3. 파티션 정보 저장
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# partprobe /dev/sdb
- 파티션 변경 시 w로 저장 후 종료
- partprobe 명령어를 사용해 변경된 파티션 정보를 인식한다.
4. 현재 시스템의 블록 장치 상태 확인
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 4G 0 part [SWAP]
└─sda2 8:2 0 56G 0 part /
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 4G 0 part
├─sdb2 8:18 0 5G 0 part
├─sdb3 8:19 0 6G 0 part
└─sdb4 8:20 0 5G 0 part
sr0 11:0 1 1024M 0 rom
[root@localhost ~]# ls -l /dev/sdb
brw-rw----. 1 root disk 8, 16 2월 24 14:23 /dev/sdb
[root@localhost ~]# ls -l /dev/sdb1
brw-rw----. 1 root disk 8, 17 2월 24 14:23 /dev/sdb1
[root@localhost ~]# ls -l /dev/sdb2
brw-rw----. 1 root disk 8, 18 2월 24 14:23 /dev/sdb2
[root@localhost ~]# ls -l /dev/sdb3
brw-rw----. 1 root disk 8, 19 2월 24 14:23 /dev/sdb3
[root@localhost ~]# ls -l /dev/sdb4
brw-rw----. 1 root disk 8, 20 2월 24 14:23 /dev/sdb4
[root@localhost ~]# ls -l /dev/sda
brw-rw----. 1 root disk 8, 0 2월 24 10:10 /dev/sda
[root@localhost ~]# ls -l /dev/sda1
brw-rw----. 1 root disk 8, 1 2월 24 10:10 /dev/sda1
[root@localhost ~]# ls -l /dev/sda2
brw-rw----. 1 root disk 8, 2 2월 24 10:10 /dev/sda2
5. 파티션 삭제하기
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xdb5b268b
Device Boot Start End Blocks Id System
/dev/sdb1 2048 8390655 4194304 83 Linux
/dev/sdb2 8390656 18876415 5242880 83 Linux
/dev/sdb3 18876416 31459327 6291456 83 Linux
/dev/sdb4 31459328 41943039 5241856 83 Linux
Command (m for help): d
Partition number (1-4, default 4):
Partition 4 is deleted
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xdb5b268b
Device Boot Start End Blocks Id System
/dev/sdb1 2048 8390655 4194304 83 Linux
/dev/sdb2 8390656 18876415 5242880 83 Linux
/dev/sdb3 18876416 31459327 6291456 83 Linux
+ Extension Partition 생성하기
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e):
Using default response e
Selected partition 4
First sector (31459328-41943039, default 31459328):
Using default value 31459328
Last sector, +sectors or +size{K,M,G} (31459328-41943039, default 41943039):
Using default value 41943039
Partition 4 of type Extended and of size 5 GiB is set
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xdb5b268b
Device Boot Start End Blocks Id System
/dev/sdb1 2048 8390655 4194304 83 Linux
/dev/sdb2 8390656 18876415 5242880 83 Linux
/dev/sdb3 18876416 31459327 6291456 83 Linux
/dev/sdb4 31459328 41943039 5241856 5 Extended
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# partprobe /dev/sdb
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 4G 0 part [SWAP]
└─sda2 8:2 0 56G 0 part /
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 4G 0 part
├─sdb2 8:18 0 5G 0 part
├─sdb3 8:19 0 6G 0 part
└─sdb4 8:20 0 1K 0 part
sr0 11:0 1 1024M 0 rom
sdb4에 1K가 할당되어 있는 것을 확인할 수 있다.
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xdb5b268b
Device Boot Start End Blocks Id System
/dev/sdb1 2048 8390655 4194304 83 Linux
/dev/sdb2 8390656 18876415 5242880 83 Linux
/dev/sdb3 18876416 31459327 6291456 83 Linux
/dev/sdb4 31459328 41943039 5241856 5 Extended
Command (m for help): n
All primary partitions are in use
Adding logical partition 5
First sector (31461376-41943039, default 31461376):
Using default value 31461376
Last sector, +sectors or +size{K,M,G} (31461376-41943039, default 41943039): +1G
Partition 5 of type Linux and of size 1 GiB is set
Command (m for help): n
All primary partitions are in use
Adding logical partition 6
First sector (33560576-41943039, default 33560576):
Using default value 33560576
Last sector, +sectors or +size{K,M,G} (33560576-41943039, default 41943039): +1G
Partition 6 of type Linux and of size 1 GiB is set
Command (m for help): n
All primary partitions are in use
Adding logical partition 7
First sector (35659776-41943039, default 35659776):
Using default value 35659776
Last sector, +sectors or +size{K,M,G} (35659776-41943039, default 41943039): +1G
Partition 7 of type Linux and of size 1 GiB is set
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xdb5b268b
Device Boot Start End Blocks Id System
/dev/sdb1 2048 8390655 4194304 83 Linux
/dev/sdb2 8390656 18876415 5242880 83 Linux
/dev/sdb3 18876416 31459327 6291456 83 Linux
/dev/sdb4 31459328 41943039 5241856 5 Extended
/dev/sdb5 31461376 33558527 1048576 83 Linux
/dev/sdb6 33560576 35657727 1048576 83 Linux
/dev/sdb7 35659776 37756927 1048576 83 Linux
Command (m for help): d
Partition number (1-7, default 7): 4
Partition 4 is deleted
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xdb5b268b
Device Boot Start End Blocks Id System
/dev/sdb1 2048 8390655 4194304 83 Linux
/dev/sdb2 8390656 18876415 5242880 83 Linux
/dev/sdb3 18876416 31459327 6291456 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# partprobe /dev/sdb
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 4G 0 part [SWAP]
└─sda2 8:2 0 56G 0 part /
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 4G 0 part
├─sdb2 8:18 0 5G 0 part
└─sdb3 8:19 0 6G 0 part
sr0 11:0 1 1024M 0 rom
Extension 파티션의 하위 구성으로 로지컬 파티션을 구성할 수 있다.
로지컬 파티션은 부팅이 안되는 것 외에는 주 파티션과 동일하다.
d를 이용하여 sdb4 (Extension 파티션)을 삭제하며 하위의 로지컬 파티션들이 모두 한번에 삭제된다.
✅ File System 개념
- 컴퓨터 내의 파일과 그 안에 존재하는 자료들을 저장하고 쉽게 찾을 수 있도록 유지 관리하는 방법
리눅스 대표 파일 시스템
- ext3, etx4, swap, xfs, iso9660, nfs
- ext - 초기 리눅스에서 사용하였던 종류, 현재는 사용하지 않음
- ext2 - 현재도 사용하며, 긴 파일시스템 이름을 지원하는 것이 특징
- ext3 - 저널링 파일시스템, ext2보다 파일시스템의 복수/보안 기능이 크게 향상
- ext4 - 16TB까지만 지원하던 ext3과는 달리 더 큰 용량을 지원하며, 삭제된 파일 복구, 파일 시스템 속도가 훨씬 빨라진 파일시스템
- swap - swap공간으로 사용되는 파일 시스템
- xfs - 64bit 고성능 저널링 파일 시스템
- iso9660 - DVD/CD-ROM을 위한 표준 파일 시스템으로 읽기만 가능
- nfs - 원격 서버에서 파일 시스템 마운트 할 때 사용하는 시스템 (Network File System)
✅ 파일 시스템 관련 명령어
- mkfs -t 파일시스템 파티션명 : 파일시스템 포멧
- mkfs.파일시스템 파티션명
- blkid : 파일시스템 관련 파티션 확인
1. blkid 명령어로 파일 시스템 파티션 확인
[root@localhost ~]# blkid
/dev/sda1: UUID="88f82736-89b0-49e6-88c5-165c88bcc5bf" TYPE="swap"
/dev/sda2: UUID="231c776b-3197-4e9f-a142-6b80be0ca930" TYPE="xfs"
2. 파일 시스템 포맷
[root@localhost ~]# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=262144 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1048576, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# blkid
/dev/sda1: UUID="88f82736-89b0-49e6-88c5-165c88bcc5bf" TYPE="swap"
/dev/sda2: UUID="231c776b-3197-4e9f-a142-6b80be0ca930" TYPE="xfs"
/dev/sdb1: UUID="def33a2a-823b-4e99-a176-41afc59972cc" TYPE="xfs"
3. 파티션명 확인 (mkfs. 입력 후 탭 두번)
[root@localhost ~]# mkfs.
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
4. 파일 시스템 포맷
[root@localhost ~]# mkfs.ext4 /dev/sdb2
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@localhost ~]# blkid
/dev/sda1: UUID="88f82736-89b0-49e6-88c5-165c88bcc5bf" TYPE="swap"
/dev/sda2: UUID="231c776b-3197-4e9f-a142-6b80be0ca930" TYPE="xfs"
/dev/sdb1: UUID="def33a2a-823b-4e99-a176-41afc59972cc" TYPE="xfs"
/dev/sdb2: UUID="63670dbe-fadd-4901-b085-8d66523cb2dc" TYPE="ext4"
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1073741824
32 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@localhost ~]# blkid
/dev/sda1: UUID="88f82736-89b0-49e6-88c5-165c88bcc5bf" TYPE="swap"
/dev/sda2: UUID="231c776b-3197-4e9f-a142-6b80be0ca930" TYPE="xfs"
/dev/sdb1: UUID="66058822-f09f-4fa6-82ce-9896d4dea56d" TYPE="ext4"
/dev/sdb2: UUID="63670dbe-fadd-4901-b085-8d66523cb2dc" TYPE="ext4"
5. 파일 시스템 포맷 (기존 설정 변경)
[root@localhost ~]# mkfs -t xfs /dev/sdb2
mkfs.xfs: /dev/sdb2 appears to contain an existing filesystem (ext4).
mkfs.xfs: Use the -f option to force overwrite.
[root@localhost ~]# mkfs -t xfs -f /dev/sdb2
meta-data=/dev/sdb2 isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# blkid
/dev/sda1: UUID="88f82736-89b0-49e6-88c5-165c88bcc5bf" TYPE="swap"
/dev/sda2: UUID="231c776b-3197-4e9f-a142-6b80be0ca930" TYPE="xfs"
/dev/sdb1: UUID="66058822-f09f-4fa6-82ce-9896d4dea56d" TYPE="ext4"
/dev/sdb2: UUID="941a7668-1f9e-45a0-8c5c-2855d57a3d0b" TYPE="xfs"
기존에 ext4로 설정되어있던 /dev/sdb2를 xfs로 변경하려고 하자 mkfs.xfs: /dev/sdb2 appears to contain an existing filesystem (ext4). 문구가 뜨는 것을 확인할 수 있다. 변경하려면 -f 옵션을 이용해 강제로 변환한다.
✅ 마운트 (Mount)
- 보조 기억장치 (HDD, FDD, CD-ROM 등)나 파일 시스템이 다른 디스크를 /의 하위 디렉토리로 연결하여 사용 가능하게 해주는 명령어
- 리눅스 파일 단위로 모든 장치를 관리하기 때문에 새롭게 만든 파일시스템을 사용하기 위해서는 디스크 장치를 임의의 디렉토리에 마운트 시켜서 사용해야한다.
마운트 포인트 : 디스크 장치와 디렉토리가 연결이 되어야하는데 이때 연결되는 디렉토리
서로 다른 파티션에 설치되어 있는 파일 시스템에 접근하는 방법 ??
루트 파일 시스템의 특정 디렉토리 이름에 또 다른 파티션에 있는 파일 시스템을 mounting해준다.
그러면 그 mount된 디렉토리에 접근했을 때 또 다른 파일시스템의 루트 디렉토리에 접근하는 꼴이 된다.
이러한 방식으로 서로 다른 파티션에 존재하는 파일 시스템에 접근할 수 있다.
✅ 마운트 명령어
- mount 장치명 마운트포인트(path) : 마운트 실행
mount -a : /etc/fstab에 등록된 마운트 실행 - umount 장치명(마운트포인트) : 마운트 해제
umount -a : 사용중인 마운트 제외한 모든 마운트 해제 - df -Th : 파일시스템 상태 확인
- blkid : 파일시스템 관련 파티션 확인
✅ 마운트 사용 예제
0. 마운트 할 장치 만들기
[root@localhost ~]# mkdir /mnt/disk{1,2}
[root@localhost ~]# ls /mnt
disk1 disk2
[root@localhost ~]# touch /mnt/disk1/disk1file
[root@localhost ~]# ls /mnt/disk1
disk1file
1. 마운트 하기
[root@localhost ~]# mount /dev/sdb1 /mnt/disk1
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 4G 0 part [SWAP]
└─sda2 8:2 0 56G 0 part /
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 4G 0 part /mnt/disk1
├─sdb2 8:18 0 5G 0 part
└─sdb3 8:19 0 6G 0 part
sr0 11:0 1 1024M 0 rom
[root@localhost ~]# ls /mnt/disk1 # 통로 역할을 하게되어 디스크 안에서 보이지 않음
lost+found
[root@localhost ~]# mount /dev/sdb2 /mnt/disk2
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 4G 0 part [SWAP]
└─sda2 8:2 0 56G 0 part /
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 4G 0 part /mnt/disk1
├─sdb2 8:18 0 5G 0 part /mnt/disk2
└─sdb3 8:19 0 6G 0 part
sr0 11:0 1 1024M 0 rom
lsblk를 통해 정상적으로 마운트된 것을 확인할 수 있으며 마운트된 장치는 더이상 디스크 안에서 확인할 수 없다.
2. 마운트 해제
[root@localhost ~]# touch /mnt/disk1/sdb1file
[root@localhost ~]# touch /mnt/disk2/sdb2file
[root@localhost ~]# ls /mnt/disk{1,2}
/mnt/disk1:
lost+found sdb1file
/mnt/disk2:
sdb2file
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# umount /mnt/disk2
[root@localhost ~]# ls /mnt/disk{1,2}
/mnt/disk1:
disk1file
/mnt/disk2:
파티션 명을 입력하거나 장치명을 입력하면 마운트를 해제할 수 있다.
3. 마운트 재설정
[root@localhost ~]# mount /dev/sdb1 /mnt/disk2
[root@localhost ~]# mount /dev/sdb2 /mnt/disk1
[root@localhost ~]# ls /mnt/disk{1,2}
/mnt/disk1:
sdb2file
/mnt/disk2:
lost+found sdb1file
4. 마운트 전체 해제
[root@localhost ~]# umount -a
umount: /run/user/42: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /sys/fs/cgroup/systemd: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /sys/fs/cgroup: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /run: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /dev: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 4G 0 part [SWAP]
└─sda2 8:2 0 56G 0 part /
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 4G 0 part
├─sdb2 8:18 0 5G 0 part
└─sdb3 8:19 0 6G 0 part
sr0 11:0 1 1024M 0 rom
✅ /etc/fstab
- 파일 시스템 정보를 저장하고 있으며 리눅스 부팅시 마운트 정보를 저장하고 있다.
- 이 파일 안에있는 구성값들이 부팅 시에 자동으로 적용될 수 있도록 한다.
파일 시스템 장치명 | 마운트 포인트 | 파일 시스템 종류 | 옵션 | 덤프 여부 | 파일 체크 옵션 |
1. 파일 시스템 장치명 : 장치의 이름을 적는 곳이다. 레이블로 표시할 수 있다. (레이블 명시 필수)
2. 파일 시스템 장치를 마운트 시킬 위치를 설정하는 부분이다.
3. 파일 시스템 종류 : 마운트 하기 전에 파일 시스템을 결정하게 되는데, window에서 하드 디스크 D를 포맷할 때 파일 시스템을 NTFS로 하는 것과 동일하다. ext, ext2, ext3, ext4, iso9660, nfs, swap, ufs, vfat, msdos, hpfs, ntfs 등이 있다.
4. 옵션
파일 시스템을 용도에 맞게 사용하기 위해 파일시스템 속성을 설정하는 옵션이다.
① default : rw, suid, dev, exec, auto, nouser, async 옵션을 모두 선택한 것과 같다.
② auto : 부팅시 자동으로 마운트 된다.
③ exec : 실행파일이 실행되는 것을 허용하는 파일 시스템이다.
④ suid : SetUID와 SetGID의 사용을 허용하는 파일 시스템이다.
⑤ ro : 읽기 전용 파일시스템이다.(Read Only)
⑥ rw : 읽고 쓰기(Read Write) 파일시스템으로 사용된다.
⑦ user : 일반 계정사용자들도 마운트를 할 수 있는 파일시스템이다.
⑧ nouser : root만 마운트할 수 있는 파일시스템이다.
⑨ noauto : 부팅시 자동으로 마운트 되지 않게하는 파일시스템이다
⑩ noexec : 실행파일을 실행되지 못하게 하는 파일시스템이다.
⑪ nosuid : SetUID와 SetGID의 사용을 허용하지 않은 파일시스템이다.
⑫ usrquota : 개별 계정사용자의 Quota설정이 가능한 파일시스템이다.(쿼터:사용자별로 디스크 할당을 조정(제한))
⑬ grp : 그룹별 Quota설정이 가능한 파일 시스템
5. 덤프
dump명령으로 0과 1로 나뉜다.
0 : 백업을 하지 않는다.
1 : 백업 가능한 파일 시스템
6. 파일 체크 옵션
파일 체크 옵션으로 루트파일 시스템을 점검할 때 사용한다. 0, 1, 2로 나뉜다.
0 : 부팅시에 파일시스템을 점검하지 않는다.
1 : 루트 파일시스템으로서 부팅시에 파일시스템 점검을 한다. (/부분을 체크 후, 부팅)
2 : 루트 파일시스템 이외의 파일시스템으로서 부팅시에 파일시스템 점검을 한다. (/를 제외한 나머지 파티션 체크 후 부팅)
5. 마운트 영구 설정 방법
[root@localhost ~]# vi /etc/fstab
/etc/fstab 파일을 편집기로 열어 마운트 정보를 입력한다.
[root@localhost ~]# mount -a
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 4G 0 part [SWAP]
└─sda2 8:2 0 56G 0 part /
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 4G 0 part /mnt/disk1
├─sdb2 8:18 0 5G 0 part /mnt/disk2
└─sdb3 8:19 0 6G 0 part
sr0 11:0 1 1024M 0 rom
# 이제 껐다 켜도 마운트 되어 있다.
6. 마운드 전체 삭제
[root@localhost ~]# umount -a
umount: /run/user/42: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /sys/fs/cgroup/systemd: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /sys/fs/cgroup: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /run: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /dev: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
7. 파일 시스템 상태 확인
[root@localhost ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 xfs 56G 4.4G 52G 8% /
devtmpfs devtmpfs 985M 0 985M 0% /dev
tmpfs tmpfs 1000M 9.3M 991M 1% /run
tmpfs tmpfs 1000M 0 1000M 0% /sys/fs/cgroup
tmpfs tmpfs 200M 12K 200M 1% /run/user/42
참고
'Linux' 카테고리의 다른 글
[Linux] Swap memory (0) | 2022.02.25 |
---|---|
[Linux] 리눅스 명령어 - at, atd, cron, crontab (작업 스케줄링) (0) | 2022.02.24 |
[Linux] 하드링크와 심볼릭링크 (0) | 2022.02.24 |
[Linux] 리눅스 명령어 - awk (0) | 2022.02.22 |
[Linux] 리눅스 명령어 - sort, sed (0) | 2022.02.22 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!