質問: arch linuxにhfs +パーティションをマウントする arch linuxにhfs +パーティションをマウントする際にいくつか問題があります。sudo mount -t hfsplus /dev/sda2 /mnt/macを実行すると、次のエラーが発生します。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. dmesg | tailを実行すると、次のようになります。[ 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 このパーティションをマウントする方法はありますか?[〜#〜]編集[〜#〜]:sudo mount -t hfsplus -o ro,loop,offset=409640,sizelimit=879631488 /dev/sda2 /mnt/macを使用すると、hfsplus: invalid secondary volume headerのdmesg | tailが削除されます
回答: hfsパーティションがcorestorageボリューム(os x 10.10以降のデフォルト)でラップされているため、hfsボリュームがマウントされていない可能性があります。これがfdisk -lの出力に当てはまるかどうかを確認できます: hfs +は2つのボリュームヘッダーを使用します。1つはデバイスへの1024で、 デバイスの最後から2番目の1024 です。仕様によると、パーティションをマウントするとき、セカンダリヘッダーはパーティションの端から正確に1024バイトであると予想されますが、corestorageがhfsボリュームをラップしているため、現在はそうではなく、中止されます。 -o sizelimit=nをmountに渡して手動でhfsボリュームサイズを指定し、これを修正できますが、nのマジック値を取得するにはどうすればよいですか?testdiskユーティリティはパーティションをスキャンして、hfsパーティションが実際に終了する場所を示唆できます。 注意してください-testdiskで間違ったオプションを選択すると、パーティションテーブルが損傷する可能性があります! testdisk /dev/sdx、次にokを使用してtestdiskを起動し、ドライブを選択します mbrの場合はintelを、gptフォーマットのドライブの場合はefi gptを選択します analyseを押してからquick searchを押します しばらくすると、見つかったパーティションが表示されます。 示されているパーティションは、以前にfdisk -lによって報告された623463232セクターの実際のパーティションサイズにかなり近い(しかし少し小さい)ように見えます。 testdisk出力はセクターを使用するため、ドライブの論理セクターサイズ(通常は512または4096バイト)を掛けて、hfsボリュームサイズをバイト単位で取得する必要があります。これは、hfsボリュームをマウントするときに-o sizelimit=nに使用するnの値です。 ドライブの論理セクターサイズがわからない場合は、 二番目 first以下の行でfdisk -lによって報告された番号: qを数回押してプログラムを終了します ディスクをマウントします:mount /dev/sdxn -t hfsplus -o ro,sizelimit=n