Linux で読み取り/書き込み権限を持つ HFSPlus ディスクをマウントする

Linux で読み取り/書き込み権限を持つ HFSPlus ディスクをマウントする

この質問は、本質的にはこの質問、しかし、私は特にコメントの1つで追加の問題にもっと注目を集めたいと考えています。その質問に対する答え

古い MacbookPro のハード ドライブを取り出し、それを Elementary OS ボックスにマウントしようとしていますが、自動的に読み取り専用としてマウントされます。このドライブへの rw アクセスを取得したいと考えています。

上記の回答に記載されている手順に従って、実行した後

sudo mount -t hfsplus -o remount,force,rw /dev/sdc2 /media/myharddrive

私は

mount: warning: /media/myharddrive seems to be mounted read-only.

このことはその質問のコメントで指摘されていますが、回答に値するほどの注目を集めていません。なぜまだ読み取り専用なのでしょうか? それがforce保証するものではないのですか?

以下の内容は関連している場合と関連していない場合があります。

私も走りましsudo fsck.hfsplus -f /dev/sdc2回答にリンクされているブログ投稿ジャーナルシステムのチェックを実行したくないので-fフラグを追加しました。これは、fsck

** /dev/sdc2 ** Checking HFS Plus volume. ** Checking Extents Overflow file. ** Checking Catalog file. ** Checking multi-linked files. Orphaned indirect node iNode28863935 ** Checking Catalog hierarchy. ** Checking Extended Attributes file. ** Checking volume bitmap. ** Checking volume information. ** Repairing volume. ** Rechecking volume. ** Checking HFS Plus volume. ** Checking Extents Overflow file. ** Checking Catalog file. ** Checking multi-linked files. ** Checking Catalog hierarchy. ** Checking Extended Attributes file. ** Checking volume bitmap. ** Checking volume information. ** The volume myharddrive was repaired successfully. *** glibc detected *** fsck.hfsplus: munmap_chunk(): invalid pointer: 0x00000000022f9e30 ***

バックトレースとメモリマップが続きます。このfsck呼び出しは私のドライブに良い影響も悪い影響も与えなかったようです。

ドライブの読み取り/書き込みアクセスを取得する方法についてのヒントはありますか?OSXを起動せずに、よろしくお願いいたします。

編集 マイケル・キョーリングのコメントと答えデータにアクセスするという根本的な問題を解決しました。ただし、上記の太字の質問はまだ解決されていないため、この問題を強調するように質問を編集し、将来のユーザーのために質問を開いたままにしました。

答え1

コメントで判明したように、ここでは 2 つの問題が発生する可能性があります。

  1. 通常のユーザーとしてコピーを実行しようとしています。ソース ファイルに対する読み取り権限がないため、ソース ファイルの読み取りに失敗する可能性があります。sudoマウント時と同じようにコピーを実行すると、この問題は簡単に修正できます。
  2. cp: omitting directory Documents/を介してコピーを実行しようとすると、が表示されますsudo。これは権限の問題ではなく、cpサブディレクトリを含めるように指示するだけで修正できます。

sudo cp -av /media/myharddrive /somewhere/elseこれら 2 つを組み合わせると、 /somewhere/else が存在し、書き込み可能な場合に、などのコマンドを使用してファイルをコピーできるようになります。

この-vパラメータは厳密には必要ではありませんが、30 分または 1 時間ほど待つと、コピー中のファイルが一覧表示されるので便利です。小さなファイルが多数ある場合は、画面の更新によってコピーのスループットが低下する可能性があることに注意してください。その場合は、ウィンドウを最小化して時々確認してください。

-acp に「アーカイブ」モードで動作するように指示し、サブディレクトリを含むコピーするファイルについて可能な限り多くを保存します。または、 を使用して-rディレクトリ構造のみを保存するように指示することもできます。

これを使用すると、HFS+ ファイル システム サポートの読み取り専用制限に制限されることなく、より自由に操作できる適切な場所にファイルをコピーできるようになります。

答え2

基本的に、問題は OSX を使用せずにジャーナリングをオフにする方法であると思います。

