Partitionstabelle wird in Partitions-Software-Tools falsch angezeigt

459
kellogs

Ich würde gerne an sdb3Partition arbeiten:

sudo fdisk -l  Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes 16 heads, 63 sectors/track, 1938021 cylinders, total 1953525168 sectors  Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x2052474d  Device Boot Start End Blocks Id System  /dev/sdb1 63 549971855 274985896+ 7 HPFS/NTFS/exFAT  Partition 1 does not start on physical sector boundary. /dev/sdb2 549971856 1470063167 460045656 7 HPFS/NTFS/exFAT  /dev/sdb3 * 1470063168 1810175471 170056152 7 HPFS/NTFS/exFAT 

Beide Partitionierungstools, die ich ausprobiert habe (gParted und KDE Partition Manager), können diese Partition jedoch nicht finden:

screenshot

Wie ich in diese Situation geraten bin

Ich habe einen Vorgang zum Ändern der Partitionsgröße vom KDE-Partitionsmanager ausgeführt. Nach 10 Sekunden fiel mir ein, dass ich wollte, dass die Partition auf ein anderes Laufwerk verschoben wurde. Auf Abbrechen geklickt, 2 Stunden später versuchte KDE Partition Manager noch, den Vorgang abzubrechen. Ich habe es zwangsweise eingestellt, dann konnte ich mit Hilfe von Testdisk die 3 Partitionen wiederherstellen sdb. Ging in Windows XP und lief erfolgreich chkdsk /fauf allen 3 NTFS-Partitionen von sdb. Im Moment können sie anscheinend in Linux und Windows eingehängt und verwendet werden.

Wie gehe ich vor, um die 3 Partitionen wieder in der Partitionssoftware anzeigen zu lassen?

edit 1

kellogs-PC kellogs # lsblk /dev/sdb NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 931,5G 0 disk  ├─sdb1 8:17 0 262,3G 0 part /media/kellogs/downloads 2 ├─sdb2 8:18 0 438,8G 0 part /media/kellogs/para backup └─sdb3 8:19 0 162,2G 0 part /media/kellogs/Win8 

edit2

Kamils ​​Antwort @ https://superuser.com/a/1225632/60373 hat mir nicht geholfen.

Ich habe vergessen, etwas Wichtiges zu erwähnen. Diese Maschine verfügt über 3 Betriebssysteme

/ dev / sda - Windows XP, Linux / dev / sdb - Windows 8.1

enter image description here enter image description here

/ dev / sda1 ist die Win XP-Partition, anscheinend mit dem Win8-Loader:

kellogs-PC kellogs # update-grub Generating grub configuration file ... Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported. Found linux image: /boot/vmlinuz-3.13.0-24-generic Found initrd image: /boot/initrd.img-3.13.0-24-generic Found memtest86+ image: /boot/memtest86+.elf Found memtest86+ image: /boot/memtest86+.bin No volume groups found Found Windows 8 (loader) on /dev/sda1 done 

Das sieht gut aus, aber ... Windows 8.1 wird nicht geladen. Auch hier wird die Win8- Partition (auch als sdb3 bezeichnet ) innerhalb von Win XP und Linux installiert. Die Suche nach dem Fehlercode "0xc000000e" im Internet gibt mir keine klare Antwort auf mein Problem.

0
Hmm, etwas scheint von libparted falsch gemeldet zu werden. Wenn beide dieselbe Ausgabe zeigen. Fügen Sie übrigens die Ausgabe von lsblk / dev / sdb ein. Und woher haben Sie diese alte Version von KDE Partition Manager 1.0.3? Aktuelle Version ist 3.1.0. Welche Distribution ist das? Jemand sollte Packager anpingen. Andrius Štikonas vor 6 Jahren 1
@ Andriusštikonas bearbeitet mit der Ausgabe, danke kellogs vor 6 Jahren 0
Hmm, ich frage mich, ob es möglich wäre, einen Blick auf Ihre MBR-Datei zu werfen? Ich könnte versuchen zu sehen, wo KDE Partition Manager stecken bleibt, zB in KPM oder libparted ... Andrius Štikonas vor 6 Jahren 1
@ Andriusštikonas sicher wäre es, hier ist es: http://194.150.85.156:8080/html/sdb.mbr.backup kellogs vor 6 Jahren 0

2 Antworten auf die Frage

1
Kamil Maciorowski

Edit:
Leider löst diese Antwort das Problem des OP nicht . Ich werde es jedoch nicht löschen (zumindest für jetzt). Es dokumentiert einen fehlgeschlagenen Versuch, der einen pädagogischen Wert hat. Es wird auch verhindern, dass andere die gleiche mögliche Lösung veröffentlichen.

(Die Bearbeitung endet hier, die ursprüngliche Antwort ist unten).


