• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Es regnet, ist neblig und kalt, alle sind krank und der Chef wird zunehmend cholerisch. Das Thema des Monats ist also folgerichtig --> Das Grau(en)
    Wir sind gespannt, war Euch dazu einfällt! Zum Wettbewerb --> Klick
  • Auch in diesem Jahr möchten wir auf unserer Webseite mit einem passenden Banner etwas weihnachtliche Stimmung verbreiten. Jeder Apfeltalker kann, darf und sollte uns einen Banner-Entwurf zusenden, wie und wo das geht, könnt Ihr hier nachlesen --> Klick

Inkonsistenter MBR und/oder defekter GPT

seventyeight

Golden Delicious
Registriert
16.03.11
Beiträge
10
Beim installieren von Linux habe ich dummerweise GRUB in den MBR geschrieben. Die Folge war das ich nicht mehr in rEFIt kam und das MBP immer zwei Anläufe brauchte um in OS X zu booten. Also beim ersten Bootvorgang brach es nach einer Weile ab und Reboot, dann bootete OS X. Manchmal kam ich noch mit "option" in den hauseigenen Bootmanger.

Dann habe ich mit diskutil die bestehenden Linux-Partionen gelöscht. Jetzt zeigt Diskutil nicht mehr den restlichen Teil der HDD an:

diskutil list
Code:
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *160.0 GB   disk0
   1:                       0xEE                         160.0 GB   disk0s1
   2:                  Apple_HFS Apple HD                30.0 GB    disk0s2
   3:                  Apple_HFS Data                    40.9 GB    disk0s3

diskutil info /dev/disk0
Code:
   Device Identifier:        disk0
   Device Node:              /dev/disk0
   Part Of Whole:            disk0
   Device / Media Name:      Hitachi HTS545016B9SA02 Media

   Volume Name:              
   Escaped with Unicode:     

   Mounted:                  No

   File System:              None

   Partition Type:           FDisk_partition_scheme
   Bootable:                 Not bootable
   Media Type:               Generic
   Protocol:                 SATA
   SMART Status:             Verified

   Total Size:               160.0 GB (160041885696 Bytes) (exactly 312581808 512-Byte-Blocks)
   Volume Free Space:        Not Applicable

   Read-Only Media:          No
   Read-Only Volume:         Not applicable (no filesystem)
   Ejectable:                No

   Whole:                    Yes
   Internal:                 Yes
   OS 9 Drivers:             No
   Low Level Format:         Not Supported

gpt -r show -l /dev/disk0
Code:
      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part - "EFI System Partition"
     409640   58593752      2  GPT part - "Apple HD"
   59003392     262144         
   59265536   79907552      3  GPT part - "Untitled"
  139173088        800         
  139173888   23437312      4  GPT part - ""
  162611200    7989248      5  GPT part - ""
  170600448  111327232      6  GPT part - ""
  281927680   30654095         
  312581775         32         Sec GPT table
  312581807          1         Sec GPT header

pdisk -l /dev/rdisk0
Code:
pdisk: No valid block 1 on '/dev/rdisk0'

gdisk /dev/disk0
Code:
GPT fdisk (gdisk) version 0.7.0

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

