다른 장치로 이동할 수 있도록 ext4 파일 시스템에서 사용되는 마지막 섹터를 식별해야 합니다.
파일 시스템은 축소되고( resize2fs
) 이를 포함하는 파티션보다 작으므로 파티션에서 마지막 섹터를 찾는 방법을 묻지 않습니다.
완료 tune2fs -l
하고 확인했습니다.
Block count: 48934
First block: 0
Block size: 4096
이를 통해 파일 시스템이 48934 * 4096 / 512 = 391472 섹터를 사용하고 dd
파티션의 첫 번째 섹터부터 시작하여 많은 섹터를 이동할 수 있다고 가정합니다(보고된 대로 gdisk
).
해당 블록 수에 ext4 오버헤드가 포함되어 있는지 또는 고려해야 할 추가 크기가 있는지 확실하지 않습니다. 나는 읽었다이 문제이는 고려해야 할 추가 공간이 있음을 의미합니다.
답변1
당신 말이 맞아요. 문제가 없어야합니다.
일부 계산을 피하기 위해 해당 bs
옵션을 사용하고 오프셋에서 시작하는 대신 장치의 파티션 이름을 사용할 수 있습니다.
dd count=48934 bs=4096 if=/dev/sdxN of=...
크기를 100% 확신하려면 먼저 테스트해 보세요. 더 작은 파티션을 "시뮬레이트"합니다.
umount /dev/XYZ
losetup --offset N-BYTES --sizelimit $(( 48934 * 4096 )) /dev/loop1 /dev/XYZ
mount
아니면 너무 작게 만들고 있는지 알려주어야 합니다 fsck
. 파티션이 여전히 너무 큰지 알려주었을 것입니다. 그러나 그렇지 않았습니다 . 내가 한 번도 사용해 본 적이 없는 것을 시도해 볼 수도 있습니다 . 편집증이 있는 경우 작업이 끝나면 를 사용해야 합니다 ./dev/loop1
resize2fs
dry-run
fsadm -v --dry-run check/resize ...
losetup --read-only
losetup --detach