리눅스 파일시스템 늘이기 – vmware guest os.
vmware나 kvm등 가상머신을 사용하다 보면, guest vm의 디스크가 모자랄 때가 생긴다.
이때, 가상 디스크를 추가하고 mount해서 사용해도 되지만 디스크를 증가시키고 파일시트템을 증가시켜야 할 때도 생긴다.
아래는 vsphere를 사용하여 guest 디스크를 늘인 다음, 파일시스템(여기서는 xfs로 포맷함)을 늘이는 방법이다.
1. Guest OS(ubuntu 22.04)에서 하드 디스크 확인.
parted 명령으로 디스크 크기를 확인해 보면 26.8GB인 것을 볼 수 있다.
snowfox@foo:~$ sudo parted -l Model: VMware Virtual disk (scsi) Disk /dev/sda: 26.8GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 1128MB 1127MB fat32 boot, esp 2 1128MB 26.8GB 25.7GB xfs
파일 시스템은 아래처럼 /sd1, /sda2로 나눠져 있다.
snowfox@foo:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 393M 736K 392M 1% /run /dev/sda2 24G 9.0G 15G 38% / tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda1 1.1G 6.1M 1.1G 1% /boot/efi tmpfs 393M 8.0K 393M 1% /run/user/1000
2. vcsa에서 guest os의 디스크 크기를 늘여준다.
가상머신을 선택한 후, 설정 편집을 선택하면 아래처럼 하드디스크는 25GB로 설정되어 있다.
이제 하드디스크 크기를 10GB늘인 35로 수정하고, 확인 버튼을 누른다.
3. 디스크 크기를 늘이고, guest os를 재부팅한 후 parted 명령으로 디스크를 확인해 보면, 디스크 전체가 사용되지 않는다는 경고와 이를 고칠것이냐고 묻는 메시지를 볼 수 있다.
nowfox@foo:~$ sudo parted -l [sudo] password for snowfox: Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space (an extra 20971520 blocks) or continue with the current setting? Fix/Ignore? fix Model: VMware Virtual disk (scsi) Disk /dev/sda: 37.6GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 1128MB 1127MB fat32 boot, esp 2 1128MB 26.8GB 25.7GB xfs
lsblk 명령으로 파티션을 확인 할 수 있다.
snowfox@foo:~$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 35G 0 disk ├─sda1 8:1 0 1G 0 part /boot/efi └─sda2 8:2 0 23.9G 0 part / sr0 11:0 1 1024M 0 rom
4. growpart 명령으로 sda2의 파티션 크기를 늘여준다.
nowfox@foo:~$ sudo growpart /dev/sda 2 CHANGED: partition=2 start=2203648 old: size=50223104 end=52426752 new: size=71196639 end=73400287
lsblk 명령으로 확인 해 보면, /dev/sda2의 크기가 10GB 증가한 것을 확인 할 수 있다.
snowfox@foo:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 35G 0 disk ├─sda1 8:1 0 1G 0 part /boot/efi └─sda2 8:2 0 33.9G 0 part / sr0 11:0 1 1024M 0 rom
하지만, df 명령으로 확인 해 보면 /dev/sda2의 크기는 여전히 25GB이다.
snowfox@foo:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 393M 732K 392M 1% /run /dev/sda2 24G 9.0G 15G 38% / tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda1 1.1G 6.1M 1.1G 1% /boot/efi tmpfs 393M 8.0K 393M 1% /run/user/1000 snowfox@foo:~$
5. xfs_growfs 명령으로 파일시스템 크기를 늘인다.
snowfox@foo:~$ sudo xfs_growfs /dev/sda2 meta-data=/dev/sda2 isize=512 agcount=4, agsize=1569472 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=0 inobtcount=0 data = bsize=4096 blocks=6277888, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=3065, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 6277888 to 8899579
이제, df 명령으로 확인 해 보면 /dev/sda2의 크기가 증가한 것을 확인 할 수 있다.
snowfox@foo:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 393M 732K 392M 1% /run /dev/sda2 34G 9.1G 25G 27% / tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda1 1.1G 6.1M 1.1G 1% /boot/efi tmpfs 393M 8.0K 393M 1% /run/user/1000