print the partition table
Code:
Disk /dev/disk0: 312581808 sectors, 149.1 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): blah-blah-blah-blah
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 312581774
Partitions will be aligned on 8-sector boundaries
Total free space is 30917045 sectors (14.7 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              40          409639   200.0 MiB   EF00  EFI System Partition
   2          409640        59003391   27.9 GiB    AF00  Apple HD
   3        59265536       139173087   38.1 GiB    AF00  Untitled
   4       139173888       162611199   11.2 GiB    AF00  
   5       162611200       170600447   3.8 GiB     8200  
   6       170600448       281927679   53.1 GiB    0700


recovery and transformation options und anschließend print protective MBR data
Code:
Disk size is 312581808 sectors (149.1 GiB)
MBR disk identifier: 0x00000000
MBR partitions:

Number  Boot  Start Sector   End Sector   Status      Code
   1                     1    312581807   primary     0xEE

Partion Inspector gibt aus:
Code:
*** Report for internal hard disk ***

Current GPT partition table:
 #      Start LBA      End LBA  Type
 1             40       409639  EFI System (FAT)
 2         409640     59003391  Mac OS X HFS+
 3       59265536    139173087  Mac OS X HFS+
 4      139173888    162611199  Mac OS X HFS+
 5      162611200    170600447  Linux Swap
 6      170600448    281927679  Basic Data

Current MBR partition table:
 # A    Start LBA      End LBA  Type
 1              1    312581807  ee  EFI Protective

MBR contents:
 Boot Code: GRUB

Partition at LBA 40:
 Boot Code: None (Non-system disk message)
 File System: FAT32
 Listed in GPT as partition 1, type EFI System (FAT)

Partition at LBA 409640:
 Boot Code: None
 File System: HFS Extended (HFS+)
 Listed in GPT as partition 2, type Mac OS X HFS+

Partition at LBA 59265536:
 Boot Code: None
 File System: HFS Extended (HFS+)
 Listed in GPT as partition 3, type Mac OS X HFS+

Partition at LBA 139173888:
 Boot Code: GRUB
 File System: ext4
 Listed in GPT as partition 4, type Mac OS X HFS+

Partition at LBA 162611200:
 Boot Code: None
 File System: Unknown
 Listed in GPT as partition 5, type Linux Swap

Partition at LBA 170600448:
 Boot Code: None
 File System: ext4
 Listed in GPT as partition 6, type Basic Data

bless --info
Code:
Can't determine parent media for /dev/disk0s2


Wie kann ich die Platte wieder in Ordnung bringen? Ich traue mich im Moment nicht mehr neu zu booten. Reicht möglicherweise ein booten von der Install-DVD und dann ein fdisk -u ? Bin gerade völlig ratlos. Danke schonmal im voraus für hoffentlich kompetente Hilfe! ;)
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
"gdisk" wird dir am einfachsten helfen. Unter den "Recovery" Optionen nutzt du die Option "h" (Make Hybrid MBR)
Welche maximal drei der insgesamt fünf Datenpartitionen du dort eintragen lässt, bleibt dir überlassen.

Wenn du clever bist, machst du aber ganz was anderes:

1) Du benutzt eine top aktuelle Distribution, die den aktuellen GRUB2 benutzt und nicht "GRUB Legacy" (z.B. Ubuntu 10.10 MavMkt)

2) Du benutzt "gdisk" -> "create a new protective MBR" ( x / n ).
Da du kein Windows benutzt, brauchst du keinerlei MBR-Einträge mehr ausser dem Pflichteintrag 0xEE, der die gesamte HD einnehmen soll. Diese Funktion wird genau das so erstellen. Anderweitige Anleitungen hierzu ignorierst du, sie sind u.U. einfach nur veraltet.

3) Du erzeugst (bevorzugt ganz am Ende der HD) eine weitere GPT-Partition, zB mit gdisk.
Grösse (empfohlen): 2048-4096 Sektoren (1-2 MiB), Typ (in gdisk-eigener Notation): "EF02"
Dies entspricht einem von gpt oder dem FP-DP angezeigten GUID-Typ von "21686148-6449-6E6F-744E-656564454649".
Linux wird diese Partition während der Installation evtl nicht anzeigen, kümmere dich nicht darum. Sie muss weder formatiert noch eingebunden werden.
Später im laufenden Linux-System wird sie als "BIOS Boot Partition" angezeigt werden, sie enthält keinerlei Dateisystem und kann daher nicht gemountet werden. Das ist so beabsichtigt.

4) Du installierst Linux erneut und gibst wieder den MBR der HD als Installationsziel für GRUB an (i.d.R.: "/dev/sda" ).
Diesmal wird GRUB nichts mehr überschreiben, sondern seinen erweiterten Loader stattdessen in diese genau dafür erstellte und reservierte Partition ablegen. Die GPT wird so nicht mehr beschädigt.
 

seventyeight

Golden Delicious
Registriert
16.03.11
Beiträge
10
Erstmal vielen Dank für deine Antwort.
Laut gdisk und gpt habe ich einen validen PMBR. Nur warum zeigen bless, diskutil und pdisk dies so nicht an?
Insbesondere diskutil sollte doch GPT-Scheme anzeigen. Und beim Inspector müsste doch bei Boot Code eigentlich "none" drinstehen.? Liegt das daran, dass der Kernel noch die alte Partitionstabelle verwendet und ich erstmal neu booten muss, damit der das auch mitbekommt?
Auf diesen Hybrid-Quatsch würde ich am liebsten komplett verzichten und alles in GPT haben.
Zu der "BIOS Boot Partition" habe ich noch eine Frage: wohin wird dann GRUB2-Stage1 gepackt? In dieser Part. liegt doch dann nur Stage2.? Und kann man GRUB2 nicht auch als EFI-Binary compilen?

