/dev/sdc라는 이미지를 만들었습니다. 첫 번째 파티션 앞의 여유 공간이 동일한 바이트 크기를 보고하지 않는데 그 이유는 무엇입니까?
1024B
드라이브와 16384B
이미지에 시작 위치가 보고되어 있나요?
# parted /dev/sdc u b p free
Model: ASMT 2105 (scsi)
Disk /dev/sdc: 500107862016B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1024B 1048575B 1047552B Free Space
1 1048576B 500107862015B 500106813440B primary btrfs
# parted d1/drive1.sdc.img u b p free
Model: (file)
Disk /mnt/4/d1/drive1.sdc.img: 500107862016B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
16384B 1048575B 1032192B Free Space
1 1048576B 500107862015B 500106813440B primary btrfs
편집: 나는 이런 이미지를 만들었습니다
# pv /dev/sdc > d1/drive1.sdc.img
편집 2: 둘 다에서 md5sum을 실행하면 동일한 해시 값이 표시됩니다.
# dd if=/dev/sdc | md5sum; pv d1/drive1.sdc.img | md5sum
답변1
걱정할 필요가 없습니다. parted
"디스크" 기하학은 디스크가 아니라 파일이기 때문에 얻을 수 없습니다. 이미지에서 루프 파일을 생성하는 경우 여유 공간은 동일한 위치에서 시작되어야 합니다.
디스크 이미지 파일 사용:
(parted) p free
Model: (file)
Disk /home/vtrefny/disk.img: 104857600B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
16384B 104857599B 104841216B Free Space
루프 장비 사용:
(parted) p free
Model: Loopback device (loopback)
Disk /dev/loop2: 105MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1024B 105MB 105MB Free Space
parted
디스크 시작 부분(그리고 GPT 끝 부분)에 "가짜" 메타데이터 파티션을 생성하여 새 파티션이 생성될 때 파티션 테이블이 덮어쓰이는 것을 방지합니다. 첫 번째 여유 공간은 이 메타데이터 파티션 다음에 시작됩니다. AFAICT 이 메타데이터 파티션의 디스크 크기는 섹터 1 + sector_size / 512
(512B 섹터 크기 디스크의 경우 2개 섹터)로 계산되고 32
파일의 섹터(= 16KiB/16384B)로 하드코드됩니다(여기서는 아마도 틀렸을 것입니다. 결과는 다음과 같습니다). 나는 별도의 코드를 쳐다보고 pyparted를 사용하고 있습니다).
일반적으로 파티션을 생성할 때 최상의 성능을 위해 시작 위치가 정렬되며 섹터 크기, 최적의 IO 크기 또는 디스크 그레인 크기와 같은 요소가 고려되며 정렬된 "여유 공간"이 표시되는 parted
경우도 있습니다. fdisk
("실제" 디스크를 사용해도 fdisk
여유 공간의 시작 부분이 표시된 것처럼 1KiB 대신 1MiB로 인쇄됩니다 parted
).