2Tio 드라이브의 데이터를 SSD로 옮길 예정인데 SSD의 용량은 120Gio에 불과합니다. 드라이브에는 파티션이 하나만 있고 16Gio만 포함됩니다. ddrescue로 전송할 때 모든 것을 얻으려면 모든 데이터가 파티션의 시작 부분에 있는지 확인하고 싶습니다. 그렇게 할 수 있는 도구가 있나요?;)
답변1
관련된 경우 ddrescue
소스 드라이브의 상태가 좋지 않다는 의미입니다. 이 경우 복사하기 전에 어떤 방식으로든 원본 드라이브를 수정해서는 안 됩니다. 문제가 더 악화될 수 있습니다.
경우에만소스 디스크가 정상이고 소스 디스크의 파일 시스템 유형이 파일 시스템 축소를 지원하는 경우 먼저 축소할 수 있습니다.
여기서는 파일 시스템 유형이 중요합니다. ext2/ext3/ext4 파일 시스템의 경우 축소할 파일 시스템이 마운트 해제되었는지 확인한 다음 실행하여 resize2fs <partition device containing the filesystem> 20G
파일 시스템 크기를 20GiB로 축소할 수 있습니다. 작업이 불가능할 경우 명령은 변경 사항 없이 오류를 반환합니다. 작업이 성공적으로 완료되면 모든 데이터가 해당 파티션 시작부터 20GiB 내에 있음이 보장됩니다. 그런 다음 반올림 오류로 인해 파일 시스템의 끝 부분이 잘리는 것을 방지하기 위해 파티션 크기를 21GiB 이상으로 조정할 수 있습니다. 파일 시스템이 성공적으로 복사되면 resize2fs
size 매개변수 없이 를 사용하여 파티션의 현재 크기와 정확히 일치하도록 파일 시스템의 크기를 자동으로 조정할 수 있습니다.
다른 파일 시스템 유형에는 크기 조정을 위한 고유한 특정 도구가 있습니다. resize2fs
이는 ext2/ext3/ext4 파일 시스템 제품군에만 해당됩니다.
내가 아는 한, 현재 온라인이나 오프라인 모두에서 XFS 파일 시스템을 축소할 수 있는 프로덕션급 도구는 없습니다.
ddrescue
원본에서 대상으로 정확한 일대일 복사본을 만들려고 시도합니다. 이것이 바로 작업입니다. 이를 실행하여 2TiB 드라이브에서 120GiB 드라이브로 모든 항목을 복사하면 원본 디스크의 처음 120GiB 정도의 정확한 복사본을 얻게 됩니다.
파일 시스템을 생성한 후 소스 디스크에서 수행된 유일한 작업이 16GiB의 데이터를 소스 디스크로 전송하는 것뿐이라면 일반적으로 모든 데이터가 처음 120GiB 내에 완전히 포함될 가능성이 꽤 높다고 말하고 싶습니다. 이는 파일 시스템 유형과 사용하는 블록 할당 방법에 따라 다릅니다.
그러나 16GiB의 데이터가 복사되기 전에 파일 시스템에 120GiB 이상의 다른 데이터가 포함되어 있었다면 나중에 다른 데이터가 삭제되더라도 현재 16GiB의 데이터는 파일의 시작 부분에서 120GiB 이상 떨어진 곳에 위치할 수 있습니다. 디스크.