ext4 ファイルシステムとの間で読み取りおよび書き込みを行うための安全で安定したアプリケーションはありますかMacの場合 OS X?
そうでない場合、のコンテンツにアクセスするための最良の方法は何ですか? Mac上のext4ファイルシステム OS X?
コメント
- 実行しているOSXのバージョンを指定すると便利です。OSのリビジョンによっては、利用可能なソリューションとの互換性の問題があります。
回答
回答は、商用ソフトウェアに投資する意欲によって異なります。
場合商用製品にいくらかお金をかけてもかまいません、 Paragonの extFS for Mac は、ext2 / ext3 / ext4ファイルシステムへの読み取りおよび書き込みアクセスを提供します。現在のバージョンのサポート■10.10以降のOSX / macOSのすべてのバージョン。
無料のソリューションをお探しの場合、Linux仮想マシンをセットアップし、そこにボリュームをマウントして、 Samba または(S)FTPを介して共有できます。 この投稿には、無料の仮想マシンアプリケーションである VirtualBox を使用してこれを実現する方法の詳細が記載されています。 。 ビルド済みのVirtualBoxVM を使用すると、Linuxディストリビューションを最初からインストールして構成する手間が省けますが、これは必ずしも軽量なソリューションではないことに注意してください。
コメント
- 確かに’無料のnonvmソリューションはありますか?
- osboxes.org は、virtualboxes.orgよりも新しいバージョンを提供します。
回答
Kenの回答に基づいて構築: fuse4x と fuse-ext2 を正常に使用し、 ext4fuseよりもfuse-ext2をお勧めします。fuse-ext2は書き込みアクセスを提供し、ext4fuseは読み取りアクセスのみを提供します。その名前にもかかわらず、fuse-ext2はEXT2 / EXT3 / EXT4をサポートします。
ext4fuseは私にとって面倒でした。 、手動コンパイルが必要であり、アクセス制御を設定できるfuse4xオプションがサポートされていないためです。fuse-ext2はダウンロード可能なパッケージを提供し、0.0.7バージョンはfiだけで機能しました。ね。いくつかの大きなISOを問題なくコピーしました。
コメント
- fuse-ext2は書き込み可能または読み取り専用としてマウントできますか?
回答
a>コマンドラインパッケージマネージャー:
brew install homebrew/fuse/ext4fuse
インストールでは、これに加えて特定のコマンドを「sudo」として実行する必要があることが示されていることに注意してください。
Yosemiteでは、これをよく見てください。次に、これを実行して、ユーザーがディレクトリを読み取れることを確認します。それが機能するためには、次のようなホイールグループを使用する必要がありました:
sudo dscl . append /Groups/wheel GroupMembership $(whoami)
回答
最近の自作の変更により、これは次のように簡単になります。
brew cask install osxfuse brew install ext4fuse
再起動が必要になる場合があります。
ext4fuse は、残念ながら読み取り専用です。また、通常のユーザーとして機能させるには、フラグを使用する必要がある場合があります。
この質問を表示している他のユーザーは libguestfs 。私は「OSXポートを認識していませんが、VirtualBoxにAPIがあることを考えると、それは問題外ではありません。
Linuxカーネルファイルシステムを許可する互換性レイヤーを作成した人がいないのはなぜですか。ユーザースペース/ヒューズで実行するコード。または誰かがいますか?
回答
(高)シエラの回答を更新
シエラとハイシエラの場合 ext4fuse は、 読み取りアクセスのみ でうまく機能するようです。したがって、それはおそらく好ましいオプションと見なすことができます。他の回答ではすでにいくつかの使用例が示されていますが、いくつかの重要な詳細を含めてもう一度繰り返します。
ext4fuse を次のようにインストールします:
brew install ext4fuse
通常のユーザーとしてマウントできますが、その場合は「世界中で読み取り可能なファイルにアクセスするため、フルアクセスにはsudo
を使用する必要があります。例:
sudo ext4fuse -o allow_other /dev/disk2s1
これは、プロセスを部分的に自動化するbashスクリプトです。起動すると、disk2s1
などの表示されたデバイス識別子の1つを入力するように求められた後、マウントポイントが自動的に作成されます。
diskutil list read -p "Please type the EXT4 device identifier: " disk_id MOUNT_POINT=~/mnt/$disk_id mkdir -p ${MOUNT_POINT} sudo ext4fuse -o allow_other /dev/$disk_id ${MOUNT_POINT} echo "***TO UNMOUNT USE***: "diskutil umount ${MOUNT_POINT}"" open ${MOUNT_POINT}
マウントを解除するには、たとえばdiskutil umount /dev/disk2s1
を使用できます—マウントを解除するというメッセージが表示された場合失敗した場合は、diskutil umount force /dev/disk2s1
を使用して強制的にアンマウントできますが、ディスク上のファイルを使用しているアプリを閉じて、force
。
_lpoperator
が所有するファイルがある場合(グループの保持オプションを指定してrsyncを使用すると、ファイルが作成されるようです)、次のコマンドを実行します。これらのファイルへのアクセスを許可します:
/usr/sbin/dseditgroup -o edit -a everyone -t group _lpoperator
Yosemite以前の元の回答*(非推奨)
OSXでEXT2 / 3/4サポートを有効にするには、2つのパッケージが必要です: OSXFUSE および FUSE-EXT2 。
homebrew OSXFUSEおよびFUSE-EXT2の式が機能しませんでした異端者かヨセミテのどちらかで私のために。
機能したのは次のとおりです。
- 。 重要:PKGインストーラーを起動したら、ウィザードで MacFUSE互換性レイヤーを選択していることを確認してください(デフォルトでは有効になっていません)-マウントしようとするとエラーが発生しました。
- http://sourceforge.net/projects/fuse-ext2/ または https://github.com/gpz500/fuse-ext2/releases のSierra / ElCapitanの場合はPKGインストーラー。
OSXFUSEとFUSE-EXT2の両方をインストールしたら、他の回答で説明されているように、ext2 / ext3 / ext4パーティションをマウントできます。
-
マウントするEXTパーティションのデバイス名を見つけます(例:以下の例では
disk0s2
、(UPDATE)以降のMacOSバージョンではext3 / ext4パーティションに Microsoft基本データであり、 Linux ではありません):1: Linux_Swap 8.2 GB disk0s1 2: Linux 119.9 GB disk0s2
-
パーティションを既存のマウントポイント:
sudo mount -t fuse-ext2 /dev/disk0s2 /Volumes/ext4
マウント通常のユーザーは私のために働いていませんでした。おそらくこれは権限をいじることで修正できますが、私はそれを調べませんでした。
注:自作はosxfuse
MacFUSE互換性レイヤーなし。
自作には2つのosxfuse
パッケージがあります。
# brew search osxfuse >>> osxfuse >>> Caskroom/cask/osxfuse
どちらのバージョンもEXTパーティションのマウントに失敗します。おそらくDMGバージョン(Caskroom/cask/osxfuse
)homebrewがデフォルト設定でパッケージをインストールするため失敗します。つまり、 MacFUSE互換性レイヤーは含まれていません。メインのosxfuse
バージョンにはおそらくMacFUSE互換性を有効にするための特別なインストールパラメータがあるため、これが自作で修正されるまで、手動のDMGメソッドを使用する必要があります。
このメソッドは、マーベリック、ヨセミテ、エルキャピタン、シエラで機能しました。
古いOSXバージョン用のEXT2 / 3/4マウントスクリプト(非推奨)
余分な入力を省くために、disk0s2
などのパーティション名を取得し、それを/Volumes/disk0s2
の下にマウントする小さなスクリプトを使用して、作成します。必要に応じてフォルダ:
### mount_ext4.sh sudo mkdir -p "/Volumes/$1" sudo mount -t fuse-ext2 "/dev/$1" "/Volumes/$1" open "/Volumes/$1"
スクリプトは次のパーティション名で呼び出されます。 diskutil list
で検索します。例: mount_ext4.sh disk2s3
。
コメント
- これを試しましたが、残念ながらエラーが発生しました
FUSE-EXT2 could not mount /dev/disk2s2 at /Volumes/ext4 because the following problem occurred:
(ただし、問題の説明や参照はありません)。 CompabilityLayerアドオンをインストールしました。私はmacOSSierraで’ mなので、Githubgzp500バージョンを試しました。
回答
ヒューズとext2fuseを使用してext4パーティションをマウントするコマンドラインが何か疑問に思っている場合(たとえば、MacPorts port install ext2fuse
を使用してインストールする場合)-最初に作業する必要がありますLinuxパーティションがどこにあるか:
diskutil list
これにより、すべてのディスクのすべてのパーティションが一覧表示されます。その中には、TYPE列の下にLinuxとしてリストされている関連するパーティションが表示されます。 .diskXとパーティション番号Yを次のように組み合わせます/ dev / diskXsY-e。g:
mount -t fuse-ext2 /dev/disk1s2 ~/my_mount_point
ログファイルに書き込めないと文句を言うかもしれませんが、それでもパーティションをホームマウントポイントにマウントする必要があります。ただし、パーティションをシステムディレクトリにマウントする場合は、rootとして実行する必要があります。例:
sudo mount -t fuse-ext2 /dev/disk1s2 /sys_mount_point
それが機能しない場合は、次のようにしてください。
sudo ext2fuse /dev/disk1s2 /sys_mount_point
更新:最近私が見つけたそのfuse-ext2には特定の新しいext4機能に問題があるため、代わりに ext4fuse (またはbrew install ext4fuse
)。 ext4fuseコマンドを直接使用します。
ext4fuse /dev/disk1s2 ~/mount_point
また、コメントでTimothyが述べているように、通常はsudo
ホームディレクトリの外にマウントする場合、またはディスク(/ dev / diskX)にルートからのみアクセスできる場合:
sudo ext4fuse /dev/disk1s2 /sys_mount_point
注意が必要です。マウントされたファイルシステムにはroot / sudoとしてのみアクセスできます。例
sudo ls /sys_mount_point
ファイルシステムをアンマウントするには、通常のumount
コマンド(パーティションのマウントに使用する場合はsudoを使用):
umount ~/mount_point
コメント
- あなたドライブをホームディレクトリの外にマウントする場合にのみ、ルートとしてドライブにアクセスする必要があります。
cd ~
、mkdir mnt
、ext4fuse /dev/diskXsY mnt
、ls -la mnt
sudo / rootなし。 - マウント:exec /Library/Filesystems/fuse-ext2.fs/Contents/Resources/ mount_fuse-ext2 for …:そのようなファイルやディレクトリはありません
回答
念のため、MacBookProでParagonExtFSドライバー(試用版)をテストして、Linuxのext4パーティションに書き込みました。ドライバが非常に不安定で、ファイルシステムに破損が発生し、fsck
がLinuxでもディスクユーティリティでも修復できなかったことがわかりました。
MyこのParagonドライバを使用してMacOSXから/home
パーティションにアクセスするというアイデアでしたが、この設定を行うことはお勧めしません。これまでのところ、/home
パーティションはジャーナルなしでhfsplus
にフォーマットされており、Mac OS Xからファイルにアクセスできます。もちろん、時々取得します。私のFSにはいくつかの問題がありますが、それほど頻繁ではありません。ただし、この設定もお勧めしません(少なくとも、日常業務の最新のバックアップがあることをお勧めします)。
最後に、私は次のように信じています。 Paragonは、おそらく外部ハードディスクに使用するのに適していますが、とにかく、ライセンスが高価なソフトウェアであるため、信頼性はあまり高くありません。
更新: 2015年5月の時点で、/ homeをext4にフォーマットしました。そして、fuse-ext2をFUSE for OSXと組み合わせて使用してファイルシステムをマウントします。ext4パーティションにアクセスして読み取りと書き込みを行うことができます。これは、前に説明したものよりもしっかりしたセットアップです。
コメント
- ParagonExtFSドライバーがLinuxドライブで問題を引き起こす可能性がある最後のエントリをここで確認できます。 OSXとLinuxをデュアルブートしている私にとって、paragonは私の/デバイスに破損を引き起こしました。これは簡単に解決できましたが、安定した解決策ではありません…
- ParagonExtFSドライバーのさらに悪い経験。一貫したカーネルパニックにより、システムの再起動、ファイルシステムの破損が発生します(幸い、Linuxボックスのfsckは機能しました)。 2つの異なる外付けドライブで同じ結果を試しました。
回答
Linux VM は、 Vagrant を使用してOSXですばやく実行できます。 VirtualBox や Vagrant などのVMプロバイダーを.dmgファイルからインストールする必要があります。サイトまたは brew cask を使用します。
vagrant
コマンドをインストールしたら、次のコマンドで実行します。選択したフォルダー:
vagrant init ubuntu/trusty64; vagrant up --provider virtualbox
これにより、Vagrantfile
構成ファイルと.vagrant
フォルダ。
数分以内にLinuxボックスが起動します( Atlas Hashicorp aからダウンロード) >リポジトリ)。
次に、コマンドiv id = “428f4d00b3″を使用して、ボックスに接続します。 >
およびデバイスをLinux内にマウントしてみてください。
デフォルトでは、現在のフォルダVMの/vagrant
フォルダーと同期されます。より高度なオプションについては、 と必要な構成。
したがって、ファイルシステムを/vagrant
フォルダー内にマウントすると、自動的にに同期されます。あなたのmacOS。
または、 VirtualBox をインストールし、GUIアプリを実行し、Linuxの最小バージョンをインストールして起動する必要があります。 Ubuntu は、上記で説明したのと同じことを実現するためのものです。
上記の非ネイティブソリューションは理想的ではありませんが、少なくともmacOSは、多くのシステムクラッシュを引き起こす可能性のある不安定なカーネル拡張機能をインストールするよりも安定しています。
コメント
- as
ubuntu/vivid64
は使用できなくなりました。 - 代わりに
ubuntu/trusty64
を使用してみてください。
回答
osxfuse 。そこからの読み取りはうまく機能しますが、書き込みが安全かどうかはわかりません。
また、OS Xのファイルシステム( HFS + )ext4の場合、最初に非表示の.DS_Storeファイルを削除することができます。OSXファイルシステムが潜入すると iノード。
find /my/data/to/move -name "*.DS_Store" -type f -delete
fsck コマンド。
回答
MacPortsで利用できるe2fsprogsもあります。まだありません。まだ自分でテストしましたが、有望に見えます。
回答
見てください-> https://github.com/alperakcan/fuse-ext2
これが次に試すことです。
ext2には、macportsバージョンがあります: https://ports.macports.org/port/ext2fuse/summary
ありますosxfuse用のext4モジュール( macports経由でストールします)が、読み取り専用です!
多数のバージョンは少し混乱しますが、ある時点でそれを機能させることができたので、再試行して、もしそうならこの答えを更新します。 🙂
osxfuseは、macportsおよびスタンドアロンパッケージとして利用できます。どちらが新しいOSXバージョンで最適に機能するかはわかりませんが、OSXのフリーソフトウェアにはmacportsが好きです。