"Erro: não é possível ter uma partição fora do disco!" mesmo que o número de setores esteja bom

"Erro: não é possível ter uma partição fora do disco!" mesmo que o número de setores esteja bom

Estou vendo um arquivo de imagem que foi criado usando ddum cartão SD com Raspbian (com Qt 5.7 que compilei há algum tempo) como entrada. Ao invocar

sudo parted raspbian_jessie_qt5.7_all_modules.img unit s print

eu recebo

Error: Can't have a partition outside the disk!

Eu verifiquei as partições usando fdiskusando

sudo fdisk -lu rasp_jessie_qt5.7.img

com a seguinte saída

Disk rasp_jessie_qt5.7.img: 7.8 GiB, 8328838656 bytes, 16267263 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: dos
Disk identifier: 0x65a3fac2

Device                 Boot  Start      End  Sectors  Size Id Type
rasp_jessie_qt5.7.img1        8192   131071   122880   60M  c W95 FAT32 (LBA)
rasp_jessie_qt5.7.img2      131072 16267263 16136192  7.7G 83 Linux

Quando eu olho para isso eu tenho16267263 setorescomo o limite superior, enquanto o FS onde Rasbian reside termina no16267263º setor(que está no limite do limite superior disponível). O número total de setores é16136192.

Posso usar ddwith if=/dev/zerospara expandir a imagem e depois expandir o Linux FS nela, mas 1) Não tenho certeza se isso resolverá o problema e 2). Eu realmente gostaria de manter o tamanho da imagem original que é de aprox. 7,7 GB.

Alguma idéia do que esqueci e como consertar?

Observe que não tenho problemas para gravar a imagem no cartão SD, inicializar meu Rasbian (o cartão SD tem 32 GB no total) e trabalhar com ele.

Responder1

Sua imagem possui 16267263 setores, mas os setores inicial e final contam a partir de 0, portanto sua partição se estende um setor além do final da imagem. Como a imagem parece funcionar bem, você provavelmente poderá corrigi-la anexando 512 bytes a ela.

Responder2

Tive o mesmo problema e resolvi usando a mesma técnica (usando ddwith if=/dev/zerospara expandir a imagem). Eu posto os comandos apenas para referência futura:

user@host $  sudo fdisk -l -u=sectors hdd.img
Disk hdd.img: 465.8 GiB, 500107861504 bytes, 976773167 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: dos
Disk identifier: 0x8342379a

Device   Boot     Start       End   Sectors  Size Id Type
hdd.img1 *         2048    718847    716800  350M  7 HPFS/NTFS/exFAT
hdd.img2         718848 210434047 209715200  100G  7 HPFS/NTFS/exFAT
hdd.img3      210434048 211435519   1001472  489M 83 Linux
hdd.img4      211435520 976773167 765337648  365G 8e Linux LVM

user@host $  sudo parted hdd.img unit s print
Error: Can't have a partition outside the disk!
Ignore/Cancel? Ignore                                                     
Error: Can't have a partition outside the disk!
Ignore/Cancel? Ignore                                                     
Model:  (file)
Disk hdd.img: 976773167s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start       End         Size        Type     File system  Flags
 1      2048s       718847s     716800s     primary  ntfs         boot
 2      718848s     210434047s  209715200s  primary  ntfs
 3      210434048s  211435519s  1001472s    primary  ext2
 4      211435520s  976773167s  765337648s  primary               lvm

Usando ddpara adicionar um setor de 512 bytes:

dd if=/dev/zero bs=512 count=1 >> hdd.img

depois partedpara de dar erros:

user@host $  sudo fdisk -lu hdd.img
Disk hdd.img: 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: dos
Disk identifier: 0x8342379a

Device   Boot     Start       End   Sectors  Size Id Type
hdd.img1 *         2048    718847    716800  350M  7 HPFS/NTFS/exFAT
hdd.img2         718848 210434047 209715200  100G  7 HPFS/NTFS/exFAT
hdd.img3      210434048 211435519   1001472  489M 83 Linux
hdd.img4      211435520 976773167 765337648  365G 8e Linux LVM

user@host $  sudo hdd.img unit s print
Model:  (file)
Disk hdd.img: 976773168s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start       End         Size        Type     File system  Flags
 1      2048s       718847s     716800s     primary  ntfs         boot
 2      718848s     210434047s  209715200s  primary  ntfs
 3      210434048s  211435519s  1001472s    primary  ext2
 4      211435520s  976773167s  765337648s  primary               lvm

informação relacionada