한 단계로 btrfs 파일 시스템 크기를 최소 크기로 조정

한 단계로 btrfs 파일 시스템 크기를 최소 크기로 조정

한 단계에서 btrfs 파일 시스템의 크기를 가능한 가장 작은 크기로 조정하는 방법은 무엇입니까?

나는 dd가능한 한 적은 양의 데이터를 원하고 스냅샷이 많을수록 속도가 느려지므로 dd이를 사용하고 싶습니다.btrfs send

btrfs filesystem resizemax논쟁 은 있지만 min논쟁은 없습니다.

사용 가능한 공간 이상으로 크기를 조정하려고 하면 다음과 같은 메시지가 나타납니다.

ERROR: unable to resize '/media/backup-alt': No space left on device

점차적으로 크기를 줄여왔지만(예: 인수 전달 -128G -64G, -32G...) 수렴하는 데 시간이 많이 걸리는 솔루션입니다.

한 단계로 최소로 줄일 수 있는 방법은 없을까요?

답변1

지금까지 내가 본 최고의 솔루션은 가장 작은 여유 공간( -b바이트)을 얻는 것입니다.

sudo btrfs filesystem usage -b /mountpoint
   Free (estimated):              71890542592 (min: 71890542592)

그런 다음 금액의 음수로 크기를 조정합니다 min.

sudo btrfs filesystem resize -71890542592 /mountpoint

또는 최소 여유 바이트 수와 할당되지 않은 바이트 수 사이에 큰 차이가 있는 경우 할당되지 않은 바이트의 정확한 수만큼 크기를 조정하는 것은 실패하는 것처럼 보이므로 (unallocated * 0.9)를 사용하도록 선택할 수 있습니다.

그런 다음 크기 조정이 실패할 때까지 반복해서 조금씩 축소할 수 있습니다.

while sudo btrfs filesystem resize -200M /mountpoint; do true; done

정확히는 한 단계는 아니지만 적어도 대부분은 자동화되어 있습니다. 루프 자체는 하나의 단계일 수 있지만 작은 증분 크기 조정을 수행하면 처음에 큰 덩어리를 축소하는 것보다 시간이 더 오래 걸릴 수 있습니다.

답변2

문제에 대한 더 간단한 해결책은 지원되는 파일 시스템(BTRFS 포함)에 대해 사용되지 않은 블록을 자동으로 건너뛰므로 크기 조정이 필요하지 않은 파티션 복제 및 이미징 도구인 partclone.btrfsif를 사용하는 것입니다.dd

https://www.partclone.org(GPL-2.0)

관련 정보