INFRA/Linux

Linux 디스크 관리

sshhhh 2024. 6. 28. 00:03

디스크 관리

  • 기본 디스크
    • 일반적인 Desktop환경에서 사용
    • 주 파티션, 확장 파티션, 논리 드라이브를 이용하여 구성
    • 하나의 물리적인 하드 디스크를 논리적인 공간으로 분할하여 사용
    • 공간이 연속해서 존재해야 함 = 연속된 섹터들의 집합
  • 동적 디스크
    • 성능 향상 또는 가용성을 위해 사용
    • 볼륨을 이용하여 구성 함
    • 하나의 물리적인 하드 디스크의 공간을 논리적으로 분할하거나 여러 개의 물리적인 하드 디스크를 하나의 논리적인 공간으로 결합
    • 물리적으로 다른 hdd를 논리적인 공간으로 결합

  

df (disk free)

  • 파일 시스템에 할당된 전체 용량, 사용량, 사용 가능 용량, 사용률, 마운트 정보
xml-- -h 옵션줘서 단위를 MB로 확인
[root@localhost test]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             845M     0  845M   0% /dev
tmpfs                875M     0  875M   0% /dev/shm
tmpfs                350M   15M  336M   5% /run
/dev/mapper/rl-root   39G  5.7G   33G  15% /
/dev/sda1           1014M  265M  750M  27% /boot
/dev/mapper/rl-home   19G  176M   19G   1% /home
tmpfs                175M  112K  175M   1% /run/user/1001
/dev/sr0             7.9G  7.9G     0 100% /run/media/test02/Rocky-9-0-x86_64-dvd
tmpfs                175M   36K  175M   1% /run/user/1002

  

du (disk usage)

  • 개별 파일 및 디렉터리의 용량 확인
-- -s 전체용량을 h용량단위로 표시
[root@localhost test]# du -sh /var
1.6G	/var

 

 

 

HDD에 data 저장할 때 필요한 세가지 작업

  1. 파티셔닝 #fdisk
  2. make file system #mkfs
  3. 마운트 #mount
- 40GB 크기를 가진 하드디스크 추가 장착
-- vm ware에서 추가 장착후 확인
	# fdisk -l
	Disk /dev/mapper/rl-root: 38.28 GiB, 41104179200 bytes, 80281600 sectors

- 1.파티셔닝
- 파티션 2개를 기본 파티션으로 8GB,12G 용량으로 분할
	# fdisk /dev/sdbc
	Device     Boot    Start      End  Sectors Size Id Type
	/dev/sdc1           2048 16779263 16777216   8G 83 Linux
	/dev/sdc2       16779264 41945087 25165824  12G 83 Linux

- 2. 포맷
- 각각 두 개의 파티션을 ext4 파일시스템 유형으로 포맷
	# mkfs -t ext4 /dev/sdc1
	# mkfs -t ext4 /dev/sdc2

- 3. 마운트
****- 두개의 파티션을 /game, /music에 마운트
	# mount /dev/sdc1 /data
	# mount /dev/sdc2 /music
	
- 자동 마운트 설정 : 재부팅했을때도 마운트 정보 사라지지 않기위해 편집기에 들어가서 수정해줬다.
[root@localhost ~]# vi /etc/fstab

--추가한 내용이 정상적으로 들어갔다.
	# tail -3 /etc/fstab
	/dev/sdb1	/data	xfs	defaults	0 0
	/dev/sdc1	/game	ext4	defaults	0 0
	/dev/sdc2	/music	ext4	defaults	0 0

--확인해보니 lost-found가 생성되었다. 제대로 마운트된 것을 알 수 있다.	
[root@localhost ~]# ls /game
lost+found
[root@localhost ~]# ls /music
lost+found

 

 

 


 

0.hdd 하나 추가

[root@localhost ~]# fdisk -l
..생략..

--sda스카시방식의 디스크인데 a니까 첫번째
Disk /dev/sda: 60 GiB, 64424509440 bytes, 125829120 sectors

--sda는 두개의 파티션으로 나뉘어있음
Device     Boot   Start       End   Sectors Size Id Type
/dev/sda1  *       2048   2099199   2097152   1G 83 Linux
/dev/sda2       2099200 125829119 123729920  59G 8e Linux LVM

--새로 추가한 스카시방식의 디스크
--아직 파티셔닝 안함
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors

 

 

1. 파티셔닝 fdisk : file system disk

  • 파티션 테이블 생성, 수정, 삭제
  • Q. 파티션하는 이유? A. 만약 C 드라이브에 운영 체제(OS)와 다른 파일들을 함께 저장하면, C 드라이브가 손상되었을 때 파일에 접근할 수 없게 된다. → C 드라이브에는 운영 체제만 설치하고, D 드라이브에는 다른 파일들을 저장하는 것이 좋다.
  • fdisk –l : 파티션 정보 확인
  • 관리모드 설정 명령
    • d : 파티션삭제
    • n : 새로운 파티션 생성
    • p : 파티션 정보 출력
    • w : 저장