これにはディスク ヘッダーのバイナリ編集 (ハッキング) が必要であり、その結果、ジャーナルによって占有されていたディスク領域が失われる可能性があります。

まさにそれを実行すると主張する 2 つの非常に類似した C プログラムへのポインタを次に示します。

これらのプログラムがディスクを破壊しないことを保証することはできませんので、ディスクのバックアップ イメージで試してみることをお勧めします。

この投稿は役に立つかもしれません: ディスクイメージをマウントするにはどうすればいいですか?

答え3

私も同じ問題を何度も経験しましたが、これまでに学んだことは、fsck を正常に実行することが不可欠だということです。これはあなたのマシンでは機能しないので、修正には次のアプローチが適していると思います:

  • どのバージョンの hfsprogs / fsck.hfsplus をインストールしましたか?
  • 私のマシン(Debianを実行)ではソースからインストールした(別のソースからのダウンロードを使用)

    wget "http"://"gentoo.osuosl.org/distfiles/diskdev_cmds-332.14.tar.gz"

    wget "http"://"gentoo.osuosl.org/distfiles/diskdev_cmds-332.14_p1.patch.bz2"

    tar xzf ディスクデバイスcmds-332.14.tar.gz

    bunzip2 -c diskdev_cmds-332.14_p1.patch.bz2 | パッチ -p0

    cd ディスクデバイスcmds-332.14

    make -f Makefile.lnx

    cp fsck_hfs.tproj/fsck_hfs /sbin/fsck.hfsplus

    cp newfs_hfs.tproj/newfs_hfs /sbin/mkfs.hfsplus

    ln -s /sbin/fsck.hfsplus /sbin/fsck.hfs

    ln -s /sbin/mkfs.hfsplus /sbin/mkfs.hfs

この方法では、私の hfs+ ディスクでは fsck が常に機能するようになりました。

答え4

Macで起動する方法があれば環境これはジャーナリングを適切に無効にすることで修正されるはずです。環境つまり、実際の macOS ではなく、ディスクが Mac 上にないのに Mac が起動する場合は、ディスクを外付けエンクロージャに入れて (または再インストールして)、インターネット回復から起動します。Intel RMac の電源投入中および電源投入後に押し続けます。

もしあなたのマシンが新しいのなら、こんなDのようなことを言って申し訳ないのですが、Appleが辿ってきた道を目の当たりにしながら、Appleから買い続けたことが、ある意味あなた自身の責任でこのような事態を招いたのです。

ディスク ユーティリティまたはdiskutil(ターミナルは上記のいずれかのメニューからアクセスできます) を使用して、ディスクに TLC を適用し、ジャーナリングを無効にします。ジャーナリングを無効にするにあるべきであるファイルメニューディスクユーティリティ隠れている可能性がありますので、押すと表示されます。

またはターミナルでdiskutil listディスク 音量ボリュームがアンマウントされていることを確認します。

  • diskutil unmountDisk disk1s7またはディスク全体がアンマウントされている
  • diskutil unmountDisk disk1または
  • diskutil unmountDisk /dev/disk1しかし、排出されません。
  • diskutil eject <any-of-the-above>または、再接続する必要があります。また、ジャーナリングを削除します。
  • diskutil disableJournal disk1s7または
  • diskutil disableJournal force disk1s7 …もちろん、あなたのデータを使ってです。

新しいファイルシステムに決めた場合は、NTFSWindowsをお使いの場合は、それ以外の場合は拡張子4ZFS は現在ほとんどの OS に搭載されており、何らかの理由で APFS も搭載されています。Btrfs も優れていて使いやすいですが、 の問題への対処がより簡単でext4、ZFS や Btrfs とは異なり、他の OS ではプールのインポートと追加サポートが必要であり、メタデータ エラーによって全体が台無しになる可能性があるのに対し、Btrfs は移植可能です。

あるいは、この環境にいる間はディスクに完全にアクセスできる必要があります。また、大きな問題なく CLI を回避しているようなので、あなたの場合、私ならプラン A のバックアップを用意します。プラン A では、別のエンクロージャの 2 番目のディスクを使用して、最初のディスクを変更する前に最初のディスクからファイルをコピーします。

