데이터 손실 없이 VPS에서 파티션 크기 조정

데이터 손실 없이 VPS에서 파티션 크기 조정

40GB 디스크 공간을 갖춘 작은 VPS 서버가 있습니다. 40GB를 추가로 구입했는데 이제 파티션 크기를 확장하고 싶습니다 /.

내 파티션은 다음과 같습니다.

파티션 크기

/dev/vda1이고 내 /boot입니다 . 내 VPS 공급자가 추가되었습니다 . 이것이 맞는지 확실하지 않지만 제거 하고 생성하려고 시도했지만 해당 옵션이 없습니다. ID가 2-4인 장치만 다시 생성할 수 있고 내 위치에서는 5가 아닌 장치를 다시 생성할 수 있습니다 ./dev/vda5//dev/vda2/dev/vda5/dev/vda2/dev/vda5/

답변1

growpart공급자가 가상 ​​디스크를 확장하면 파티션을 안전하게 확장하는 유틸리티가 있습니다 . 귀하의 경우 유일한 트릭은 필요하지 않을 때 확장/논리 DOS 파티션을 불필요하게 생성했다는 것입니다. 따라서 확장 파티션의 크기를 조정한 다음 확장 파티션에 포함된 논리 파티션의 크기를 조정해야 합니다.

sudo apt install cloud-guest-utils

유틸리티 growpart는 디스크와 파티션 번호를 별도의 인수로 허용하므로 크기를 조정하려면 다음과 같이 /dev/vda2작성합니다.

sudo growpart /dev/vda 2

먼저 확장 파티션의 크기를 조정한 /dev/vda2다음 /dev/vda5같은 방식으로 크기를 조정합니다.

sudo growpart /dev/vda 2
sudo growpart /dev/vda 5

이제 파일 시스템의 크기를 조정할 수 있습니다. ext4이면 resize2fs /dev/vda5작동합니다. XFS의 경우 xfs_growfs /.

답변2

출력 결과 에 따르면 fdisk실제로 40GB의 80GB 디스크가 있는 것으로 보입니다.펼친/dev/vda240GB 내부를 포함하는 파티션( )논리적/dev/vda5파일 시스템 을 보유하는 파티션 /. 확장 파티션에는 실제로 파일이 포함되어 있지 않으며 아래에 언급된 4개의 파티션 제한을 극복할 수 있는 논리 파티션의 "컨테이너"일 뿐입니다. 그러면 fdisk어떤 식으로든 표시되지 않는 할당되지 않은 공간이 40GB 있습니다 .

할당되지 않은 공간을 사용하는 방법에는 여러 가지 옵션이 있을 수 있습니다. LVM을 사용하지 않는 경우 LVM에는 볼륨 크기를 조정하는 자체 도구가 있으므로 절차가 완전히 다르기 때문에 LVM을 사용하지 않는다고 가정합니다. 그러나 fdisk출력에는 LVM 파티션에 대한 언급이 표시되지 않습니다.

fdisk파티션을 삭제하고 다시 만드는 것은 항상 데이터 손실의 위험이 있으므로 권장하지 않습니다 . 따라서 안전하게 수행하려면 다음을 시도해 볼 수 있습니다.

첫 번째 옵션은 두 개의 40GB 파티션을 갖고 이 두 파티션 간에 파일을 지능적으로 분할하는 것입니다. 예를 들어 에 대용량 파일을 많이 보관하는 경우 /home새 파티션을 사용할 수 /home있으며 그 외의 모든 항목은 /home이전 파티션에 유지됩니다. 이것을하기 위해:

  1. 할당되지 않은 공간에 fdisk또 다른 기본 파티션(아마도 !로 나타날 것임)을 생성 하고 . 총 4개의 기본 또는 확장 파티션이 있을 수 있으며, 그 중 최대 1개가 확장되므로 다른 파티션을 위한 공간이 있습니다. 기본 파티션이 제공되는 권장 파티션 레이아웃은 아닙니다./dev/vda3mkfs /dev/vda3~ 후에확장 파티션이 필요하지만 아마도 작동할 것입니다.

  2. /home디렉터리 이름을 다음으로 바꾸고 /old_home(현재 사용하고 있지 않은지 확인하고 일반 사용자가 로그인하지 않은 루트에서 수행) /home이전 디렉터리와 동일한 소유자 및 권한을 가진 새 디렉터리를 만듭니다.

  3. 다음 명령을 사용하여 /dev/vda3파일 시스템 을 마운트하십시오 . 이것이 성공하면 시스템 부팅 시 새 파일 시스템이 적절하게 자동 마운트되도록 편집해야 합니다. 아마도 현재 vda1 및 vda5에 대해 다음과 같은 두 줄이 포함되어 있을 것입니다. (지금 작성 중이므로 사용자의 줄은 다를 수 있습니다.)/homemount /dev/vda3 /home/etc/fstab/etc/fstab

    /dev/vda5 / ext4 defaults 0 1

    /dev/vda1 /boot ext4 defaults 0 2

    예를 들어 vda3에 대해 유사한 줄을 추가합니다.

    /dev/vda3 /home ext4 defaults 0 2

    (파일에 "ext4" 또는 "defaults" 대신 다른 것이 있으면 이 매개변수를 새 줄에 복사하세요). 이제 새 디렉토리에 파일을 쓰고 /home시스템을 재부팅하십시오. 재부팅 후에도 디렉토리에 넣은 파일이 여전히 존재한다면 부팅 시 올바르게 마운트되었음을 /home​​의미합니다 ./home

  4. 이제 모든 것을 에서 으로 이동 /old_home/home다음 빈 /old_home디렉터리를 삭제할 수 있습니다.

나는 일반적으로 이 방법이 나에게 가장 안전하고 쉽다고 생각하며 여러 번 사용해 왔습니다. 그러나 단일 80GB 공간 대신 ​​실제로 2x40GB를 갖는 단점이 있습니다. 이는 때로는 좋을 수도 있고 때로는 나쁠 수도 있습니다. 예를 들어 실수로 시스템 디스크가 사용자 파일로 채워지는 것을 방지하려는 경우에는 다음을 갖는 것이 좋습니다. /home별도의 파티션으로.

그래서 또 다른 옵션은 GNU를 사용하는 것입니다.나뉜프로그램을 사용하여 vda2 및 vda5 파티션(첫 번째 vda2, 그 다음 vda5, 전자에 후자 포함)의 크기를 80GB로 조정합니다. parted데이터 손실 없이 파티션을 수정하도록 특별히 설계되었으나 이는 fdisk보장할 수 없습니다. 나는 partedDebian 저장소에 있다고 확신하므로 apt.

파티션 크기를 조정한 후 명령을 사용하여 파일 시스템을 전체 80GB로 resize2fs /dev/vda5확장합니다 ./

답변3

일반적으로 이 경우에는 fdisk /dev/vda.

  • 파티션 2와 5의 시작 섹터를 기록해 두십시오.
  • 파티션 5를 제거합니다.
  • 파티션 2를 제거합니다.
  • 이전 시작 섹터와 새 끝(기본값)을 사용하여 파티션 2를 다시 만듭니다. 이것은펼친분할.
  • 이전 시작 섹터와 새 끝(기본값)을 사용하여 파티션 5를 다시 만듭니다. 이것은논리적분할.

테이블이 작성되고 활성화된 후에도(예: 재부팅) 해당 파티션의 파일 시스템에 적합한 파일 시스템을 /dev/vda5사용하거나 무엇이든 확장해야 합니다 .resize2fs

무엇보다도 이 작업을 시도하기 전에 백업이 잘 되어 있는지 확인하세요.

관련 정보