Ihre Situation kann ähnlich sein dies, noch etwas anders. Ich gebe zu, ich kann nicht genau erklären, wie die von Ihnen beschriebenen Handlungen dies verursacht haben können, dennoch halte ich meine folgende Theorie für plausibel .

In der verknüpften Frage gab es wirklich eine Super-Diskette (dh ein Dateisystem auf dem gesamten Gerät, keine Partitionstabelle), aber die meisten Programme (einschließlich Windows) erkannten ihre (ungültige) Partitionstabelle zuerst.

Sie haben eine gültige Partitionstabelle, und die meisten Programme sollten sie erkennen (wie Windows). KDE Partition Manager ist jedoch der Meinung, dass Ihre Festplatte eine Superfloppy mit NTFS-Dateisystem auf dem gesamten Gerät ist. Es sieht so aus, als würde er versuchen, das Superfloppy-Dateisystem zuerst zu erkennen. Wenn dies gelingt, werden zusätzliche Tests übersprungen. Ich vermute, dass einige Teile des /dev/sdbMBR Ihren Partition Manager irreführen.

Wenn Sie nicht booten/dev/sdb (dh der Bootstrap-Code ist völlig ungenutzt, Sie booten /dev/sdanur und sicher), können Sie Nullen in den Bootstrap-Codebereich von /dev/sdbMBR schreiben . In meiner Antwort auf die verknüpfte Frage gibt es ein Diagramm, in dem MBR mit NTFS VBR verglichen wird:

 MBR │ byte offset │ NTFS VBR │ hex / dec │ ───────────┼─────────────┼───────────── │ 0x000 / 000 │ mainly NTFS bootstrap │ … │ metadata code ├─────────────┼───────────── │ 0x054 / 084 │ │ … │ bootstrap ───────────┼─────────────┤ code partition │ 0x1BE / 446 │ table │ … │ ───────────┼─────────────┼───────────── 0x55 │ 0x1FE / 510 │ 0x55 0xAA │ 0x1FF / 511 │ 0xAA ───────────┴─────────────┴───────────── 

Es sollte ausreichen, Nullen in die ersten 84 Bytes der Platte zu schreiben, um zu verhindern, dass ein Tool NTFS-Signatur auf der (angeblichen) Superfloppy findet.

In Linux:

# making backup of the entire MBR just in case dd if=/dev/sdb of=~/sdb.mbr.backup bs=512 count=1  # zeroing alleged NTFS metadata, use 'bs=446' to zero the entire bootstrap code of MBR dd if=/dev/zero of=/dev/sdb bs=84 count=1 sync 

Starten Sie dann Ihren KDE-Partitionsmanager (erneut) und prüfen Sie, ob er geholfen hat. Wenn dies nicht der Fall ist, ist es ratsam, die Änderung rückgängig zu machen, nur für den Fall, dass Sie einen Fehler gemacht haben, der den Bootstrap-Code /dev/sdbals unwichtig erachtet.

# reverting dd if=~/sdb.mbr.backup of=/dev/sdb sync 
Das könnte funktionieren. Tatsächlich hatten einige ältere Versionen von KDE Partition Manager einen Fehler, bei dem das Löschen von Dateisystemsignaturen nicht funktionierte. Dies wurde vor langer Zeit behoben, aber @kellogs hatte diese Korrekturen nicht in seiner Version. Andrius Štikonas vor 6 Jahren 0
Vielen Dank! Es machte keinen Unterschied, wie die beiden Partitionierungstools das Laufwerk * ​​sdb * anzeigen. Ich habe meiner Frage ein "edit 2" hinzugefügt. Möchten Sie einen Blick darauf werfen? kellogs vor 6 Jahren 0
@ kellogs Sie können Ihrer Frage eine Bemerkung hinzufügen, dass Sie meine Lösung ausprobiert haben und diese fehlgeschlagen ist. Auf diese Weise wissen andere Benutzer sofort, was bereits getan wurde. Bitte verlinken Sie auf diese Antwort (sagen Sie nicht einfach "Kamils ​​Antwort" ohne Link), denn wenn ich eine andere (eindeutige) Idee habe, füge ich wahrscheinlich * eine andere * Antwort hinzu. Kamil Maciorowski vor 6 Jahren 0
@ KamilMaciorowski fertig. kellogs vor 6 Jahren 0
1
Andrius Štikonas

I think MBR partition table is broken. While fdisk is able to recognize partitions, parted itself is stuck. Both KDE Partition Manager and GParted rely on libparted for partition detection, so show incorrect info.

I suggest recreating a partition table with exact same partition boundaries as before.

You can check my attempt here: https://stikonas.eu/files/sdb.mbr.new

Also note that your partitions are not aligned along MiB boundaries. Probably doesn't matter too much for old HDD disks but it would matter for SSD.