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인 디스크에서만 사용 |
파티션 테이블을 출력 | |
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 프로그램도 있습니다.
'IT 이야기 > Linux 명령어' 카테고리의 다른 글
[RHEL6] 파일 시스템 7탄(swapoff, swapon, tune2fs, umount) (0) | 2020.04.16 |
---|---|
[RHEL6] 파일 시스템 6탄(restore, rootflags, showmount, stat) (0) | 2020.04.16 |
[RHEL6] 파일 시스템 명령어 3탄(fsck, mke2fs, mknod, mkswap, mktemp) (0) | 2020.04.08 |
[RHEL6] 파일 시스템 명령어 2탄(du, dumpe2fs, e2fsck, e2lable, fdisk) (0) | 2020.04.03 |
[RHEL6] 파일 시스템 명령어 1탄(chroot, dd, debugfs, df, dosfsck) (0) | 2020.04.03 |
댓글