::: IT인터넷 :::

VirtualBox CentOS 가상머신의 하드디스크 추가와 파티션 설정

곰탱이푸우 2023. 4. 13. 08:20
VirtualBox로 가상머신을 사용하다보면 저장소 용량이 모자란 경우가 발생한다.
일반적인 PC 환경에서는 하드디스크를 추가하거나 외장하드를 사용한다.
가상머신의 경우 저장소 파일을 추가하고 CentOS에서 Mount하고 파티션을 설정하면 된다.
 
아래와 같이 진행한다.
  1. 가상 하드디스크 생성과 추가
  2. 하드디스크 파티션 생성과 포맷
  3. 파일 시스템 Mount
 
 

가상 하드디스크 생성과 추가

가상머신의 설정 - 저장소 - 컨트롤러: SATA에서 HDD에 + 버튼을 눌러 가상 디스크를 추가한다.
 
2TB 이상인 경우 CLI에서 명령어를 사용해서 추가해야 한다.
$ vboxmanage createmedium --filename "가상머신경로/파일명.vdi" --size 디스크용량(MB단위) \
  --format VDI --variant Standard

 

자세한 방법은 아래 포스팅을 참고한다.

하드디스크 파티션 생성과 포맷

장치 경로 확인

가상 머신을 부팅하고 추가한 가상 디스크의 장치 경로를 확인한다.
$ sudo fdisk -l
 
 
아래와 같이 일반적으로 /dev/sdb 또는 /dev/sdc로 연결된다.
파티션이 생성되지 않아 기본 정보가 출력된다.

 

파티션 생성

fdisk 실행

fdisk를 실행하고 파티션을 생성한다.
장치 경로가 /dev/sdb로 확인되어 해당 경로를 사용한다.
$ sudo 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 0x7ca12be4.

WARNING: The size of this disk is 11.0 TB (10995116277760 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID
partition table format (GPT).

Command (m for help):
 

사용 가능한 명령어 확인

m 키를 입력해서 사용 가능한 명령어들을 확인한다.
아래 명령어 중에서 d, n, w를 사용한다.
Command (m for help): m  # 명령어 확인
Command action
  a  toggle a bootable flag
  b  edit bsd disklabel
  c  toggle the dos compatibility flag
  d  delete a partition    # 사용
  g  create a new empty GPT partition table
  G  create an IRIX (SGI) partition table
  l  list known partition types
  m  print this menu
  n  add a new partition    # 사용
  o  create a new empty DOS partition table
  p  print the partition table
  q  quit without saving changes
  s  create a new empty Sun disklabel
  t  change a partition's system id
  u  change display/entry units
  v  verify the partition table
  w  write table to disk and exit    # 사용
  x  extra functionality (experts only)

Command (m for help):

 

 

기존 파티션 삭제

d 명령어로 기존 남아있는 파티션을 삭제한다.
신규 추가 디스크이기 때문에 파티션이 없다는 메시지가 출력되어야 정상이다.
Command (m for help): d  # 명령어 확인
No partition is defined yet!
Command (m for help):
 

신규 파티션 생성

n 명령어로 파티션을 생성한다.
p 를 입력해서 primary 파티션을 선택하고 default 값들을 사용한다. (엔터 계속 입력)
Command (m for help): n  # add a new partition
Partition type:
  p  primary (0 primary, 0 extended, 4 free)
  e  extended
Select (default p): p  # 또는 엔터

Partition number (1-4, default 1): 1 # 또는 엔터

First sector (2048-4294967295, default 2048):  # 엔터 입력
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4294967294, default 4294967294):
Using default value 4294967294
Partition 1 of type Linux and of size 2 TiB is set

Command (m for help): w  # write table to disk and exit
 
파티션 생성이 완료되면 w 명령어로 저장하고 종료한다.
 

파티션 포맷

생성한 파티션을 ext4 파일시스템으로 포맷한다. 
# /dev/sdb 장치를 ext4 파일시스템으로 포맷

$ sudo mkfs.ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n)    # y 입력
 
