btrfs 볼륨을 더 큰 드라이브로 이동하는 방법은 무엇입니까?

btrfs 볼륨을 더 큰 드라이브로 이동하는 방법은 무엇입니까?

내 드라이브에 btrfs 파티션이 있는데 이를 더 큰 새 드라이브로 옮기고 싶습니다. 모든 하위 볼륨과 (스냅샷) 스냅샷을 유지하면서 볼륨을 있는 그대로 이동하고 싶습니다.

사본의 무결성과 충실도를 확인하는 가장 좋은 방법은 무엇입니까?

내가 본 것들:

BTRFS 보내기

스냅샷 구조를 다시 작성하는 방법(상위 볼륨을 수동으로 지정해야 합니까?), 여러 하위 볼륨을 한 번에 보내는 방법, 무결성을 가장 잘 확인하는 방법(.snapshot 디렉토리를 포함하는 디렉토리의 차이일 수도 있습니다)을 잘 모르겠습니다. ) 또는 I인 경우 "clone" 매개변수를 사용해야 하며 그 기능은 무엇입니까?

바트싱크

버려진 것 같습니다. 백업용으로 설계되었습니다. btrfs 전송보다 더 많은 기능을 제공하는지 확실하지 않습니다.

BTRBK

백업용으로 설계되었지만 내 사용 사례에 적합한지 확실하지 않습니다.

DD

레벨이 너무 낮을 수 있으며 블록 크기, 파티션 크기 등에 문제가 있을 수 있습니다.

현재 내 생각에는 "btrfs send"와 diff가 가장 좋은 옵션이지만 각 하위 볼륨에서 많은 수의 스냅샷 전송을 처리하는 방법을 모르겠습니다.

답변1

원래 btrfs 파티션과 새롭고 더 큰 드라이브 또는 파티션이 동일한 시스템에 있다고 가정하면 가장 쉽고 최선의 접근 방식은 아마도 btrfs replace.

man btrfs-replace자세히보다. 다음은 가독성을 위해 약간 재구성한 발췌 내용입니다.

btrfs replace start [options] <srcdev>|<devid> <targetdev> <path>

btrfs 파일 시스템을 대체하는 장치입니다.

라이브 파일 시스템에서 현재 소스 장치에 저장된 데이터를 타겟 장치에 복사합니다.

소스 장치를 더 이상 사용할 수 없거나 -r이 옵션이 설정된 경우 RAID 중복 메커니즘만 사용하여 데이터를 생성합니다. 작업이 완료되면 소스 장치가 파일 시스템에서 제거됩니다.

숫자 인 경우 <srcdev>마운트된 파일 시스템의 장치 ID로 간주되고 <path>, 그렇지 않으면 소스 장치에 대한 경로입니다. 소스 장치가 시스템에서 연결이 끊어진 경우 devid 매개변수 형식을 사용해야 합니다.

<targetdev>크기가 같거나 더 커야 합니다 <srcdev>.

노트더 큰 대상 장치를 최대한 활용하려면 파일 시스템의 크기를 조정해야 합니다.

btrfs filesystem resize <devid>:max /path


그런데, 이 btrfs 볼륨에 새 드라이브를 모두 사용하려는 경우에도 파티션이 지정되지 않은 기본 드라이브를 사용하는 대신 하나의 큰 파티션이 있는 파티션 테이블을 만드는 것이 좋습니다. 이는 다른 프로그램이 사용되지 않은 여유 공간으로 간주하지 않도록 디스크 공간을 표시하고 예약하는 편리한 방법이며 파티셔닝 및 포맷 서비스를 제공하는 데 도움이 됩니다.

관련 정보