Mounten der HFS + -Partition unter Arch Linux

20500
ZuluDeltaNiner

Ich habe Probleme beim Einhängen einer hfs + -Partition unter Arch Linux.

Wenn ich renne, sudo mount -t hfsplus /dev/sda2 /mnt/macerhalte ich diesen Fehler:

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. 

Laufen dmesg | tailgibt:

[ 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 einzuhängen?

BEARBEITEN :

Verwenden sudo mount -t hfsplus -o ro,loop,offset=409640,sizelimit=879631488 /dev/sda2 /mnt/macentledigt sich hfsplus: invalid secondary volume headerindmesg | tail

18

2 Antworten auf die Frage

29
Stewart Adam

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

HFS + verwendet zwei Volume-Header, einen 1024 in das Gerät und den sekundären 1024 vom Ende des Geräts . Laut der Spezifikation wird erwartet, dass der sekundäre Header beim Mounten einer Partition genau 1024 Bytes vom Ende der Partition entfernt ist. Wenn CoreStorage das HFS-Volume umschließt, ist dies jedoch nicht mehr der Fall, sodass der Vorgang abgebrochen wird. Sie können an übergeben -o sizelimit=N, mountum die Größe des HFS-Volumes manuell festzulegen und dies zu beheben. Wie kann man den magischen Wert erhalten N?

Das testdiskDienstprogramm kann nach Partitionen suchen, um anzuzeigen, wo die HFS-Partition wirklich endet. Seien Sie vorsichtig - die falschen Optionen in testdisk zu wählen, kann Ihre Partitionstabelle beschädigen!

  1. Starten Sie TestDisk mit testdisk /dev/sdXund dann OK, um das Laufwerk auszuwählen
  2. Wählen Sie Intelfür MBR oder EFI GPTfür GPT-formatierte Laufwerke
  3. Drücken Sie Analyseund dannQuick Search
  4. Nach wenigen Augenblicken sollte es die gefundenen Partitionen ausdrucken: testdisk Ergebnisse

    Die angegebene Partition sieht ziemlich nah an (aber etwas kleiner) als die tatsächliche Partitionsgröße von 623463232 Sektoren, die fdisk -lzuvor gemeldet wurde .

    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, den Nwir -o sizelimit=Nbeim Mounten des HFS-Volumes verwenden werden.

    Wenn Sie die logische Sektorgröße Ihres Laufwerks nicht kennen, überprüfen Sie die Ausgabe der zweiten ersten Zahl, die fdisk -lin der folgenden Zeile angezeigt wird:Finden Sie die logische Sektorgröße Ihrer Festplatte

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

  6. Mounten Sie die Festplatte: mount /dev/sdXn -t hfsplus -o ro,sizelimit=N
Von Benutzer [edmonde] (http://superuser.com/users/614222/edmonde): Dieses Rezept hat für mich gut funktioniert, aber ich musste es unter Verwendung der logischen Sektorgröße (der ersten von zwei Zahlen, in meinem Fall 512) anpassen versus 4096) im Gegensatz zur physischen Sektorgröße zur Berechnung der Gesamtvolumengröße. Ich weiß nicht warum, aber es hat super funktioniert. fixer1234 vor 7 Jahren 3
Dies hat mein Problem behoben. Andere Ressourcen schlugen die Verwendung eines "offset" -Parameters vor, der in Kombination mit diesem Parameter nicht funktionierte, aber die Verwendung von _only_ `sizelimit` auf die Anzahl der Bytes (Byte * Sektoren) funktionierte selbst bei Partitionen, die nicht zu CoreStorage gehören cdeszaq vor 7 Jahren 0
Das funktioniert bei mir nicht. Ich bekomme `mount failed: Unknown error -1` und nichts in` dmesg`. `hfsplus` wird definitiv geladen. Dan vor 6 Jahren 0
+1 durch Verwendung der logischen Sektorgröße festgelegt Jake vor 6 Jahren 0
1
Cory T

Eine andere Option ist, 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 Sie müssten warten, bis die Entschlüsselung abgeschlossen ist (angeschlossen an Strom und Booten in OS X, sogar Wiederherstellung).

Sie müssten von einem Datenträger booten, der nicht für Sie in Frage kommt, vorzugsweise Internetwiederherstellung (falls verfügbar, Befehlsoption-r beim Neustart). Öffne das Terminal und mache ein:

diskutil cs list 

Die Ausgabe sollte Ihre CoreStorage-Volumes anzeigen. Einer davon ist der Revertible-Status. Wenn Ja angezeigt wird, sind Sie in guter Verfassung, um fortzufahren. Als nächstes würden Sie laufen:

diskutil cs revert /dev/ diskXsY 

(Dabei steht X für die Festplattennummer und Y für die Partitionsnummer).

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

Wenn es verschlüsselt wurde, dauert der Vorgang eine Weile, aber "Diskussil cs list" zeigt Ihnen den Fortschritt als Prozentsatz an.

Ich hatte keine Probleme mit der Installation von Nicht-CoreStorage HFS + -Laufwerken und -Partitionen auf Arch. Schließlich habe ich die Daten verschoben, als ext4 neu partitioniert und die Daten wieder auf sie übertragen.