**시나리오 : 주 파티션 3개 1:10G / 2:5G / 3:5G 로 생성**

[root@localhost ~]# fdisk /dev/sdb
--첫번째 파티션 생성
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 --주파티션
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): +10G

Created a new partition 1 of type 'Linux' and of size 10 GiB.

--첫번째 생성후 정보 출력
Command (m for help): p
~생략~
Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        2048 20973567 20971520  10G 83 Linux

--두번째 파티션 생성
Partition number (2-4, default 2): 
First sector (20973568-41943039, default 20973568): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (20973568-41943039, default 41943039): +5G

Created a new partition 2 of type 'Linux' and of size 5 GiB.

--출력
Command (m for help): p
Device     Boot    Start      End  Sectors Size Id Type
/dev/sdb1           2048 20973567 20971520  10G 83 Linux
/dev/sdb2       20973568 31459327 10485760   5G 83 Linux

--세번째까지 만든 후 출력
Device     Boot    Start      End  Sectors Size Id Type
/dev/sdb1           2048 20973567 20971520  10G 83 Linux
/dev/sdb2       20973568 31459327 10485760   5G 83 Linux
/dev/sdb3       31459328 41943039 10483712   5G 83 Linux
  • 확장 파티션 생성

--확장할거 다 잡고 그 안에서 쪼개야함
Command (m for help): n
Partition type
   p   primary (3 primary, 0 extended, 1 free)
   e   extended (container for logical partitions)
Select (default e): 

Using default response e.
Selected partition 4

--둘다 그냥 엔터 default 41943039이 20GB끝나는 곳임
First sector (20973568-41943039, default 20973568): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (20973568-41943039, default 41943039):

Device     Boot    Start      End  Sectors Size Id Type
/dev/sdb1           2048  8390655  8388608   4G 83 Linux
/dev/sdb2        8390656 16779263  8388608   4G 83 Linux
/dev/sdb3       16779264 20973567  4194304   2G 83 Linux
/dev/sdb4       20973568 41943039 20969472  10G  5 Extended

Command (m for help): n
All primary partitions are in use.
Adding logical partition 5

--공간
First sector (20975616-41943039, default 20975616): 

--출력
Device     Boot    Start      End  Sectors Size Id Type
/dev/sdb1           2048  8390655  8388608   4G 83 Linux
/dev/sdb2        8390656 16779263  8388608   4G 83 Linux
/dev/sdb3       16779264 20973567  4194304   2G 83 Linux
/dev/sdb4       20973568 41943039 20969472  10G  5 Extended --공간:저장불가
/dev/sdb5       20975616 29364223  8388608   4G 83 Linux
/dev/sdb6       29366272 37754879  8388608   4G 83 Linux
/dev/sdb7       37756928 41943039  4186112   2G 83 Linux

--설정 정보 저장
Command (m for help): w

  

2. 파일시스템 생성 ==포맷 mkfs

  • 데이터 저장하기 위한 틀을 만든것 (아이패드 필기해둠) (저장테이블만드는느낌)
  • 하드디스크 단위가 아니라 파티션 단위로 해야함
-- -t or .[파일 시스템 종류선택] 장치
-- /dev/sdb1 장치에 ext4 파일 시스템 생성
[root@localhost ~]# mkfs -t ext4/dev/sdb1
[root@localhost ~]# mkfs -t ext4 /dev/sdb2

 

 

3.마운트 mount

  • 운영체제가 물리적인 장치를 이용할 수 있도록 연결 (연결통로 만들어주는)
  • Linux OS는 모든 장치를 파일 단위로 관리하기 때문에 새로 추가된 장치는 임의의 디렉터리(mount point) 에 연결 시켜서 사용해야 함
  • /etc/fstab : 부팅시 파일 시스템을 어디에 자동으로 마운트할지 지정하는 파일
--sdb1 파티션을 /data 디렉터리에 마운트
[root@localhost /]# mount /dev/sdb1 /data

 

 

 


윈도우로 확인

  1. 파티셔닝 : 용량 정해주고 파티셔닝

 

2. 마운트 : 드라이브에 문자 할당

 

3.볼륨 == 파티션 포맷

 

  


  • 물리적인 두번째 hdd의 첫번째 파티션에 저장하고 싶을때
    • 첫번째 파티션은 E:랑 연결통로되어있음 그래서 저기에 저장하고 싶으면 E드라이브에 저장하면됨
    • 두번째 파티션은 C:mount에 연결통로에 있음
    • 유저는 파티션에 직접 접근할 수 없기때문에 물리적으로는 C:mount 저장됨