[RHEL6] 파일 시스템 명령어 4탄(mount, parted, resize2fs)
본문 바로가기
IT 이야기/Linux 명령어

[RHEL6] 파일 시스템 명령어 4탄(mount, parted, resize2fs)

by 찬찬이 아빠 2020. 4. 9.
반응형
  16. mount(장치 연결)

 1) 경로 : /bin/mount

 2) 요약 : 디바이스와 파일 시스템을 연결

 3) 사용 방법 : mount -a [옵션] 디바이스 디렉터리

 4) 옵션

 -h : 사용법 출력

 -V : 버전 정보 출력

 -a : fstab에 정의되어 있는 모든 파일 시스템을 마운트. noauto 옵션은 자동 마운트에서 제외

 -v : 상세한 정보 출력

 -f : 실제 시스템 명령은 호출하지 않고 마운트 할 수 있는지 여부만 점검

 -l(엘) : 마운트 된 목록 출력

 -n : /etc/mtab 파일에 쓰기 작업을 하지 않고 마운트. /etc가 읽기전용 파일 시스템인 경우에 필요

 -r : 읽기만 가능하게 마운트. -o ro 옵션과 같음

 -t 파일 시스템 : 파일 시스템 형식을 지정

 -o(오) : -o 옵션 뒤에 콜론으로 다음 옵션 중 필요한 것을 선택하여 사용

   § async : 파일 시스템에 대한 I/O가 비동기적으로 이뤄지도록 함

   § auto : -a 옵션으로 마운트

   § defaults : rw, suid, dev, exec, auto, nouser, async를 기본 옵션으로 함

   § dev : 파일 시스템의 상의 문자, 블록 특수 장치를 해석

   § exec : 바이너리의 실행은 허가

   § noauto : -a 옵션으로 마운트되지 않음

   § nodev : 파일 시스템 상의 문자, 블록 자치에 대한 해석을 하지 않음

   § nosuid : set-UID, set-GID를 무시하게 함

   § nouser : 일반 사용자는 마운트를 하지 못하게 함

   § remount : 이미 마운트된 파일 시스템을 다시 마운트

   § ro : 파일 시스템을 읽기만 가능하게 함

   § rw : 읽기/쓰기 모두 가능하게 마운트

   § suid : set-UID, set-GID가 효력을 발휘할 수있게 해줌

   § vsync : 파일 시스템에 대한 I/O가 동기적으로 이뤄지게 함

   § user : 일반 사용자도 마운트할 수 있게 허용

 

 5) 추가 설명

리눅스에서 장치를 포함하여 모든 파일들을 루트 디렉터리(/) 밑에 있는 하나의 디렉터리로 인식합니다. 시스템에 기본적으로 마운트되어야 하는 디렉터리들은 아래와 같이 /etc/fstab 파일에 설정하여 부팅 시 자동 마운트되게 합니다.

# cat /etc/fstab
UUID=7b6ed171-1cba-47d2-8584-7e46d68f7bd0 /                       xfs     defaults        0 0
UUID=d6ddd5c4-4647-4adc-984e-c2c30154cba6 /GCLOUD                 xfs     defaults        0 0
UUID=3b3fa9d7-5636-4b06-b8bc-02c6212d8a55 /boot                   xfs     defaults        0 0
UUID=581e9d17-495c-4fb2-931b-39e30e76970e swap                    swap    defaults        0 0

 

보통 /etc/fstab은 [장치명] [마운트할 디렉터리] [파일 시스템] [옵션] [덤프] [부팅시 파일 시스템 점검순서]로 지정하게 됩니다. 여기에서 ext3 파일 시스템인 / 파티셔는 / 디렉터리로 부팅 시 자동 마운트하고, 디폴트 옵션으로 덤프는 실행하지 않으며, 부팅할 때 파일 시스템을 체크하지 않도록 설정하였습니다.

 

아래는 각 항목에 대한 자세한 설명입니다.

필드 항목 설명
장치명 마운트할 블록장치 또는 원격 파일 시스템을 적음
마운트할 디렉터리 파일 시스템을 마운트할 마운트 포인트, 즉 디렉터리를 지정
파일 시스템 파일 시스템의 유형을 지정
옵션 파일 시스템에 관련된 마운트 옵션을 지정
덤프 dump 명령에 의해 덤프할 파일 시스템을 지정. 만인 0값이면 덤프가 필요가 없다고 판단

부팅 시 파일 시스템

점검순서

부팅 시 파일 시스템의 이상 여부를 확인 후 이상이 있을 경우 자동 시스템 검사를 할 것인지 지정

0은 점검하지 않으며, 1은 / 파티션, 나머지는 2 이상의 우선 순위를 지정

모두 1로 지정하여도 문제되지 않음

 

mount -l(엘)은 현재 마운트된 목록을 보여줍니다.

# mount -l
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=426128k,nr_inodes=106532,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio,net_cls)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/sda5 on / type xfs (rw,relatime,attr2,inode64,noquota)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=12117)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
/dev/sda2 on /GCLOUD type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda1 on /boot type xfs (rw,relatime,attr2,inode64,noquota)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=88376k,mode=700)

 

