물리적 볼륨을 줄이는 방법은 무엇입니까?

물리적 볼륨을 줄이는 방법은 무엇입니까?

내 파티션에 전체 디스크에 걸쳐 확장되는 물리적 볼륨이 있습니다. 예를 들어 /dev/sda1은 /dev/sda를 100% 사용합니다. 이제 /dev/sda2를 생성하기 위해 축소해야 합니다. 실제로 논리 볼륨은 PV의 50% 정도를 사용하므로 이론적으로는 충분한 여유 공간이 있지만 모두 단일 PV 내에 할당됩니다. 두 번째 파티션을 위한 추가 공간을 생성하기 위해 물리적 볼륨(및 기본 디스크 파티션)을 축소하는 안전한 방법이 있습니까? 불행하게도 내 구성에서는 물리적 볼륨을 다른 장치로 일시적으로 pvmove할 가능성이 없습니다.

물론 파일 수준에서 이 작업을 수행할 수 있다는 것을 알고 있지만(예: 백업, 디스크 드라이브 다시 분할, LVM 구성 다시 만들기) 처음부터 LV를 구성하지 않고도 이 작업을 수행하고 싶습니다.

미리 감사드립니다.

답변1

또 다른 별도의 파일 시스템이 필요한 경우 새 파티션을 생성할 필요가 없습니다. PV의 할당되지 않은 공간을 사용하여 기존 볼륨 그룹에 다른 LVM 논리 볼륨을 생성할 수 있습니다. 하지만 특별히 새로운 것이 필요한 경우분할, 그런 다음 원래 계획을 따라야 합니다.

고팟전체 PV + 파티션 크기 조정 작업을 완료할 수 있는 GUI 도구입니다. 배포판의 패키지 컬렉션에서 찾을 가능성이 높습니다.

하지만 어떤 이유로든 사용할 수 없거나 사용하고 싶지 않다면 계속 읽어보세요.

할당되지 않은 공간이 포함된 LVM 물리 볼륨을 줄이는 것은 매우 간단합니다. 예를 들어 /dev/sda1의 크기를 40GiB로 줄이려면 다음을 수행하세요.

# pvresize --setphysicalvolumesize 40G /dev/sda1

이 명령은 삭제하는 PV 부분에 할당된 범위가 포함되어 있으면 작업 수행을 거부한다는 점에서 안전합니다.

그러나 이것은 첫 번째 단계일 뿐입니다. 두 번째 단계는 파티션 자체의 크기를 줄이는 것입니다.

안전을 위해 처음에는 파티션을 실제로 축소하려는 것보다 PV를 조금 더 축소하여 파티션을 축소한 후 PV를 명시적으로 확장하여 파티션의 전체 크기를 포괄할 수 있도록 하는 것이 좋습니다. 확장 작업이 실패하면 파티션 크기를 조정하는 동안 문제가 발생했음을 즉시 알 수 있으며 사용자나 다른 사람을 괴롭히는 숨겨진 오류가 남지 않습니다.

간단한 Linux 명령을 사용하여 파티션을 축소할 수 있지만 fdisk다음 사항을 염두에 두어야 합니다.

  • Resize Partitions를 사용할 때 fdisk모든 파티션 크기와 시작 위치를 표시하도록 설정되어 있는지 확인하십시오.부서첫 번째. Linux의 역사에 걸쳐 fdiskLinux의 동작은 다양했습니다. 최신 버전에서는 기본적으로 이 작업을 수행하고 이전 버전에서는 이를 수행하도록 요구 -u하거나 선택적으로 수행할 수도 있습니다.-u=sectors
  • 기존 파티션의 크기를 조정할 때 파티션의 시작점을 이동할 수 없습니다. (시작점을 이동하면 더 이상 단순한 크기 조정 작업이 아니라 더 복잡한 파티션 이동 작업이 됩니다.)

이 명령을 사용하면 fdisk모든 변경 사항이 해당 명령을 사용할 때만 디스크에 기록됩니다 w. 따라서 다음과 같이 하는 것이 좋습니다.

  • sfdisk -d /dev/sda > /safe/location/partition_table_backup.dump기존 파티션 테이블을 백업하는 데 사용됩니다 .
  • fdisk /dev/sda대화형 모드에서 시작
  • p명령을 사용하여 현재 파티션 테이블을 보고 "시작" 및 "종료" 값이 섹터로 나타나는지 확인합니다. "시작" 값을 기록해 두십시오.
  • 이 명령을 사용하여 d현재 파티션 항목이 삭제되었습니다 sda1.
  • n명령을 사용하여 원하는 크기의 주 파티션 항목 1을 다시 생성하고 sda1, 첫 번째 섹터가 어디에 있는지 정확히 지정하도록 주의하십시오(즉, 명령의 "시작" 값에 표시된 것과 동일한 숫자 p).
  • 명령을 사용하여 t파티션 1의 유형을 "Linux LVM"으로 설정합니다.
  • 작업 내용을 다시 확인하세요.
  • 이 명령을 사용하여 w업데이트된 파티션 테이블을 작성하고 종료합니다 fdisk.

fdisk표시된 마지막 메시지를 참고하세요. "커널이 여전히 이전 테이블을 사용합니다"라고 표시되면 온라인 파티션 테이블 업데이트를 방해하는 문제가 있는 것입니다. partprobe /dev/sda커널에 파티션 테이블을 다시 읽도록 지시하고(일부 이전 버전에서 사용하는 것보다 새로운 인터페이스를 사용하면 fdisk도움이 될 수 있고 확실히 해롭지 않을 것임) cat /proc/partitions파티션이 이제 커널에서 예상 크기로 인식되는지 확인할 수 있습니다.

파티션 크기 조정에 성공했다면 이제 다음을 실행할 수 있습니다 pvresize /dev/sda1. 내 조언을 따르고 처음에 파티션에 필요한 새 크기보다 약간 작게 PV 크기를 조정했다면 이제 자동으로 파티션 크기 조정을 완전히 처리할 수 있도록 PV가 약간 확장되어야 합니다. . 이 명령이 오류를 보고하는 경우 새 크기를 지정하는 데 실수를 했을 수 있으므로 이를 사용하여 sfdisk /dev/sda < /safe/location/partition_table_backup.dump파티션 테이블을 원래 상태로 복원하고 다시 시도해야 합니다.

(아주 오래된 시스템에서는 실제로 VG를 실행하기 전에 비활성화해야 하거나 partprobe시스템이 업데이트된 파티션 테이블을 다시 읽을 수 있도록 재부팅해야 할 수도 있습니다.)

크기 조정 작업이 완료되면 이제 fdisk이를 다시 사용하여 필요한 두 번째 파티션을 생성할 수 있습니다. 예, 파티션 크기를 조정할 때 이 작업을 함께 수행할 수도 있지만 한 번에 하나씩 수행하는 것이 더 안전하며 필요한 경우 변경 사항을 쉽게 롤백할 수 있습니다.

관련 정보