"Error: ¡No se puede tener una partición fuera del disco!" aunque el número de sectores está bien

"Error: ¡No se puede tener una partición fuera del disco!" aunque el número de sectores está bien

Estoy viendo un archivo de imagen que se creó usando dduna tarjeta SD con Raspbian (con Qt 5.7 que compilé hace un tiempo) como entrada. Al invocar

sudo parted raspbian_jessie_qt5.7_all_modules.img unit s print

yo obtengo

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

Revisé las particiones usando fdiskusando

sudo fdisk -lu rasp_jessie_qt5.7.img

con la siguiente salida

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

Cuando miro esto tengo16267263 sectorescomo el límite superior, mientras que el FS donde reside Rasbian termina en el16267263 sector(es decir, en el borde del límite superior disponible). El número total de sectores es16136192.

Puedo usar ddwith if=/dev/zerospara expandir la imagen y luego expandir Linux FS en ella, pero 1) No estoy seguro de si esto solucionará el problema y 2). Realmente me gustaría ceñirme al tamaño de la imagen original que es de aprox. 7,7 GB.

¿Alguna idea de lo que he pasado por alto y cómo solucionarlo?

Tenga en cuenta que no tengo problemas para escribir la imagen en la tarjeta SD, iniciar mi Rasbian (la tarjeta SD tiene 32 GB en total) y trabajar con ella.

Respuesta1

Su imagen tiene 16267263 sectores, pero los sectores inicial y final cuentan desde 0, por lo que su partición se extiende un sector más allá del final de la imagen. Dado que la imagen parece funcionar bien, probablemente puedas arreglarla agregándole 512 bytes.

Respuesta2

Tuve el mismo problema y lo resolví usando la misma técnica (usando ddcon if=/dev/zerospara expandir la imagen). Publico los comandos solo para referencia 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 agregar un sector de 512 bytes:

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

luego parteddeja de dar errores:

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

información relacionada