Hallo, Am Tue, 04 Nov 2014, Herbert Albert schrieb:
Am Dienstag, 4. November 2014, 13:15:32 schrieb David Haller:
Am Mon, 03 Nov 2014, Herbert Albert schrieb:
Am Sonntag, 2. November 2014, 20:10:07 schrieb David Haller:
Am Sun, 02 Nov 2014, Herbert Albert schrieb:
Frage: könnte man /dev/sda ohne Datenverlust mit testdisk eine Partitionstabelle verpassen? Wie gesagt die Partitionen funktionieren nur kann ich mit parted nichts mehr machen, z.B. /dev/sda5 vergrößern.
Wie geschrieben: verkleinere erstmal /dev/sda3!
Von 'testdisk' laß besser die Finger in der Situation.
Und ansonsten nochmal: partitioniere "per Hand" und kopiere die Daten per rsync o.ä. auf Dateibasis und verwende kein Image.
ich glaube wir haben uns da falsch verstanden oder ich habe es nicht richtig dargelegt. Die Sicherung ist schon auf der neuen Platte, was ich will, ist meiner derzeit in Gebrauch befindlichen Platte wieder eine Partitionstabelle verpassen.
Das hab ich schon verstanden. Aber die Platte hat ja eine Partitionstabelle, nur ist /dev/sda3 um einen Sektor zu lang, womit gparted anscheinend nicht klarkommt.
Das eine Partitionstabelle vorhanden ist kann man also der Meldung Partition table holds up to 128 entries entnehmen, richtig?
Nein, das kommt ja von gdisk, und das schreibt vorher: Found invalid GPT and valid MBR; converting MBR to GPT format Das heißt: deine Platte ist (nur) im MBR-Schema partitioniert, d.h. relevant ist (NUR!) die fdisk-Ausgabe. Und die (und wie sich via PM auch herausgestellt hat) zeigt eine fast korrekte MBR-Partitionstabelle.
Wo siehst Du das /dev/sda3 um einen Sektor zu lang ist?
Wenn ich die Differenz der Endwerte von der erweiterten Partion bilde, komme ich auf: 3907028991-3907027055=1936
# fdisk -l /dev/sda 255 heads, 63 sectors/track, 243201 cylinders, total 3907027055 sectors [..] ^^^^^^^^^^ 1-basiert /dev/sda3 226484224 3907027055 1840271416 f W95 Ext'd (LBA) ^^^^^^^^^^ 0-basiert 3907027055 - 3907027056 = -1 Oder so. Zumindest würde das das Gemecker von parted erklären, das "Error: Can't have a partition outside the disk!" Z.B., wenn ich mit fdisk versuche in nem image das nachzubauen: Command (m for help): p Disk t.img: 16 MB, 16777216 bytes 255 heads, 63 sectors/track, 2 cylinders, total 32768 sectors [..] Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): Using default value 1 First sector (2048-32767, default 2048): 32768 Value out of range. Und ich hab bei diversen Platten hier auch jew. den Endsektor mind. eins unter dem, was fdisk -l hinter 'total nnn sectors' angibt.
Wenn ich die Differenz der Blöcke bilde, komme ich auf 1840272384-1840271416=968
Blöcke sind irrelevant ;)
grub total Amok gelaufen. Meine Vermutung ist es hat evtl. mit der fehlenden Partitionstabelle zu tun. Die 12.2 habe ich dann wieder durch zurückspielen des Images mit partimage gemacht.
Du hast hier doch die Ausgabe von 'fdisk -l /dev/sda' und 'gdisk -l /dev/sda' schon gemailt, und lt. denen hat /dev/sda doch eine Partitionstabelle. Die bis auf die Länge von /dev/sda3 auch in Ordnung ausschaut. Aber du kannst mir gerne auch deinen MBR und den EPBR mailen:
dd if=/dev/sda of=HAlbert_sda_mbr.img count=1 dd if=/dev/sda3 of=HAlbert_sda3_mbr.img count=1 schicke ich Dir per pm
Antwort ebenso.
(/dev/sda3 ist ja die erweiterte Partition).
Da deine einzige logische Partitin innerhalb von sda3 ja deutlich kürzer als sda3 ist, kannst du sda3 einfach um den einen Sektor kürzer machen (bzw. besser um ein paar auf ein Ende bei Sektor 3907027021).
# fdisk -l /dev/sda 255 heads, 63 sectors/track, 243201 cylinders, total 3907027055 sectors ^^^^^^^^^^ /dev/sda3 226484224 3907027055 1840271416 f W95 Ext'd (LBA) ^^^^^^^^^^ off by 1 /dev/sda5 226486272 2373974015 1073743872 83 Linux [..] würde zum Reparieren reichen /dev/sda5 und dann /dev/sda3 zu löschen. Anschließend mit Yast -> parted /dev/sda3 als logische Partion anlegen, aber diesmal über den ganzen zur Verfügung stehenden Platz und dann darin /dev/sda5. Danach per rsync die Daten von der Sicherung /dev/sdh5 zurückspielen?
Eigentlich müßte es reichen /dev/sda3 zu löschen und etwas kleiner neu anzulegen. Ich selbst würde schlicht zum Hex-Editor greifen und den MBR bearbeiten und 80 20 0000700 21 00 83 fe ff ff 00 08 00 00 00 f0 7f 0c 00 fe 0000720 ff ff 82 fe ff ff 00 f8 7f 0c 00 e8 ff 00 00 fe 0000740 ff ff 0f fe ff ff 00 e0 7f 0d 70 a0 60 db 00 00 0000760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa in 80 20 0000700 21 00 83 fe ff ff 00 08 00 00 00 f0 7f 0c 00 fe 0000720 ff ff 82 fe ff ff 00 f8 7f 0c 00 e8 ff 00 00 fe 0000740 ff ff 0f fe ff ff 00 e0 7f 0d 70 a0 60 db 00 00 NEU: 4c a0 60 db 0000760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa Also: 80 20 0000700 21 00 83 fe ff ff 00 08 00 00 00 f0 7f 0c 00 fe 0000720 ff ff 82 fe ff ff 00 f8 7f 0c 00 e8 ff 00 00 fe 0000740 ff ff 0f fe ff ff 00 e0 7f 0d 4c a0 60 db 00 00 0000760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa ändern. Das sind dann 3680542796 Sektoren Länge, also Ende mit Sektor 3907027020, eins unter dem was gdisk als letzter benutzbarer ausgegeben hat, das sollte dann passen. Und idealerweise hat dann auch parted nix mehr zu meckern. Das heißt, du müßtest mit z.B. vche das eine Byte von 0x70 auf 0x4c ändern. Das ganze geht so auch nur, weil davor bei ja nix ist, da /dev/sda5 ja weit vorher endet. Analoges Szenario (nur ohne Fehler): $ cd /tmp/dh/ $ dd if=/dev/zero of=t.img bs=1M count=16 $ /sbin/fdisk t.img [..] 255 heads, 63 sectors/track, 2 cylinders, total 32768 sectors /tmp/dh/t.img1 2048 8192 3072+ 83 Linux /tmp/dh/t.img2 8193 32767 12287+ 5 Extended /tmp/dh/t.img5 10241 16000 2880 83 Linux $ vche-nc t.img [..] 00 20 00000001C0 21 00 83 82 03 00 00 08 00 00 01 18 00 00 00 82 00000001D0 04 00 05 0A 08 02 01 20 00 00 FF 5F 00 00 00 00 ^^ in 2F ändere 00000001E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000001F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA [änder+abspeicher] $ /sbin/fdisk -l t.img 255 heads, 63 sectors/track, 2 cylinders, total 32768 sectors Device Boot Start End Blocks Id System /tmp/dh/t.img1 2048 8192 3072+ 83 Linux /tmp/dh/t.img2 8193 20479 6143+ 5 Extended /tmp/dh/t.img5 10241 16000 2880 83 Linux Den Fehler bei dir Reproduzierend (+1 Sektor Länge als ursprünglich): $ /sbin/fdisk -l t.img 255 heads, 63 sectors/track, 2 cylinders, total 32768 sectors Device Boot Start End Blocks Id System /tmp/dh/t.img1 2048 8192 3072+ 83 Linux /tmp/dh/t.img2 8193 32768 12288 5 Extended ^^^^^ /tmp/dh/t.img5 10241 16000 2880 83 Linux 00 20 00000001C0 21 00 83 82 03 00 00 08 00 00 01 18 00 00 00 82 00000001D0 04 00 05 0A 08 02 01 20 00 00 00 60 00 00 00 00 ^^^^^^^^^^^^ 00000001E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000001F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA Das dumme ist: parted mag dazu nix ausgeben, auch als root nicht (und per losetup an /dev/loopX gebunden) *grumpf* Bleibt die Theorie, daß sich parted an dem Image jetzt genauso verschlucken würde.
Braucht man bei 3 Partitionen das System mit den logischen Partitionen überhaupt noch? Ich habe das aus Gewohnheit (weil immer so gemacht) angelegt.
Nö. Die brauchst du nur, wenn du mehr als 4 Partitionen anlegen willst. Eine spätere Änderung ist allerdings nur schwer möglich, wenn du alle 4 primären Partitionen belegst. Da du erstmal nur 3 willst ist das aber kein Problem, du könntst später immer noch /dev/sdX3 verkleinern, /dev/sdX4 als erweiterte anlegen und dann darin logische Partitionen einrichten. Nicht zu empfehlen ist, /dev/sdX4 als vierte primäre anzulegen. Naja, mit GPT dürfte sich das Problem sehr bald erledigen.
Die andere Möglichkeit, die ich mir offen halten wollte ist die Kopie auf der neuen Platte, die ja nun eine Partitionstabelle hat bootbar zu machen und auf diesem System ein Upgrade zu versuchen. Aber das bootbar machen heißt alle Verweise auf /dev/sda (bzw. der Klarnamen) in /dev/sdh (bzw. Klarnamen) zu ändern und grub anzupassen.
Das ist das doofe an UUIDs/Device-IDs. Aber anpassen mußt du nur (/dev/sdh1)/etc/fstab und die grub-config. Wobei ich das bei grub2 leider nicht so genau weiß. Und ja, dein 'sed' Befehl sollte klappen, du solltest aber Backups anlegen lassen:
grub2 habe ich nicht sondern grub
Ah, gut. Dann brauchst du nur /etc/fstab und /boot/grub/menu.lst und /boot/grub/device.map anpassen bzw. letzteres solltest du per '--recheck' anpassen lassen ;)
find /mnt/boot/grub2 /mnt/etc/grub*/ -type f -exec /bin/sed -i.bak -e 's/HDS723020BLA642_MN1220F319HPLD/HDS722020ALA330_JK11A8B9JX5RRF/g' \
/bin/sed -i.bak -e \ 's/HDS723020BLA642_MN1220F319HPLD/HDS722020ALA330_JK11A8B9JX5RRF/g' \ /mnt/etc/fstab
ist ja toll was da alles geht. Und die beiden legen über das "-i.bak" Backups an?
Jep (ich hab's aber nicht mehr explizit getestet ;). Also nur einmal aufrufen und dann kontrollieren! Aber s.o., mit Grub1 ist der Aufwand gar nicht nötig, da gibt's nur die 3 beteiligten Dateien. HTH, -dnh -- Eine Damenhandtasche ist ein mobiles Hardware-/dev/random für Frauen, wobei Frauen immer den passenden Zufall finden im Gegensatz zu den Männern. -- Oliver Schad -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org