EDIT: Ich habe gerade mal versucht die EFI-Partition zu mounten: mount_msdos /dev/disk0s1 /Volumes/efi/
Code:
mount_msdos: Unsupported sector size (23552)
Da scheint auch noch was im Argen zu liegen.
 
Zuletzt bearbeitet:

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Laut gdisk und gpt habe ich einen validen PMBR. Nur warum zeigen bless, diskutil und pdisk dies so nicht an?
Gerät ausschalten. (Nicht nur neustarten)
Dann sollte das verschwunden sein. Mglws. ist der Eintrag auch so korrupt, dass er regeneriert werden muss.

Und beim Inspector müsste doch bei Boot Code eigentlich "none" drinstehen.?
Falls du die Partition #4 (ca 11 GB) als Linux Rootpartition gedacht hattest (nehme ich mal an), hat sie einfach nur den falschen Typ, sie ist als HFS deklariert. Falls das tatsächlich eine Mac-Partition sein soll, ist sie noch nicht formatiert (oder wurde teilweise überschrieben).

Zu der "BIOS Boot Partition" habe ich noch eine Frage: wohin wird dann GRUB2-Stage1 gepackt?
Immer in den MBR, anders kann ein BIOS-basiertes OS nicht starten.

In dieser Part. liegt doch dann nur Stage2.?
In GRUB2 gibt es keine "Stage"-Loader mehr. Aber im Prinzip ja.

Und kann man GRUB2 nicht auch als EFI-Binary compilen?
Nur in der Theorie. Praktisch hast du damit entsetzliche Probleme.
(Der Kernel läuft dann eben auch im EFI Modus, und das bekommt man in Helsinki offenkundig immer noch nicht gebacken.)

EDIT: Ich habe gerade mal versucht die EFI-Partition zu mounten: mount_msdos /dev/disk0s1 /Volumes/efi/
Code:
mount_msdos: Unsupported sector size (23552)
Da scheint auch noch was im Argen zu liegen.
MBR-Partition 1 statt GPT-Partition 1 verwendet -> Falscher Einsprungpunkt (Sektor 1 statt 40)
Nachm Reboot und dem korrekten Erkennen der GPT Tabelle sollte das weg sein.
Tip: EFI-Partitionen müssen von root gemountet werden (oder zumindest muss dieser vorab die KEXT für msdos-Dateisysteme laden).
Ausserdem empfiehlt sich schwer, die Mount-Option "nobrowse" hinzuzufügen um das Volume nicht im Finder erscheinen zu lassen.
Code:
sudo mount -t msdos -o nobrowse <devnode> <mntpt>
 

seventyeight

Golden Delicious
Registriert
16.03.11
Beiträge
10
Gerät ausschalten. (Nicht nur neustarten)
Dann sollte das verschwunden sein. Mglws. ist der Eintrag auch so korrupt, dass er regeneriert werden muss.

Genau so war es auch.


MBR-Partition 1 statt GPT-Partition 1 verwendet -> Falscher Einsprungpunkt (Sektor 1 statt 40)
Nachm Reboot und dem korrekten Erkennen der GPT Tabelle sollte das weg sein.
Tip: EFI-Partitionen müssen von root gemountet werden (oder zumindest muss dieser vorab die KEXT für msdos-Dateisysteme laden).
Ich hatte vorher schon ein sudo -s gemacht, deswegen fehlt das sudo

Ausserdem empfiehlt sich schwer, die Mount-Option "nobrowse" hinzuzufügen um das Volume nicht im Finder erscheinen zu lassen.
Warum? Verstehe ich nicht. Ist doch egal?


Ich musste noch mal von der Install-Disk booten und ein Volume-Repair durchführen, jetzt ist alles wieder in feinster Butter. Wie auch immer, ich möchte dir für deine Hilfe danken! Hast du noch eventuell eine Leseempfehlung zur Thematik GPT/MBR/Hybrid, außer das von Rod Smith?