ext4 및 btrfs와 같은 최신 파일 시스템은 크기 조정을 지원합니다. FAT와 같이 본질적으로 지원하지 않는 도구라도 이를 지원하는 타사 도구가 있습니다. 그러나 그들은 항상 오른쪽으로의 확장을 지원하며, 직접 왼쪽으로의 확장은 지원하지 않습니다.
왼쪽으로 확장하려면 파티션을 왼쪽으로 복사한 다음(많은 경우 바이트 단위로) 오른쪽으로 확장하면 됩니다. How do I extend a partition to the left
내가 본 에 대한 모든 대답 은 이었습니다 backup, delete partition, make a new partition
.
파티션 경계를 변경한 다음 inode 테이블을 이동/업데이트하는 것만 큼 간단하지 않습니까?
답변1
그러나 그들은 항상 오른쪽으로의 확장을 지원하며, 직접 왼쪽으로의 확장은 지원하지 않습니다.
아마도 선형 섹터 또는 논리 블록 배열을 사용하는 HDD/SSD 표현을 언급하고 있을 것입니다.
가장 왼쪽의 섹터/블록은 0의 (절대) 논리 블록 주소(LBA)를 갖습니다.
가장 오른쪽의 섹터/블록은 드라이브의 끝이 되며 가장 큰 LBA를 갖습니다.
LBA는 일반적으로 ATA 인터페이스에서 부호 없는 48비트 정수로 표시됩니다.
왼쪽으로 확장하려면 파티션을 왼쪽으로 복사한 다음(많은 경우 바이트 단위로) 오른쪽으로 확장하면 됩니다.
정확한 설명은 아닙니다.
보다는"사자"파티션을 이동하면 파티션이 섹터/블록별로 섹터/블록별로 이동되어 재배치됩니다."바이트 단위").
파티션 경계를 변경한 다음 inode 테이블을 이동/업데이트하는 것만 큼 간단하지 않습니까?
분명히 그렇지 않습니다. 왜냐하면 해당 작업은 결코 제공되지 않기 때문입니다.
파티션은 단지 파일 시스템에 대해 정의된 컨테이너일 뿐입니다.
파티션은 시작 LBA, 종료 LBA 및 섹터/블록 수로 물리적으로 정의됩니다.
파티션의 다른 속성은 이 논의와 관련이 없습니다.
파티션에 정의된 파일 시스템은 LBA를 사용합니다.상대적인파티션의 시작 부분으로.
파일 시스템은 HDD/SSD의 파티션 위치를 신경 쓰지도 않고 인식하지도 않습니다.
파일 시스템은 파티션의 끝에 해당하는 LBA를 통해 0(파티션의 시작)에서 시작하는 LBA만 인식합니다.
상대 주소 지정을 사용하면 파일 시스템이 해당 파티션 외부의 모든 섹터/블록에 액세스하는 것이 금지됩니다(따라서 보장됩니다).
만약에"파티션 경계 변경"파일 시스템을 파티션의 새로운 시작으로 이동하지 않고 파티션의 시작을 재정의하면 해결할 수 없는 시나리오가 발생함을 의미합니다.
기존 LBA를 사용하려고 하면 새 파티션 영역에 0보다 작은 LBA가 포함되어 부호 없는 정수로 표현할 수 없습니다. 따라서 원래 파티션의 "왼쪽"에 새로 생성된 영역의 주소를 지정할 수 있는 방법이 없습니다.
파일 시스템에 저장된 모든 LBA를 새로운 상대 값으로 다시 계산하려고 하면 파일 시스템에서 모든 LBA를 찾는 것이 거의 불가능한 작업을 해결하려고 하는 것입니다. LBA를 간과하면 최종 파일 시스템 손상이 보장됩니다.
모든 LBA 업데이트에 성공하더라도 일반적으로 특정(상대) LBA에 위치해야 하는 특정 파일 시스템 엔터티가 있기 때문에 파일 시스템이 손상된 것처럼 보일 수 있습니다. 하지만"파티션 경계 변경"고정된(파티션 시작을 기준으로) LBA에 있어야 하는 엔터티의 위치를 변경했습니다.
결론적으로, 파티션의 시작과 해당 파티션 내 파일 시스템의 위치는 일관되게 유지되어야 합니다.