it-swarm.com.de

HFS + -Partition unter Arch Linux einbinden

Ich habe einige Probleme beim Mounten einer hfs + -Partition unter Arch Linux.

Wenn ich Sudo mount -t hfsplus /dev/sda2 /mnt/mac ausführe, wird folgender Fehler angezeigt:

mount: wrong fs type, bad option, bad superblock on /dev/sda2,
   missing codepage or helper program, or other error

   In some cases useful info is found in syslog - try
   dmesg | tail or so.

Das Ausführen von dmesg | tail gibt Folgendes:

[ 6645.183965] cfg80211: Calling CRDA to update world regulatory domain
[ 6648.331525] cfg80211: Calling CRDA to update world regulatory domain
[ 6651.479107] cfg80211: Calling CRDA to update world regulatory domain
[ 6654.626663] cfg80211: Calling CRDA to update world regulatory domain
[ 6657.774207] cfg80211: Calling CRDA to update world regulatory domain
[ 6660.889864] cfg80211: Calling CRDA to update world regulatory domain
[ 6664.007521] cfg80211: Exceeded CRDA call max attempts. Not calling CRDA
[ 6857.870580] perf interrupt took too long (2503 > 2495), lowering kernel.perf_event_max_sample_rate to 50100
[11199.621246] hfsplus: invalid secondary volume header
[11199.621251] hfsplus: unable to find HFS+ superblock

Gibt es eine Möglichkeit, diese Partition zu mounten?

EDIT:

Durch die Verwendung von Sudo mount -t hfsplus -o ro,loop,offset=409640,sizelimit=879631488 /dev/sda2 /mnt/mac wird hfsplus: invalid secondary volume header in dmesg | tail entfernt.

19
ZuluDeltaNiner

Es ist wahrscheinlich, dass das HFS-Volume nicht bereitgestellt wird, da die HFS-Partition in ein CoreStorage-Volume eingeschlossen ist (der Standardwert seit OS X 10.10). Sie können überprüfen, ob dies bei der Ausgabe von fdisk -l der Fall ist: fdisk output

HFS + verwendet zwei Volume-Header, einen 1024 in das Gerät und den sekundären 1024 vom Ende des Geräts . Laut Spezifikation wird beim Mounten einer Partition erwartet, dass der sekundäre Header genau 1024 Byte vom Ende der Partition entfernt ist, aber mit CoreStorage, das das HFS-Volume umschließt, ist dies nicht mehr der Fall, sodass es abbricht. Sie können -o sizelimit=N an mount übergeben, um die Größe des HFS-Volumes manuell festzulegen und zu korrigieren. Aber wie erhält man den magischen Wert für N?

Das Dienstprogramm testdisk kann nach Partitionen suchen und dabei angeben, wo die HFS-Partition tatsächlich endet. Seien Sie vorsichtig - die Auswahl der falschen Optionen in testdisk kann Ihre Partitionstabelle beschädigen!

  1. Starten Sie TestDisk mit testdisk /dev/sdX und anschließend mit OK, um das Laufwerk auszuwählen
  2. Wählen Sie Intel für MBR oder EFI GPT für GPT-formatierte Laufwerke
  3. Drücken Sie Analyse und dann Quick Search
  4. Nach ein paar Augenblicken sollte es die gefundenen Partitionen drucken: testdisk results

    Die angegebene Partition ähnelt der tatsächlichen Partitionsgröße von 623463232 Sektoren, die zuvor von fdisk -l gemeldet wurde (ist jedoch geringfügig kleiner).

    Da die TestDisk-Ausgabe Sektoren verwendet, müssen wir sie mit der logischen Sektorgröße des Laufwerks (normalerweise 512 oder 4096 Byte) multiplizieren, um die Größe des HFS-Volumes in Byte zu erhalten. Das ist der Wert für N, den wir für -o sizelimit=N beim Mounten des HFS-Volumes verwenden.

    Wenn Sie die logische Sektorgröße Ihres Laufwerks nicht kennen, überprüfen Sie die Ausgabe von zweite  Erste Nummer, die von fdisk -l in der folgenden Zeile gemeldet wird: finding your disk's logical sector size

  5. Drücken Sie mehrmals q, um das Programm zu verlassen

  6. Hängen Sie den Datenträger ein: mount /dev/sdXn -t hfsplus -o ro,sizelimit=N
33
Stewart Adam

Eine andere Möglichkeit besteht darin, CoreStorage zu entfernen, wenn Ihnen ein OS X-Computer zur Verfügung steht. Dies würde auch die Entschlüsselung beseitigen, wenn Sie es verwenden und warten müssen, bis die Entschlüsselung abgeschlossen ist (an die Stromversorgung angeschlossen und in OS X gebootet, sogar Wiederherstellung).

Sie müssten von einem anderen Datenträger booten, vorzugsweise von einer Internetwiederherstellung (falls verfügbar, Befehl-Option-r beim Neustart). Öffnen Sie das Terminal und führen Sie Folgendes aus:

diskutil cs list

Die Ausgabe sollte Ihre CoreStorage-Volumes und alle Volumes anzeigen. Eines davon ist der Status "Zurücksetzbar". Wenn dies "Ja" anzeigt, sind Sie in guter Verfassung, um fortzufahren. Als nächstes würden Sie ausführen:

diskutil cs revert /dev/ diskXsY

(Wobei X die Plattennummer und Y die Partitionsnummer ist).

Sie können den Status anschließend mit demselben Befehl "diskutil cs list" überprüfen. Wenn es nicht verschlüsselt ist, sollte es bereits wieder ein Standard-GPT-Partitionslayout haben und Sie können versuchen, es erneut in Arch bereitzustellen. Es sollte immer noch ein Journal vorhanden sein, das schreibgeschützt bleibt, wenn Sie dies im Festplatten-Dienstprogramm aktivieren oder deaktivieren möchten.

Wenn es verschlüsselt wurde, dauert der Vorgang eine Weile, aber "diskutil cs list" zeigt Ihnen den Fortschritt in Prozent an.

Ich hatte keine Probleme beim Mounten von Nicht-CoreStorage-HFS + -Laufwerken und -Partitionen auf Arch. Schließlich habe ich die Daten verschoben, als ext4 neu partitioniert und die Daten wieder dorthin verschoben.

2
Cory T