아래와 같이 포맷이 진행된다.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
335544320 inodes, 2684354560 blocks
134217728 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
81920 block groups
32768 blocks per group, 32768 fragments per group
4096 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544, 1934917632,
2560000000

Allocating group tables: done                           
Writing inode tables: done                           
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:           
done

 

 

파일 시스템 Mount

파티션 목록을 확인해보면 ext4로 추가한 /dev/sdb 장치가 없다.
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        16G    0  16G  0% /dev
tmpfs            16G    0  16G  0% /dev/shm
tmpfs            16G  8.7M  16G  1% /run
tmpfs            16G    0  16G  0% /sys/fs/cgroup
/dev/sda2        50G  2.3G  45G  5% /
/dev/sda3        50G  53M  47G  1% /home
/dev/sda6      9.8G  37M  9.2G  1% /tmp
/dev/sda1      976M  152M  757M  17% /boot
/dev/sda7      131G  61M  125G  1% /workspace
tmpfs          3.2G    0  3.2G  0% /run/user/1000
$
파일시스템이 마운트 되지 않아 발생하는 것으로 해당 파티션을 Mount하면 사용 가능하다.
재부팅 이후에도 사용해야 하므로 fstab에 추가한다.
 

파티션 UUID 확인

추가한 파티션의 UUID를 확인하고 /dev/sdb의 값을 복사한다.
$ sudo blkid

# 출력 된 UUID 중 /dev/sdb 항목의 값 복사
# TYPE="ext4" 인지 확인

 

아래와 같이 /dev/sdb 값이 확인된다.

 

 

fstab 수정

fstab 파일을 열고 해당 UUID를 이용하여 파일시스템을 Mount한다. 
$ sudo vi /etc/fstab

# 가장 마지막줄에 아래와 같이 입력

# 복사한UUID  폴더경로  ext4  defaults  0 0
# /dev/sdb  폴더경로  ext4  defaults  0 0

UUID=25963689-1e5f-4086-92fd-02525ec19785 /                      ext4    defaults        1 1
UUID=90e764a7-a577-4ead-8910-e63afd91a1f8 /boot                  ext4    defaults        1 2
UUID=76e95bc8-bcd0-4162-9a0e-cf56ba8c6859 /home                  ext4    defaults        1 2
UUID=77736055-55ac-4cc7-b5ff-d03f82cf04a8 /tmp                    ext4    defaults        1 2
UUID=7cf82f4d-4acd-4858-a4ed-40e3f4b012de /workspace              ext4    defaults        1 2
UUID=227b4854-fa4a-472a-909a-819083cf607b swap                    swap    defaults        0 0

# 마지막 줄에 아래와 같이 입력한다.
UUID=1a48f762-888b-40f9-8ae0-1ae70f9f124e /data                  ext4    defaults        0 0

# 또는
/dev/sdb /data        ext4    defaults    0 0

# :wq 입력하여 저장하고 종료

 

재부팅해서 정상적으로 Mount 되었는지 확인한다.
# 재부팅
$ sudo reboot now

# 연결한 폴더와 파티션 정보 확인
$ ls -al /data
합계 24
drwxr-xr-x  3 root root  4096 Apr  3 15:44 .
dr-xr-xr-x. 20 root root  4096 Mar 24 15:01 ..
drwx------  2 root root 16384 Apr  3 15:44 lost+found

# 연결 된 파티션 목록 확인
$ df -h 
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        16G    0  16G  0% /dev
tmpfs            16G    0  16G  0% /dev/shm
tmpfs            16G  8.6M  16G  1% /run
tmpfs            16G    0  16G  0% /sys/fs/cgroup
/dev/sda2        50G  2.3G  45G  5% /
/dev/sda6      9.8G  37M  9.2G  1% /tmp
/dev/sda3        50G  53M  47G  1% /home
/dev/sda1      976M  152M  757M  17% /boot
/dev/sda7      131G  61M  125G  1% /workspace
/dev/sdb        10T  73M  9.5T  1% /data          # 정상적으로 추가된 것이 확인된다.
tmpfs          3.2G    0  3.2G  0% /run/user/1000

 

아래 블로그를 참고하였다.