/dev/sda2 파일 시스템을 /mnt/disk2 디렉터리에 마운트 후 마운트를 해제해 봅니다.

# mount /dev/sda2 /mnt/disk2
# unmount /mnt/disk2

 

 

 

  17. parted(파티션 조작)

 1) 경로 : /sbin/parted

 2) 요약 : 디스크 파티셔닝과 파티션 크기를 조절

 3) 사용 방법 : parted [옵션] [디바이스명] [명령어 [옵션...]...]]

 4) 옵션

 -h, --help : 사용법 출력

 -l(엘), --list : 모든 블록 디바이스의 파티션 목록을 출력

 -m, --machine : 파싱이 가능한 출력으로 표시

 -s, --script : 프롬프트를 생성하지 않음

 -v, --version : 버전 정보 출력

 

 5) 명령어

[디바이스명]

블록 디바이스명. 아무것도 지정하지 않으면 첫 번째 블록의 디바이스를 자동으로 지정

 

[명령어 [옵션]]

parted 명령어는 지정한 옵션에 맞혀 실행. 만인 옵션을 지정하지 않으면 parted 명령행에서 대화형으로 실행할 수 있음. 아래는 parted 명령행에서 쓸 수 있는 옵션 목록

명령어 설명
check partition 지정한 파티션을 간단하게 체크
cp [source-device] source dest 원본 디바이스(source-device)의 원본(source) 파티션의 파일 시스템을 현재 디바이스의 대상(dest) 파티션으로 복사. 디바이스를 지정하지 않으면 현재 디바이스를 원본으로 함
help [command] 전체 명령어 목록의 사용법 출력. 만일 특정 명령어(command)를 지정하면 지정한 명령어의 사용법 출력
mkfs partition nfs-type 파티션에 지정한 파일 시스템(fs-type)을 생성. 파일 시스템에는 "fat16", "fat32", "ext2", "linux-swap", "reiserfs" 등이 올 수 있음
mklabel label-type 새로운 디스크의 라벨 타임(label-type)을 지정. 라벨 타입에는 "bsd", "dvh", "gpt", "loop", "mac", "msdos", "pc98", "sun"을 지정할 수 있음
mkpart part-type [fs-ty[e] start end 파일 시스템 타입(fs-type)을 지정할 수 있고, 시작 점(start)과 끝 점(end)으로 파티션 타입(part-type)을 생성(기본 단위는 MB). 파일 시스템은 "fat16", "fat32", "ext2", "HFS", "linux-swap", "NTFS", "reiserfs", "ufs"를 지정할 수 있음. 파티션 타입은 "primary", "logical", "extended"를 지정할 수 있음
mkpartfs part-type fs-type start end 시작 점(start)과 끝 점(end)으로 하고 기본 단위를 MB로 하는 파티션 타입(part-type)과 파일 시스템(fs-type)을 생성. 이 명령 대신에 mkpart 명령어로 파티션을 생성하고, mkfs 명령으로 시스템 타입을 지정하는 것이 나음
move partition start end 파티션을 시작 점(start)과 끝 점(end)으로 하는 파티션으로 이동. 이 옵션은 디스크 라벨이 Mac, PC98, GPT인 디스크에서만 사용
print 파티션 테이블을 출력
quit parted 명령행에서 빠져 나옴
resuce start end 지정한 시작 점(start)과 끝 점(end) 사이의 잃어 버린 파티션을 복구. 만인 파티션을 찾으면 파티션 테이블을 엔트리에 추가할지 여부를 물음
resize partition start end 파티션(partition)에 있는 시작 점(start)과 끝 점(end)가지의 크기를 재조정(기본 단위는 MB)
rm partition 지정한 파티션(partition)을 삭제
select device 편집을 위해 현재 디바이스(device)를 지정. 디바이스는 디스크 디바이스, 파티션, 소프트웨어 RAID 디바이스, LVM 논리 볼륨일 수 있음
set partition flag state 지정한 플래그(flag)와 상태(state)의 파티션(partition)으로 변경. 플래그는 "boot,", "root"," swap"," hidden", "raid", "lvm", "lba", "palo"를 지정할 수 있고, 상태ㅔ는 "on", off"를 지정할 수 있음
version 버전 정보 출력

 

 6) 추가 설명

parted 명령어는  디스크를 파티셔닝하거나 파티션의 크기를 조절합니다. ext2, linux-swap, FAT, FAT32, reiserfs 파티션을 생성, 삭제 또는 크기를 재설정하고, 이동 혹은 복사할 수있습니다. 또한 매킨토시 HFS 파티션을 생성, 삭제 이동할 수 있고 jfs, ntfs, ufs, xfs 파티션을 인식할 수 있습니다. 이 명령어는 새로운 운영체제를 설치할 때 디스크 공간을 확보하거나 파티션의 크기를 재설정할 수 있습니다. 또한 데이터를 새로운 하드 디스크레 복사할 때 유용합니다. 

 

