디스크 장치를 추가하는 방법 및 과정의 대해 알아보자
디스크 추가 순서 : 장치인식 -> 파티션작업 -> 파일시스템작업 -> 마운트작업
[참고] 디스크의 종류 : IDE(SATA), SCSI(SAS), SSD
0. 선수지식
1) 파티션(partition) : 시스템 관리자가 하드드라이브를 파티션이라는 여러개의 논리 스토리지단위로 나눌 수 있다.
- 종류
MBR 파티션 스키마 : BIOS 펌웨어 기반, text 기반, 디스크 크기의 제한 (최대 2Tb), primary 최대 4개
GPT 파티션 스키마 : UEFI 펌웨어 기반, graphic기반, 디스크 크기 제한 없음 (최대 8Zb), primary 최대 128개
* 논리적으로 파티션을 나누는 공간이 많아짐에 따라, GPT 파티션스키마로 대체되고 있다.
2) F/W (BIOS) - MBR 파티션 형식 (primary4개 or primary3개+extended1개)
주파티션(Primary) : 최대 4개 생성 가능. 그 이상의 경우 3개까지 생성 후 1개의 파티션을 확장으로 변경하여 논리파티션을 그안에 두어야함
확장 파티션(Extended) : 하드디스크를 여러 파티션으로 나누고자 할떄 만드는 파티션
논리 파티션(Logical) : 4개 이상의 파티션을 사용할 때 확장파티션의 실제 활용되는 방식.
1. 장치 인식 & 디스크 추가
1) 서버의 전원 OFF : poweroff
2) 새로운 디스크를 장착
3) 서버전원 ON
-> 부팅시 system-udevd.serverice 에 의해 새로운 장치가 인식 /dev 디렉토리에 장치파일 생성됨.
4) 부팅 후 추가된 디스크 확인 (여러방법이있음)
ls -l /dev/sd? : /dev 에 추가된 장치파일 유무 확인
lsblk : 모든 디스크 블럭 정보 확인 9 (옵션 --fs 시 더 자세히 확인가능)
lsscsi : scsi 방식 디스크 유무 확인
fdisk -l : 모든 디스크들의 상세정보를 확인가능.
[참고] primary / extended 의 구분
/dev/sdb 즉 2번째 추가된 디바이스에 파티션 번호를 붙여가며 추가를 진행한다. ex) /dev/sdb1
이때 1~4는 primary파티션이고 5이후 부터는 extended 이기에 logical 파티션으로 지정된다.
2. 파티션 작업
1) 파티션 작업 툴
fdisk CMD : 2TB 이하 (MBR) / gdisk CMD : 2TB 초과 (MBR, GPT)
parted CMD : 2TB 초과 (MBR, GPT)
* fdisk 와 gdisk 는 사용법이 같으나, parted 는 사용법이 매우 다름.
2) fdisk
파티션 작업을 fdisk를 활용하여 진행한다
(1) 형식 : fdisk [OPTIONS] <DISK>
* fdisk -l : 파티션 테이블 리스트를 보여줌
fdisk 진입 후 추가 커맨드 ex) fdisk /dev/sdb 로 진입상태
m : 도움말 다양한 추가 커맨드들의 설명
p : 파티션 테이블 정보 출력
n : 새로운 파티션 추가
w : 변경내용 저장
d : 생성되어 있는 파티션의 삭제, 하위 파티션이 여러개일 경우 선택 가능하나 없을경우 자동 삭제됨.
* (extended 의 경우 extended 파티션 삭제 시. 하위 모든 logcal 파티션도 함깨 삭제됨)
3) fdisk 로 파티션을 작업해보자 (primary partition 기준)
* n 으로 추가 작업시 확인내용
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p ( primary or extended 를 결정 )
Partition number (1-4, default 1): 1 ( 파티션 번호를 결정 )
First sector (2048-2097151, default 2048): ( sector 를 결정 )
Last sector, +sectors or +size{K,M,G,T,P} (2048-2097151, default 2097151): +500M ( 새로운 파티션의 용량을 결정 )
-> 이후 p 추가 커맨드로 파티션 테이블 확인 후 w 로 저장.
- 추가작업 후 변경된 partition table -
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 1026047 1024000 500M 83 Linux
완료 후 처음 디스크 추가 여부 확인한 방법과 동일하게 파티션 추가 여부를 확인한다.
[참고] partprobe 명령어
-> 커널에게 partition table 정보를 다시 로드하도록 한다. 반드시 입력해야하는건 아니지만 필요한 경우가 따로있다
* 사용중인 디스크에 남아있는 공간에 대한 파티션 작업을 수행했을 때.
* 가상 디스크 파일일때 ( 인식이 잘 안되는 경우가 있음 )
3) fdisk 로 파티션 작업을 진행해보자 ( P1 + E2 (L5,L6))
위 내용참고하여 진행하면된다. 출력결과값만 간단하게 표기해보자
1. 파티션 추가 (primary)
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): e
Partition number (1-4, default 1): 2
First sector (2048-2097151, default 2048): ( 별도 입력 없으면 default 값을 따름 )
Last sector, +sectors or +size{K,M,G,T,P} (2048-2097151, default 2097151): ( 별도 입력 없으면 default 값을 따름 )
Created a new partition 2 of type 'Extended' and of size 1023 MiB. ( extended 생성완료 )
2. 파티션 추가 (extended)
Command (m for help): n
All space for primary partitions is in use.
Adding logical partition 5 ( Extended 로 결정되어있기에 자동으로 5번으로 할당 )
First sector (4096-2097151, default 4096): ( 별도 입력 없으면 default 값을 따름 )
Last sector, +sectors or +size{K,M,G,T,P} (4096-2097151, default 2097151): +300M
Created a new partition 5 of type 'Linux' and of size 300 MiB.
3. 파티션 추가 (logical)
Command (m for help): n
All space for primary partitions is in use.
Adding logical partition 6
First sector (620544-2097151, default 620544): ( 별도 입력 없으면 default 값을 따름 )
Last sector, +sectors or +size{K,M,G,T,P} (620544-2097151, default 2097151): ( 별도 입력 없으면 default 값을 따름 )
Created a new partition 6 of type 'Linux' and of size 721 MiB.
4. 최종확인 ( fdisk -> p )
Device Boot Start End Sectors Size Id Type
/dev/sdc2 2048 2097151 2095104 1023M 5 Extended
/dev/sdc5 4096 618495 614400 300M 83 Linux
/dev/sdc6 620544 2097151 1476608 721M 83 Linux
* fdisk -l 등 다른방법으로도 확인가능하다.
[참고]
parted 의 경우 사용법이 매우다름, 하단 링크로 확인가능
m.blog.naver.com/anysecure3/221596235243
3. 파일시스템 작업
1) 파일시스템 / 종류
파일시스템(File system) : 파일을 저장하고 관리하는 구조체계.
- 파일시스템의 종류 (man 5 filesystems 에 파일 시스템의 대한 매뉴얼 확인가능)
ext2 : 리눅스 이전 버전에서 사용하는 파일시스템
ext3 : CentOS 5.x 사용하는 파일시스템
* ext3 부터 저널링(journaling) 기능이 추가됨.
ext4 : CentOS 6.x 이상부터 사용하는 파일시스템
xfs : 고성능 저널링 파일시스템
ntfs : windows 에서 사용하는 파일시스템
[참고] 저널링(journaling)
파일의 전송과정에서 아이노드값을 저널링 로그에 보관하고, 데이터가 모두 옮겨진 이후 아이노드값을 마지막에 붙여넣는 전송방식, 전송과정의 안정성을 더욱 높인 기능.
2) 파일시스템 구조 확인 및 분석
ext4 : tune2fs -l <DISK> = ( dumpe2fs <DISK>) : ext 계열의 파일 시스템 구조 확인
xfs : xfs_info <DISK> : xfs 의 파일 시스템 구조 확인
* SuperBlock : 파일 시스템의 전체적인 관리, 정보를 담고 있는 장소 (superblock가 정상 = 파일시스템도 정상)
* minfree : 파일 시스템이 full 났을때 관리자만 쓸 수 있는 공간으로 예약된 공간. 기본값은 5% (범위 0~50%)
3) 파일 시스템 생성
mkfs
파일시스템을 생성한다
(1) 형식
mkfs.[FILESYSTEM] <DISK>
(2) 옵션
mkfs -t : 디스크에 파일시스템 지정 ( mkfs 와 동일 )
mkfs -m : 시스템 내 여분의 공간을 결정하는 옵션 (min free)
-> minfree 공간을 수정하고 싶으면 tune2fs -m 으로 수정가능.
* blkid 명령어로 마운트 하기 전 파일 시스템이 어떤것인지 확인할 수 있다.
(3) 설정
- ext4 파일시스템으로 지정시. (/dev/sdb1 파티션을 지정)
[root@server1 ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
/dev/sdb1 contains a ext4 file system
created on Wed Apr 7 14:59:48 2021
Proceed anyway? (y,N) y
Creating filesystem with 261888 4k blocks and 65536 inodes
Filesystem UUID: 4041bfe7-a15f-4f45-bc2a-01ed15b21f5f
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
-> 적용 완료
(4) 확인
[root@server1 ~]# blkid
/dev/sr0: BLOCK_SIZE="2048" UUID="2020-11-18-21-39-52-00" LABEL="CentOS-8-3-2011-x86_64-
....... 중략 .......
/dev/sdb1: UUID="4041bfe7-a15f-4f45-bc2a-01ed15b21f5f" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="8dece3fb-01"
4. 마운트 작업
mount
파일시스템이 지정된 DISK를 특정 dir 에 mount 한다.
(1) 형식
[mount] <DISK> [dir]
(2) 실습
위에서 열심히 만든 파티션을 실제 dir에 지정해보자.
[root@server1 ~]# mkdir -p /raid0
[root@server1 ~]# mount /dev/sdb1 /raid0
[root@server1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.9M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 240M 775M 24% /boot
tmpfs 371M 1.2M 370M 1% /run/user/42
tmpfs 371M 4.6M 367M 2% /run/user/0
/dev/sr0 8.7G 8.7G 0 100% /run/media/root/CentOS-8-3-2011-x86_64-dvd
/dev/sdb1 991M 2.6M 922M 1% /raid0
(3) unmount
마운트 한 파일 시스템을 마운트 해제 한다. 파일 시스템을 점검할때 활용됨.
mount 의 자세한 상세정보 확인
'모의해킹 침해대응 과정 > Liunx 관리' 카테고리의 다른 글
리눅스 RAID / day 9 (0) | 2021.04.09 |
---|---|
리눅스 LVM / day 8, 9 (0) | 2021.04.08 |
리눅스 Mount / day 8 (0) | 2021.04.08 |
리눅스 파일시스템 점검, 모니터링 / day 7 (0) | 2021.04.07 |
리눅스 디렉토리에 대하여 / day 6 (0) | 2021.04.06 |