Eu tenho um arquivo de apoio esparso (NTFS) (feito via dd seek=
) que é uma imagem parcial de um disco danificado. O tamanho dado por ls
corresponde ao disco original. No entanto, quando em loop, /proc/partitions
mostra como metade do tamanho do disco original. Parece que losetup
está ignorando a extensão final esparsa do arquivo porque não possui dados após ele.
Como resultado, se eu usar losetup -P
(ou kpartx
), o particionamento falhará em uma partição que ultrapasse o tamanho dado por /proc/partitions
.
Como posso resolver isso sem expandir o arquivo? (Talvez escrever para o último setor ajude, mas eu gostaria de evitar tocar na imagem).
Mais informações:
cat /proc/partitions
(para o loop e o disco):
7 5 264173760 loop5
8 0 488386584 sda
stat
no arquivo de apoio:
File: gordon.dsk
Size: 500107862016 Blocks: 31986416 IO Block: 4096 regular file
lsblk --bytes
:
loop5 7:5 0 270513930240 1 loop
sda 8:0 0 500107862016 0 disk
sfdisk
output:
The backup GPT table is corrupt, but the primary appears OK, so that will be used.
Disk gordon.dsk: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: {redacted}
Device Start End Sectors Size Type
gordon.dsk1 2048 1230847 1228800 600M Windows recovery environment
gordon.dsk2 1230848 1845247 614400 300M EFI System
gordon.dsk3 1845248 2107391 262144 128M Microsoft reserved
gordon.dsk4 2107392 944205823 942098432 449.2G Microsoft basic data
gordon.dsk5 944205824 976773119 32567296 15.5G Windows recovery environment