インストーラーやリカバリーモード、または標準のmacOSではない他の形式で起動しているときは、ファイルシステムの構造に注意してください。リカバリーモードで起動してからしばらく経ちますが、/実際のディスクは/Volumes/<your-volume-name>

Mac が起動しない、またはもう存在しない場合は、借りることができます。なぜ誰もこれを提案しなかったのかわかりません。

最後の努力の状況

データを移動するためのディスクまたはネットワーク共有がない場合はどうすればよいですか?

これを GUI から実行しようとすると、失敗する可能性が非常に高くなります。一度に 1 つの変更を行って適用し、非常に辛抱強く待ってください。

ディスクをパーティション分割してHFSボリュームを作成し、ジャーナリングなしで連結ディスクセット (JBOD)そこにできるだけ多くのデータを移動します。これにより、元のボリューム パーティションの別のチャンクが再び解放され、新しいボリュームで JBOD が拡張されます。完了するまで繰り返します。各ボリュームには常に少し余裕を持たせてください。*200 ~ 400 MB あれば十分安全です。ボリュームを元に戻せない場合もありますが、JBOD にはほとんどルールがありません。

あるいは、これはLinuxでは認識されないかもしれないので、そこではテストしていません。JBOD を忘れて、そのボリュームからデータを取り出すだけで、たとえ 3 ダースのボリュームに分割されていたとしても、次のステップを計画する際に少し余裕が生まれます。

Linux を使って事後に JBOD するかもしれません。ext4 は直接 Btrfs に変換でき、Btrfs は他のどのものよりも柔軟性が高く、その点では ZFS をはるかに上回っています。最後にもう 1 つ移行 ( hfsext4) してもいいでしょうか。これはリスクがありますが、少なくとももう 1 つのオプションです。macOS を使い続けていたら、これほど多くのオプションはなかったでしょう (良い判断です。私はまだ macOS、Mojave を使っていますが、Mac が壊れたら完全に手放す覚悟はできています)。

「デリケートなディスク」でディスクユーティリティを使用する

ディスクユーティリティが認識しないものがあれば、ディスクが壊れているなどと表示されることがあります。一度に多くの操作を行うと、ディスク自体が壊れる可能性があります。円グラフが表示されてディスクをパーティション分割する場合、パーティション設定、名前の追加、サイズ変更はすべて個別の操作ですが、これらの多くはディスクユーティリティが失敗する原因になります。ディスクが十分に速く応答せず、ディスクが不良であると解釈されるか、我慢できなくなるためだと思います。いわばnad は、実際には不良ディスクになってしまう愚かなものを作成します。

何かをする前に、後から考えればもっと早く言及すべきだったもう一つの命を救う可能性のあることは、ターミナルを実行しgpt show -l /dev/disk1gpt show /dev/disk1それらのテーブルをテキスト ファイルにコピーしてフラッシュ ドライブに保存するか、画面の写真を撮ります。直接ファイルに置き、gpt show -l /dev/disk1 > gpt-tables.txt ; gpt show /dev/disk1 >> gpt-tables.txtファイルをマシンから移動します。

ディスクユーティリティが失敗した場合にパーティションテーブルを再作成できます。緊急ブートにはマニュアルページがないので、使い方はこうです(gpt)。

パーティションを 1 つずつ追加し、サイズを変更するのは、追加時に必要なサイズになっていない場合のみにしてください。ファイルシステムを変更し、ドロップダウンをクリックして非表示のパーティションを表示します。新しいボリュームの名前を変更しないでください。ボリュームを作成した後でも変更できますが、変更すると全体が失敗する可能性があります。最初のエラーの後、それ以降はすべて問題です。再起動後に回復する場合もありますが、無理に押し込まない方がよいでしょう。 の品質管理は、CEO の交代時に High Sierra/Mojave あたりで失敗しました。Mac は典型的なかなりおバカなブロンドで、*Elle Woods^ に花開くことはありません。いいえ…おバカです。

関連情報