2022. 10. 20. 10:51ㆍ리눅스
파일시스템
- 파일을 저장하기 위한 운영체제의 논리적인 구조
‐ 각 OS들은 여러 개의 파일 시스템을 지원한다.
‐ Linux : xfs, ext4, ext3, jfs, ReiserFS…
‐ Windows : FAT, FAT32, NTFS 등
‐ UNIX : UFS(UNIX File System), ZFS
‐ IOS : APFS(Apple File System), HFS+
파티션
- 물리적인 디스크를 논리적인 저장영역으로 구별한 것
MBR
- 디스크의 앞쪽이 물리적으로 정의되어있는 sector
- OS가 직접 사용하지 않으며 부트로더가 저장된다.
정리
- 예전에는 하드드라이브용량이 작아서 파티션을 많이 나눴었다.파일중 일부는 용량이 계속 늘어나서
시스템을 사용못하게 될수도 있습니다.그래서 파티션을 많이 나눠서 파티션으로 나눈 용량이상을
못쓰기때문에 파티션으로 많이나눴었음 요즘에는 용량이 많아서 파티션을 할 필요가 없습니다.
Primary partition (1, 2, 3)
- 물리적인 디스크에 독립적으로 존재하며 파일시스템을 생성, 운영체제가 직접 사용 가능하다. 각 물리적인 디스크마다 4개까지 생성할 수 있다.
Extended partition (4)
- 디스크마다 1개까지 생성 가능하며 직접 사용할 수 없고 logical partition으로 분할 사용한다.
Logical partition (5, 6, 7, 8 5번째부터 Logical)
- Extended partition내에 만들어지며 사용은 parimary partition과 동일하다.
- P+E는 최대 4개까지 생성 가능하다.
IDE
‐ 디스크 : /dev/hda, /dev/hdb, /dev/hdc
‐ 파티션 : /dev/hda1, /dev/hda2, /dev/hda3…
SCSI, SATA
‐ 디스크 : /dev/sda, /dev/sdb, /dev/sdc
‐ 파티션 : /dev/sda1, /dev/sda2, /dev/sda3…
df
- 디스크의 마운트 상태와 용량 확인.
- ‐T : 파일 시스템 타입까지 출력한다.
- ‐h : 읽기 쉬운 단위로 출력한다.
실습)
[root@Linux1 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 471M 0 471M 0% /dev
tmpfs tmpfs 487M 0 487M 0% /dev/shm
tmpfs tmpfs 487M 8.2M 479M 2% /run
tmpfs tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 xfs 29G 4.2G 25G 15% /
/dev/sda1 xfs 497M 162M 335M 33% /boot
tmpfs tmpfs 98M 8.0K 98M 1% /run/user/42
tmpfs tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb - fdisk : /dev/sdb1, /dev/sdb2
(format)파일시스템을 생성한다.
fdisk
- 물리적인 디스크에 논리적인 파티션을 생성하는데 사용하는 명령어. 만들어진 파티션에는 mkfs 명령으로 파일시스템이 생성되고 mount 명령을 통해 특정 디렉토리에 마운트 된다음 사용된다.
- # fdisk 디스크명
- # fdisk /dev/sda
fdisk 프롬프트에서 사용하는 명령
p : 현재 파티션 상태 출력
d : 파티션삭제
n : 파티션 생성
t : 파티션 변경
w : 저장 후 종료
q : 취소 후 종료
실습) 1P 1E 1L 생성
[root@Linux1 dev]# 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 0x47915015.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +10G
Partition 1 of type Linux and of size 10 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: 0x47915015
Device Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e
Partition number (2-4, default 2):
First sector (20973568-41943039, default 20973568):
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039):
Using default value 41943039
Partition 2 of type Extended and of size 10 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: 0x47915015
Device Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
/dev/sdb2 20973568 41943039 10484736 5 Extended
Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (20975616-41943039, default 20975616):
Using default value 20975616
Last sector, +sectors or +size{K,M,G} (20975616-41943039, default 41943039):
Using default value 41943039
Partition 5 of type Linux and of size 10 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: 0x47915015
Device Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
/dev/sdb2 20973568 41943039 10484736 5 Extended
/dev/sdb5 20975616 41943039 10483712 83 Linux
Command (m for help): w
mkfs
- 파티션에 파일시스템을 만들어준다.
# mkfs –t [파일시스템 타입] 파티션명
파일시스템 타입과 명령어
- mkfs ‐t xfs ‐> mkfs.xfs
- mkfs ‐t ext3 ‐> mke2fs ‐j
- mkfs ‐t ext2 ‐> mke2fs
EX) mkfs –t xfs /dev/sda1 ‐> mkfs.xfs ‐f /dev/sda1
- 파일 시스템이 재구성 되는 경우 mkfs.xfs에서 사용하는 –f 가 반드시 필요한 경우가 있다.
EX)
[root@Linux1 ~]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, 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
mount
- 파일시스템은 지정한 디렉토리에 연결해서 사용 가능하도록 한다.
# mount [‐a] [‐t [FStype]] [장치명] [디렉토리]
옵션
- ‐a : /etc/fstab의 내용을 읽어 모두 mount 한다.
- ‐t : 파일 시스템 양식을 정한다.
- ‐o : 마운트 옵션을 추가로 지정한다.
- noatime : atime을 갱신하지 않는다. .
- remount : 옵션을 변경을 위해 재마운트한다.
- ro : Read Only로 정의한다.
EX)
# mount ‐t ext3 /dev/sdb1 /data1
# mount ‐t iso9660 /dev/cdrom /cdrom
# mount ‐o ro /dev/sdb1 /home2
# mount ‐a
UMOUNT
- mount된 파일시스템을 시스템으로 부터 제거한다.
# umount [디렉토리명] 또는 [장치명]
EX)
[root@Linux1 ~]# df | grep sd
/dev/sda3 29881084 4380960 25500124 15% /
/dev/sda1 508580 165880 342700 33% /boot
[root@Linux1 ~]# mkdir /home2
[root@Linux1 ~]# mount /dev/sdb1 /home2
[root@Linux1 ~]# df | grep sd
/dev/sda3 29881084 4380980 25500104 15% /
/dev/sda1 508580 165880 342700 33% /boot
/dev/sdb1 10475520 32992 10442528 1% /home2
[root@Linux1 ~]# umount /home2
[root@Linux1 ~]# df | grep sd
/dev/sda3 29881084 4380980 25500104 15% /
/dev/sda1 508580 165880 342700 33% /boot
BLKID
- 파티션의 정보 확인
# blkid ***********
- UUID는 파티션의 고유 정보로 디스크의 위치가 바뀌어도 동일하게 유지된다.
- UUID는 mount 명령에서 이용 가능하다.
EX)
/dev/sda1: UUID="eb7033c7-2f05-4258-8653-5fe0f3b41a57" TYPE="xfs"
/dev/sda2: UUID="0dc62f31-143e-411e-996c-6c6ae2433818" TYPE="swap"
/dev/sda3: UUID="4bebf12b-c696-4358-92e9-49a7cad2cb70" TYPE="xfs"
/dev/sdb1: UUID="dadc2046-fe02-4c8a-8523-fbdd2e4296d4" TYPE="xfs"
/dev/sdb5: UUID="88c64412-0427-4fdd-97d1-51466b2c9332" TYPE="xfs"
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
실습
[root@Linux1 ~]# mkfs.xfs -f /dev/sdb1
[root@Linux1 ~]# mkfs.xfs -f /dev/sdb5
[root@Linux1 ~]# mkdir /data1
[root@Linux1 ~]# mkdir /data2
[root@Linux1 ~]# cd /
[root@Linux1 /]# ls
[root@Linux1 /]# cd data1
[root@Linux1 data1]# ls
[root@Linux1 data1]# pwd
[root@Linux1 data1]# echo 1 > a.txt
[root@Linux1 data1]# cd ..
[root@Linux1 /]# umount /dev/sdb1 /data1
[root@Linux1 ~]# cd ~
[root@Linux1 ~]# mount /dev/sdb5 /data2
[root@Linux1 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 482052 0 482052 0% /dev
tmpfs 497836 0 497836 0% /dev/shm
tmpfs 497836 8368 489468 2% /run
tmpfs 497836 0 497836 0% /sys/fs/cgroup
/dev/sda3 29881084 4380528 25500556 15% /
/dev/sda1 508580 165880 342700 33% /boot
tmpfs 99568 12 99556 1% /run/user/42
tmpfs 99568 0 99568 0% /run/user/0
/dev/sdb5 10473472 32992 10440480 1% /data2
[root@Linux1 ~]# reboot
[root@Linux1 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 482052 0 482052 0% /dev
tmpfs 497836 0 497836 0% /dev/shm
tmpfs 497836 8368 489468 2% /run
tmpfs 497836 0 497836 0% /sys/fs/cgroup
/dev/sda3 29881084 4380528 25500556 15% /
/dev/sda1 508580 165880 342700 33% /boot
tmpfs 99568 12 99556 1% /run/user/42
tmpfs 99568 0 99568 0% /run/user/0
[root@Linux1 ~]# cd /
[root@Linux1 /]# ls
[root@Linux1 /]# mount /dev/sdb1 /data1
[root@Linux1 /]# mount /dev/sdb5/data2
[root@Linux1 /]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 482052 0 482052 0% /dev
tmpfs 497836 0 497836 0% /dev/shm
tmpfs 497836 8368 489468 2% /run
tmpfs 497836 0 497836 0% /sys/fs/cgroup
/dev/sda3 29881084 4380528 25500556 15% /
/dev/sda1 508580 165880 342700 33% /boot
tmpfs 99568 12 99556 1% /run/user/42
tmpfs 99568 0 99568 0% /run/user/0
/dev/sdb1 10475520 32992 10442528 1% /data1
/dev/sdb5 10473472 32992 10440480 1% /data2
[root@Linux1 /]# cd ~
[root@Linux1 ~]# blkid
ex)
/dev/sda1: UUID="eb7033c7-2f05-4258-8653-5fe0f3b41a57" TYPE="xfs"
/dev/sda2: UUID="0dc62f31-143e-411e-996c-6c6ae2433818" TYPE="swap"
/dev/sda3: UUID="4bebf12b-c696-4358-92e9-49a7cad2cb70" TYPE="xfs"
/dev/sdb1: UUID="dadc2046-fe02-4c8a-8523-fbdd2e4296d4" TYPE="xfs"
/dev/sdb5: UUID="88c64412-0427-4fdd-97d1-51466b2c9332" TYPE="xfs"
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
하드디스크 사용하는 과정
fdisk : 하드드라이브 파티션 나누는 작업
↓
mkfs : 파일시스템 생성
↓
mount : 특정 디렉토리에 연결
xfs_admin
- 파티션에 다양한 파라미터를 변경하거나 확인한다.
- # xfs_admin ‐L [라벨명] [장치명]
- # xfs_admin ‐L "‐‐" [장치명]
- # xfs_admin ‐l(소문자) [장치명]
- 리눅스 설치시에 생성되는 파티션의 경우 자동으로 마운트되는 디렉토리 이름을 라벨명으로 할당한다.
사용자가 임의로 할당하는 경우 'abc', '123' 등과 같이 라벨명을 지정해도 되지만 보통 디폴트 명명 규칙에 따라
마운트될 디렉토리 명으로 할당한다.
EX)
[root@linux1 ~]# xfs_admin ‐l /dev/sdb1
label = ""
[root@linux1 ~]# xfs_admin ‐L /home2 /dev/sdb1
writing all SBs
new label = "/home2"
[root@linux1 ~]# mount LABEL="/home2" /home2
[root@linux1 ~]# df | grep sdb
/dev/sdb1 10474496 32992 10441504 1% /home2
[root@linux1 ~]# umount LABEL="/home2"
[root@linux1 ~]# xfs_admin ‐L "‐‐" /dev/sdb1
writing all SBs
new label = ""
[root@linux1 ~]# xfs_admin ‐l /dev/sdb1
label = ""
findfs
- UUID나 라벨명으로 장치명을 확인.
- # findfs LABEL=[라벨명]
- # findfs UUID=[uuid]
[root@linux1 ~]# xfs_admin ‐L /home2 /dev/sdb1
writing all SBs
new label = "/home2"
[root@linux1 ~]# blkid | grep sdb1
/dev/sdb1: LABEL="/home2" UUID="45112a26‐0d6c‐46a0‐ac8a‐790e7696cb8a" TYPE="xfs"
[root@linux1 ~]# findfs UUID="45112a26‐0d6c‐46a0‐ac8a‐790e7696cb8a"
/dev/sdb1
[root@linux1 ~]# findfs LABEL="/home2"
/dev/sdb1
xfs와 ext4
자동 마운트 ‐ /etc/fstab
/etc/fstab 파일은 시스템 시작 시 자동으로 mount할 파일 시스템의 목록이나 옵션을 저장한다.
장치, 마운트위치, 파일 시스템 타입, 옵션, dump, 점검여부
# mount –a : fstab의 모든 목록을 mount한다.
EX)
[root@Linux1 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Oct 5 16:23:36 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=4bebf12b-c696-4358-92e9-49a7cad2cb70 / xfs defaul ts 0 0
UUID=eb7033c7-2f05-4258-8653-5fe0f3b41a57 /boot xfs defaul ts 0 0
UUID=0dc62f31-143e-411e-996c-6c6ae2433818 swap swap defaul ts 0 0
오타가나면 문제가 생길수있다.그래서 rc.local에 저장해서 리눅스가 켜질때마다 자동으로 실행하게 한다.
저렇게하면 만약 오타가나도 문제가 안생긴다.
# cat /etc/fstab
......
......
/dev/sdb1 /data1 ext3 defaults,noatime 1 3
/dev/sdb2 /data2 ext3 defaults,noatime 1 4
/dev/sdc1 /d1 ext3 defaults 1 5
/dev/sdc5 /d2 ext3 defaults 1 6
/dev/sdc6 /d3 ext3 defaults 1 7
/dev/sdc7 /d4 ext3 defaults 1 8
/dev/sdc8 /d5 ext3 defaults 1 9
실습) sdb1, sdb5를 자동으로 마운트되게 설정
cd /dev
mkdir /data1
mkdir /data2
cd .. -> cd ~
blkid -> UUID확인
첫번째 방법
vi /etc/fstab
UUID=dadc2046-fe02-4c8a-8523-fbdd2e4296d4 /data1 xfs defaul ts 0 0
UUID="88c64412-0427-4fdd-97d1-51466b2c9332 /data2 xfs defaul ts 0 0
입력후 reboot -> df 입력 -> 마운트됐는지 확인
두번째 방법
vi /etc/rc.d/rc.local
mount UUID="dadc2046-fe02-4c8a-8523-fbdd2e4296d4" /data1
mount UUID="88c64412-0427-4fdd-97d1-51466b2c9332" /data2
입력후 reboot -> df 입력 -> 마운트됐는지 확인
'리눅스' 카테고리의 다른 글
PING, NETSTAT, ARP, HOST, LOOKUP, DIG, IP ALIASES (0) | 2022.10.20 |
---|---|
네트워크 (0) | 2022.10.20 |
파일 구조 및 퍼미션 (0) | 2022.10.19 |
사용자 관리 (0) | 2022.10.19 |
리눅스 기초명령어 3(tar, gzip, bzip, clock, date, rdate) (0) | 2022.10.19 |