„Fehler: Es ist keine Partition außerhalb der Festplatte möglich!“, obwohl die Anzahl der Sektoren in Ordnung ist

„Fehler: Es ist keine Partition außerhalb der Festplatte möglich!“, obwohl die Anzahl der Sektoren in Ordnung ist

Ich schaue mir eine Image-Datei an, die ddmit einer SD-Karte mit Raspbian (mit Qt 5.7 darauf, das ich vor einiger Zeit kompiliert habe) als Eingabe erstellt wurde. Beim Aufrufen

sudo parted raspbian_jessie_qt5.7_all_modules.img unit s print

Ich bekomme

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

Ich habe die Partitionen überprüft fdiskmit

sudo fdisk -lu rasp_jessie_qt5.7.img

mit folgender Ausgabe

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

Wenn ich mir das anschaue, habe ich16267263 Sektorenals Obergrenze, während der FS, in dem Rasbian sich befindet, an der16267263. Sektor(das ist am Rand der verfügbaren Obergrenze). Die Anzahl der Sektoren insgesamt beträgt16136192.

Ich kann das Image ddmit if=/dev/zeroserweitern und dann das Linux-FS darin erweitern, aber 1) bin ich nicht sicher, ob das Problem dadurch behoben wird und 2) möchte ich wirklich bei der Größe des Originalimages bleiben, die ungefähr 7,7 GB beträgt.

Irgendwelche Ideen, was ich übersehen habe und wie ich es beheben kann?

Beachten Sie, dass ich keine Probleme habe, das Image auf die SD-Karte zu schreiben, mein Rasbian zu booten (die SD-Karte ist insgesamt 32 GB groß) und damit zu arbeiten.

Antwort1

Ihr Image hat 16267263 Sektoren, aber die Start- und Endsektoren beginnen bei 0, sodass Ihre Partition einen Sektor über das Ende des Images hinausgeht. Da das Image einwandfrei zu funktionieren scheint, können Sie es wahrscheinlich reparieren, indem Sie 512 Bytes anhängen.

Antwort2

Ich hatte das gleiche Problem und habe es mit der gleichen Technik gelöst (mit „with“ ddzum if=/dev/zerosVergrößern des Bildes). Ich poste die Befehle nur zur späteren Bezugnahme:

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

So ddfügen Sie einen 512-Byte-Sektor hinzu:

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

danach partedwerden keine Fehler mehr ausgegeben:

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

verwandte Informationen