fdisk는 parted의 파티션 크기를 조절하는 기능을 제외하고 기능상 같습니다. 참고로 fdisk 명령어는 2TB 이상의 실린더를 인식할 수 없으므로, 이 때는 parted 명령어를 사용해야 합니다.

 

parted 명령어를 인자 없이 실행할 경우 첫 번째 블록의 디바이스를 자동 선택합니다.

# parted
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

 

help 명령어도 (parted) 명령행에서 사용 가능한 명령어 목록을 출력합니다.

(parted) help                                                             
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found
        partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  
  resizepart NUMBER END                    resize partition NUMBER
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted

 

-l(엘) 옵션은 블록 디바이스의 파티션 정보를 출력합니다.

# parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  538MB   537MB   primary   xfs             boot
 2      538MB   21.5GB  21.0GB  primary   xfs
 3      21.5GB  23.7GB  2149MB  primary   linux-swap(v1)
 4      23.7GB  53.7GB  30.0GB  extended
 5      23.7GB  53.7GB  30.0GB  logical   xfs

 

-l(엘)과 -m 옵션을 같이 사용하면 각 필드를 콜론(:)으로 구분하여 출력합니다.

# parted -lm
BYT;
/dev/sda:53.7GB:scsi:512:512:msdos:ATA VBOX HARDDISK:;
1:1049kB:538MB:537MB:xfs::boot;
2:538MB:21.5GB:21.0GB:xfs::;
3:21.5GB:23.7GB:2149MB:linux-swap(v1)::;
4:23.7GB:53.7GB:30.0GB:::;
5:23.7GB:53.7GB:30.0GB:xfs::;

 

아래는 parted를 사용하여 /dev/sdc 디바이스의 파티션을 설정하는 방법을 설명합니다.

 ① 현재 디바이스 정보를 출력합니다. 파티션이 아직 할당되지 않아 아래 메시지를 출력합니다.

# parted /dev/sdc
(parted) printError: Unable to open /dev/sdc - unrecognised disk label.​

 

 ② 디스크의 라벨을 chan으로 지정합니다.

(parted) mklabel chan

 

 ③ p 명령으로 지정한 라벨을 확인할 수 있습니다. print 를 입력해도 마찬가지 입니다.

(parted) p
Model: IFT A16F-R2431 (scsi)Disk /dev/sdc: 300GB
Sector size (logical/physical): 512B/512B
Partition Table: chan
Number Start End Size File system Name Flags

 

 ④ mkpart 명령으로 프라이머리 파티션의 0MB에서 500MB까지 생성합니다. 기본 단위는 MB 입니다.

(parted) mkpart primary 0 500

 

 ⑤ 프라이머리 파티션으로 500MB 부터 10GB까지 추가적으로 생성합니다.

(parted) mkpart primary 500 10000

 

 ⑥ 10GB 이후의 나머지 파티션을 생성합니다.

(parted) mkpart primary 10000 100%

 

 ⑦ p 명령으로 지정한 파티션을 확인합니다.

(parted) p
(parted) p
Model: IFT A16F-R2431 (scsi)Disk /dev/sdc: 300GB
Sector size (logical/physical): 512B/512B
Partition Table: chan
Number 	Start 	End 	Size 	File system Name Flags
1		17.4KB	500MB	500MB	primary
2		500MB	10.0GB	9500MB	primary
3		10.0GB	300GB	290GB	primary

 

 

  18. resize2fs(파일 시스템 조절)

 1) 경로 : /sbin/resize2fs

 2) 요약 : ext2/ext3/ext4 파일 시스템 크기를 조절

 3) 사용 방법 : resize2fs [-fFpPM] [-d debug-flags] [-S RAID-stride] device [size]

 4) 옵션

 -d debug-flags : resize2fs의 디버깅을 활성화

   § 2 : 블록 재할당 디버그

   § 4 : 아이노드 재할당 디버그

   § 8 : 아이노드 테이블 이동 디버그

 -f : 강제적으로 파일 시스템의 크기를 조절

 -F : 시작 전에 파일 시스템 디바이스의 버퍼 캐시를 비움

 -M : 파일 시스템을 최소한의 크기로 줄임

 -p : 실행이 완료되는 상태를 퍼센트 비율로 출력

 -P : 파일 시스템의 최소 크기를 출력 

 

 5) 추가 설명

resize2fs 명령어는 ext 계열의 파일 시스템 크기를 조절할 수 있습니다. 디스크의 파티션 크기가 변경할 크기 만큼 미리 조정되어 있어야 resize2fs 명령어로 크기를 조절할 수 있습니다. 실제로 resize2fs 명령어를 사용하려면 fdisk나 cfdisk 명령으로 파티션 크기를 조절해야 합니다. 하지만 이 명령어는 기존 데이터를 삭제하므로 resize2fs 명령어 사용은 제한적입니다. 따라서 파일 시스템 크기 조절에는 parted 명령어가 더 낫습니다. 만익 텍스트 명령어 형식이 어렵다면 gparted GUI 프로그램도 있습니다.

반응형

댓글