[linux] 우분투 수동으로 파일 시스템 포멧 - mkfs-fdisk 명령 사용법
[linux] 수동으로 파일 시스템 포멧설정 - mkfs-fdisk 명령 사용법
가상머신으로 virtualbox를 사용하고 ubunto linux를 사용하는데 디스크 용량이 부족해서 가상 디스크를 추가하려고 합니다.
수동으로 파일 시스템을 만드는 방법은 모든 리눅스가 유사한 절차를 하게 되므로 하나를 잘 이해하는 것이 중요합니다.
관련된 명령들을 정리 하고 파일시스템을 만드는 과정을 설명 드리겠습니다.
[파일 시스템 생성 순서]
1.설치할 fdisk -l 디스크 확인 ( lsblk, lsscsi 등) 하여 파티션 생성
2. 파티션 생성 : fdisk /dev/sdb
3. 파티션 생성과 포멧 : mkfs.ext4 /dev/sdb1
4. 파일시스템 마운트 설정 : vi /etc/fstab
5. 파일시스템을 마운트 : mount -a
1. fdisk 명령으로 파일 시스템 확인
- 새로 추가된 파일 시스템으로 "Disk /dev/sdb: 80 GiB" 가 추가되어 있습니다.
# 파일 시스템 확인
$ sudo fdisk -l
Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: CEAEF9CB-85F5-4C10-ADA9-85F9B7ECF7CE
Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 52426751 52422656 25G Linux filesystem
Disk /dev/sdb: 80 GiB, 85899345920 bytes, 167772160 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
2. lsblk (block 디바이스) , lsscsi (SCSI디바이스) 의 상태 확인
# 블럭디바이스 또는 ScSi디스크 정보 확인
~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 25G 0 disk
-sda1 8:1 0 1M 0 part
-sda2 8:2 0 25G 0 part /
sdb 8:16 0 80G 0 disk
2. fdisk로 파이션 생성하기
" fdisk /dev/sdX" 로 파티션을 생성할 디스크를 선정합니다. fdisk cli 명령으로 커멘트를 실행 하면 되는데
fdisk 내부 명령으로 많이 사용하는 메뉴 사용법은 다음과 같은 순서로 이용합니다.
- m : 실행 가능한 명령어 메뉴를 출력합니다.
- p : 파티션 테이블을 출력 합니다.
- n : 새로운 파이션을 생성합니다. 여기에서 다시
-> p : primary 파티션 또는 "e" extended 파티션을 생성 합니다.
- p : 설정된 파티션 테이블을 출력하여 확인 합니다.
- d : 만약 만든 파이션을 지우고자 할때 사용합니다. (바로 삭제 됩니다.)
- w : 파티션 테이블을 디스크의 super block에 저장하고 나갑니다.
2.1 다음 예시와 같이 파티션을 생성하면 됩니다
# fdisk를 이용한 파티션 만들기 예시
$ sudo fdisk /dev/sdb
Welcome to fdisk (util-linux 2.37.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.
Created a new DOS disklabel with disk identifier 0x95e3b04d.
Command (m for help): p <- (print) 파티션 테이블을 확인합니다.
Disk /dev/sdb: 80 GiB, 85899345920 bytes, 167772160 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x95e3b04d
Command (m for help): n <- (new) 새로운 파티션 테이블을 만듭니다.
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p <- (create primary)
Partition number (1-4, default 1): <- 엔터 (1번 섹터부터 파티셔을 시작)
First sector (2048-167772159, default 2048): <- 엔터 (디스크 최대 용량까지 )
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-167772159, default 167772159):
Created a new partition 1 of type 'Linux' and of size 80 GiB.
Command (m for help): p <- (print) 파티션 테이블을 확인합니다.
Disk /dev/sdb: 80 GiB, 85899345920 bytes, 167772160 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x95e3b04d
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 167772159 167770112 80G 83 Linux
Command (m for help): w <- (write) 파티션 테이블을 저장합니다.
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
2.2. /dev/sdb에 새로 만들어진 파티션 생성 결과를 확인합니다.
- sudo fdisk -l /dev/sdb 명령으로 파티션 상태를 확인 합니다.
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 80 GiB, 85899345920 bytes, 167772160 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x95e3b04d
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 167772159 167770112 80G 83 Linux
3. 생성된 파일 시스템의 파티션을 포멧 합니다.
"리눅스는 다양한 파일시스템 포멧을 제공합니다. 최근에는 ext4 또는 xfs를 이용하는 것이 일반적입니다.
mkfs.bfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.vfat
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.ntfs mkfs.xfs
여기 예시에서는 "ext4"를 이용하는 방법으로 작성을 합니다.
# ext4 파일 포멧으로 파티션을 포멧
$ sudo mkfs -t ext4 /dev/sdb1 또는
$ sudo mkfs.ext4 /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 20971264 4k blocks and 5242880 inodes
Filesystem UUID: 9cd21844-438c-4d4b-bb7e-77ceaca409b0
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000
Allocating group tables: done
Writing inode tables: done
Creating journal (131072 blocks): done
Writing superblocks and filesystem accounting information: done
4. 파일시스템을 마운트 합니다.
4.1 마운트할 디렉토리를 생성합니다.
# 1. 디스크를 마운트할 디렉토리를 설정합니다.
$sudo mkdir /mydata
4.2 /etc/fstab을 이용하여 자동으로 파일 시스템을 마운트 합니다.
# 2. 자동으로 마운트하도록 설정을 합니다.
# - /dev/sdb1을 아래와 같이 추가 합니다. (noatime: 튜닝을 위해 추가했습니다.)
$sudo vi /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during curtin installation
/dev/disk/by-uuid/3bc18820-a8f1-4bc8-b48e-7bc1734ce4e5 / ext4 defaults,noatime 0 1
/dev/sdb1 /mydata ext4 defaults,noatime 0 2
/swap.img none swap sw 0 0
5. "mount -a " 를 이용하여 파일 시스템을 마운트 합니다.
5.1 "/etc/fstab" 에서 설정된 파일시스템 을 마운트 합니다.
# /etc/fstab을 이용해서 마운트 합니다.
~$ sudo mount -a
5.2 마운트 된 파일 시스템을 확인 합니다.
# 마운트된 파일 시스템을 확인 합니다.
~$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 197M 1.1M 196M 1% /run
/dev/sda2 25G 5.1G 19G 22% /
tmpfs 983M 0 983M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 197M 4.0K 197M 1% /run/user/1000
/dev/sdb1 79G 24K 75G 1% /mydata
[예시] 가상 머신에서 파일 시스템 추가하기 위해서 다음과 같이 가상 디스크를 추가하여 사용합니다.
- 가상 머신 : VirtualBox
- OS : ubuntu-22.04.3-live-server-amd64
위와 같이 저장소의 Ubunto22-GPT_data.vdi로 80G정도 용량으로 저장을 하였습니다.
LLma2를 저장하는데 7B(10GB용량), 13B-Chat (24GB) 이 필요하여 대량 VDI로 100GB정도 추가하면 좋겠습니다.