가상 머신을 사용하다가 저장공간이 부족하다는 메시지가 나왔다.
처음 디스크를 할당할 때 고정 할당을 이용하여 디스크의 크기를 고정하였다. 근데 이 용량이 가득 차서 발생하는 메시지이다.
디스크 저장 공간을 늘려주기 위해서 아래와 같이 [파일]-[도구]-[가상 미디어 관리자]에 들어간다.
저장 공간을 늘려줄 vdi를 선택하면 아래 하단에 속성이 나타난다.
30GB라고 할당되어 있는 걸 200GB로 늘려주려고 했는데.. 실패했다.
아래와 같이 resizeing이 불가하다는 메시지가 떴는데, 할당 방식이 고정 할당으로 설정되어 있어서 동적 할당으로 설정을 해줘야 한다.
그런데 찾아보니 동적 할당 방식으로 설정된 디스크는 설정 변경만으로는 바꿀 수 없다고 한다.
그래서 고정 할당으로 설정된 디스크는 복사해서 다시 만들어 줘야 된다.
● 정적 할당에서 동적 할당으로 변경 (복사)
1. 복사할 디스크 이미지를 클릭한 후, 복사 아이콘을 클릭한다.
2. 전문가 모드를 클릭한다.
3. 표시한 체크박스에 체크를 하지 않고 [Finish]를 클릭한다.
4. Copy본이 생기고 밑에 크기를 보면 크기가 할당이 된다. 스크롤을 움직여서 원하는 크기를 설정하고 적용을 누르면 아래와 같이 저장 공간 크기가 할당이 된다.
● 디스크 적용
1. 방금 복제한 하드 디스크를 추가한다.
2. 저장소 파일의 크기가 설정한 대로 되어있는지 확인한다.
내가 설정한 200GB가 되었다고 해서 바로 실제 사용 가능한 용량이 바로 설정되는 게 아니라 우분투에서 파티션 설정을 해줘야 한다.
우선 우분투 실행을 시켜주자.
● 우분투 파티션 설정하기
- GParted라는 라이브러리를 이용해 "~$apt-get install gparted" 명령어로 설치한 후, 파티션 설정을 해줄 수 있다. 하지만 불필요한 라이브러리를 설치하고 싶지 않기 때문에 parted 명령어를 통해 파티션 설정을 해줄 것이다.
- parted는 파티션 관리, 크기 변경을 해줌으로써 파티션 생성, 삭제, 용량 변경, 이동, 복사 등을 지원하다. 또한, ext3, ext2, linux-swap, FAT, FAT32 파티션 복사 또는 이동 등을 지원하여 새로운 디스크에 데이터를 복사하기에도 편리하다.
1. 우선 "~$df" 명령어로 살펴보니 root가 mount 되어있는 sda1의 size는 32G만 할당이 되어있다.
2. "~$fdisk -l" 명령어로 /dev/sda의 size를 확인하니 200GB이다. /dev/sda의 파티션이 sda1, sda2, sda5로 나뉘어 있다.
3. "~$sudo parted /dev/sda" 명령어로 /dev/sda디스크를 확인하자. (parted)이 뜰 것이고 help를 적으면 parted에 관련된 명령어들이 출력될 것이다.
4. 이 명령어들 중 print, p 명령어를 통해 파티션 정보를 확인해 보자.
Start와 End를 보면 메모리가 32.2GB까지 할당되어 있는 것을 알 수 있다. 32.2GB 이후부터 디스크 끝까지 파티션이 할당되지 않은 Free Space가 있다. sda1의 용량을 확장시켜 주기 위해 Free Space를 사용할 것이다.
확장이 되지 않고 Error: Can't have overlapping partitions. 와 같은 에러 메시지가 뜬 경우라면 나와 같은 경우일 것이다.
/dev/sda5의 Swap Partition이 /dev/sda1 바로 다음에 할당되어 있기 때문에 확장시킬 수 없다.
/dev/sda1 파티션은 31.2GB에서 끝나는데, /dev/sda5 파티션은 32.2GB에서 바로 시작한다. 때문에 Swap Partition을 디스크의 끝 부분으로 이동시키거나, Swap Partition을 제거하고 /dev/sda1를 확장시킨 후, 다시 추가해야 한다.
● 파티션 종류
- Primary Partition : 주 영역 파티션
사용하는 용도에 맞게 사용하지 않거나 최대 4개까지 만들 수 있다.
- Extended Partition : 확장 영역 파티션
최대 한 개까지 조절해서 사용할 수 있다.
- Logical Partition : 논리 영역 파티션
Extend Partition 안에 만들 수 있는 파티션
● /dev/sda1 파티션 영역 확장
1. 우선 메모리를 확장시키기 전에, "(parted) rm 5" 명령어로 Swap Partition을 제거한다.
2. Partition 삭제를 해준 뒤, resize를 한다. 나는 1번 Partition을 확장시켜 주기 위해 "(parted) resize 1"을 사용했더니 "Error: The resize command has been removed in parted 3.0" 에러 메시지가 또 나왔다.
버전과 관련이 있는 것 같다. resizepart 명령어를 대신 사용해 주면 된다.
3. "(parted) resizepart 1" 명령어로 영역을 200GB까지 잡아줬다.
4. 그랬더니 "You may need to update /etc/fstab." 메시지가 떴다. /etc/fstab을 수정해 줘야 한다.
"sudo blkid /dev/sda" 명령어로 UUID 확인 후, Copy 한다.
5. vi 편집기로 /etc/fstab 파일을 변경해 준다.
6. sudo resize2fs /dev/sda1을 입력해 실제 영역에 반영한다.
7. df 명령어로 resize 확인을 해보면 할당이 제대로 된 것을 볼 수 있다.