OS X에 ext4 파일 시스템을 어떻게 마운트합니까?


131

Mac OS X의 ext4 파일 시스템에서 읽고 쓸 수있는 안전하고 안정적인 응용 프로그램이 있습니까?

그렇지 않다면 Mac OS X에서 ext4 파일 시스템의 내용에 액세스하는 가장 좋은 방법은 무엇입니까?


실행중인 OS X 버전을 지정하면 도움이 될 것입니다. OS 개정판에 따라 사용 가능한 솔루션과의 호환성 문제가 있습니다.
kopischke

답변:


60

대답은 상용 소프트웨어에 투자하려는 의지에 달려 있습니다.

당신이 상용 제품에 돈을 지출 괜찮다면 , 파라곤의 Mac 용 extFS은 읽고 EXT2 / EXT3 / ext4 파일 시스템에 쓰기 액세스를 제공 할 것입니다. 현재 버전은 10.10 이상에서 모든 버전의 OS X / macOS를 지원합니다.

무료 솔루션을 찾고 있다면 Linux 가상 머신을 설정하고 볼륨을 마운트 한 후 Samba 또는 (S) FTP 를 통해 공유 할 수 있습니다 . 이 게시물 에는 무료 가상 머신 애플리케이션 인 VirtualBox를 사용하여이를 달성하는 방법에 대한 세부 사항이 있습니다. 사전 구축 된 VirtualBox VM 을 사용하여 Linux 배포판을 처음부터 설치 및 구성 할 필요가 없더라도이 솔루션은 가벼운 솔루션이 아닙니다 .


2
확실히 무료 nonvm 솔루션이 있습니까?
Pacerier

osboxes.org 는 최신 버전과 virtualboxes.org를 제공합니다.
Tim

36

Ken의 대답을 바탕으로 : fuse4xfuse-ext2를 성공적으로 사용 했으며 ext4fuse 보다 fuse-ext2를 권장합니다.

ext4fuse는 수동 컴파일이 필요하고 액세스 제어를 설정할 수있는 fuse4x 옵션을 지원하지 않기 때문에 번거 롭습니다. fuse-ext2는 다운로드 가능한 패키지를 제공하며 0.0.7 버전은 정상적으로 작동했습니다. 문제없이 몇 가지 큰 ISO를 복사했습니다.


fuse-ext2가 쓰기 가능 또는 읽기 전용으로 마운트 할 수 있습니까?
knocte

25

brew 명령 줄 패키지 관리자 를 통해 OSXFUSE를 완전히 설치할 수도 있습니다 .

brew install homebrew/fuse/ext4fuse

설치시 특정 명령을이 외에도 'sudo'로 실행해야합니다.


요세미티와 함께 이것에 대해 더 잘 살펴보십시오 . 그런 다음 작업을 수행하여 사용자가 디렉토리를 읽을 수 있는지 확인하십시오 . 그것이 작동하려면 다음과 같이 휠 그룹을 사용해야했습니다.

sudo dscl . append /Groups/wheel GroupMembership $(whoami)

18

최근에 homebrew가 변경되면 다음과 같이 간단해야합니다.

brew cask install osxfuse
brew install ext4fuse

재부팅해야 할 수도 있습니다.

ext4fuse 는 불행히도 읽기 전용입니다. 그리고 일반 사용자로 작동하려면 플래그사용해야 할 수도 있습니다 .

이 질문을 보는 다른 사람들은 libguestfs에 관심이있을 수 있습니다 . OS X 포트는 모르지만 VirtualBox에 API가 있다고 생각하면 문제가되지 않습니다.

Linux 커널 파일 시스템 코드를 사용자 공간 / 퓨즈에서 실행할 수 있도록 호환성 계층을 작성한 사람이없는 이유가 궁금합니다. 아니면 누군가가 있습니까?


10

퓨즈와 ext2fuse를 사용하여 ext4 파티션을 마운트하는 명령 줄이 무엇인지 궁금하다면 (예 : MacPorts를 사용하여 설치 할 때 port install ext2fuse) Linux 파티션이 어디에 있는지 알아 내야합니다.

diskutil list

여기에는 모든 디스크의 모든 파티션이 나열되며 그 중 TYPE 열 아래에 관련 파티션이 Linux로 표시됩니다. / dev / diskXsY와 같이 diskX와 파티션 번호 Y를 결합하십시오. 예 :

mount -t fuse-ext2 /dev/disk1s2 ~/my_mount_point

로그 파일에 쓸 수 없다고 불평 할 수 있지만 여전히 파티션을 홈 마운트 지점에 마운트해야합니다. 그러나 파티션을 시스템 디렉토리에 마운트하려면 루트로 실행해야합니다. 예 :

sudo mount -t fuse-ext2 /dev/disk1s2 /sys_mount_point

그래도 작동하지 않으면 다음을 시도하십시오.

sudo ext2fuse /dev/disk1s2 /sys_mount_point

업데이트 : 최근에 fuse-ext2에 특정 최신 ext4 기능에 문제가 있음을 발견했습니다. 대신 ext4fuse ( port install ext4fuse또는 brew install ext4fuse) 를 사용하는 것이 좋습니다 . ext4fuse 명령을 직접 사용하십시오.

ext4fuse /dev/disk1s2 ~/mount_point

또한 주석에서 Timothy가 언급 한 것처럼 sudo홈 디렉토리 외부에 마운트하거나 디스크 (/ dev / diskX)가 루트로만 액세스 할 수있는 경우에만 사용해야합니다.

sudo ext4fuse /dev/disk1s2 /sys_mount_point

마운트 된 파일 시스템에만 루트 / 스 도로 액세스 할 수 있습니다. 예 :

sudo ls /sys_mount_point

파일 시스템을 마운트 해제하려면 일반적인 umount명령을 사용하십시오 (파티션을 마운트하는 데 사용되는 경우 sudo 사용).

umount ~/mount_point

홈 디렉토리 외부에 마운트 할 경우 루트로 드라이브에 액세스해야합니다. 할 수 있습니다 cd ~, mkdir mnt, ext4fuse /dev/diskXsY mnt, ls -la mntsudo는 / 루트없이.
Timothy Zorn '

마운트 : exec /Library/Filesystems/fuse-ext2.fs/Contents/Resources/mount_fuse-ext2 for ... : 해당 파일 또는 디렉토리 없음
Wolfgang Fahl

9

필자는 기록을 위해 MacBook Pro에서 Paragon ExtFS 드라이버 (평가판)를 테스트하여 Linux의 ext4 파티션에 썼습니다. 드라이버가 매우 불안정 fsck하여 Linux 나 디스크 유틸리티에서 복구 할 수없는 파일 시스템이 손상되었습니다 .

내 생각은 /home이 Paragon 드라이버를 사용하여 Mac OS X에서 파티션에 액세스하는 것이었지만이 설정을 권장하지는 않습니다. 지금까지 저널링없이 /home포맷 된 Linux 파티션 이 있고 hfsplusMac OS X에서 파일에 액세스 할 수 있습니다. 물론, 때때로 FS에 문제가 있지만 자주는 아닙니다. 그러나, 나는이 설정을 제안하지 않습니다 (적어도 일상적인 작업을위한 최신 백업이 있어야 함).

마지막으로 Paragon이 외부 하드 디스크에 사용하기에 더 적합하다고 생각하지만 라이센스가 비싼 소프트웨어 인 경우에는 그다지 신뢰할 수 없습니다.

업데이트 : 2015 년 5 월 현재 / home을 ext4로 포맷했으며 퓨즈 X를 OS X 용 FUSE와 함께 사용하여 파일 시스템을 마운트합니다. ext4 파티션에 액세스하여 읽고 쓸 수 있습니다. 위에서 설명한 것보다 더 견고한 설정입니다.


Paragon ExtFS 드라이버가 Linux 드라이브에서 문제를 일으킬 수있는 마지막 항목을 확인할 수 있습니다. OSX와 Linux를 이중 부팅하는 나를 위해 paragon은 내 / 장치에서 손상을 일으켰습니다. 이것은 해결하기 쉽지만 안정적인 솔루션은 아닙니다.

Paragon ExtFS 드라이버에 대한 더 나쁜 경험. 일관된 커널 패닉으로 인해 시스템이 재부팅되고 파일 시스템이 손상되었습니다 (리눅스 박스에서 fsck가 작동했습니다). 동일한 결과로 두 개의 다른 외장 드라이브를 사용해 보았습니다.

9

Vagrant를 사용하여 OS X에서 Linux VM을 빠르게 부팅 할 수 있습니다 . 사이트에서 .dmg 파일을 통해 또는 brew cask를 사용하여 VirtualBoxVagrant 와 같은 VM 공급자를 설치해야합니다 .

vagrant명령이 설치 되면 선택한 폴더에서이를 실행하십시오.

vagrant init ubuntu/trusty64; vagrant up --provider virtualbox

Vagrantfile구성 파일과 .vagrant폴더 가 생성됩니다 .

몇 분 내에 Linux 박스를 부팅 할 수 있습니다 ( Atlas Hashicorp 저장소 에서 다운로드 ).

그런 다음 상자에 연결 명령을 통해 : vagrant ssh장치를 탑재하려고 리눅스 내부.

기본적으로 현재 폴더는 /vagrantVM의 폴더 와 동기화됩니다 . 고급 옵션의 경우 Vagrantfile필요한 구성으로 수정할 수 있습니다.

따라서 파일 시스템을 /vagrant폴더에 마운트하면 자동으로 macOS에 다시 동기화됩니다.


또는 VirtualBox 를 설치 하고 GUI 앱을 실행하고 위에서 설명한 것과 동일한 것을 달성하기 위해 Ubuntu 와 같은 최소 버전의 Linux를 설치하고 부팅해야 합니다.


위의 비원시 솔루션은 이상적이지 않지만 적어도 시스템 충돌을 일으킬 수있는 불안정한 커널 확장을 설치하는 것보다 macOS가 더 안정적입니다.


에 란 vagrant init ubuntu/xenial64; vagrant up --provider virtualbox으로 ubuntu/vivid64더 이상 사용할 수 없습니다.
Fredrik Erlandsson

ubuntu/trusty64대신 사용해보십시오 .
kenorb

8

osxfuse 를 설치 한 후 마운트 할 수있는 ext4 형식의 USB 드라이브가있었습니다 . 그 책을 읽는 것은 훌륭하지만 글이 안전한지 잘 모르겠습니다.

또한, OS X의 파일 시스템 (에서 파일 이동 HFS +를 ext4에에) 먼저 할 수 있습니다 그 숨겨진 된 .DS_Store 파일 제거 는 OS X의 파일 시스템들이 때때로 나쁜 원인이로 몰래 아이 노드를 .

find /my/data/to/move -name '*.DS_Store' -type f -delete

fsck 명령 으로 수정 한 것보다 낫습니다 .


7

(높은) 시에라에 대한 답변 업데이트

Sierra 및 High Sierra의 경우 ext4fuse읽기 액세스에만 적합 하므로 선호되는 옵션으로 간주 될 수 있습니다. 다른 답변은 이미 몇 가지 사용 예를 제공하지만 몇 가지 중요한 세부 사항으로 다시 반복합니다.

다음을 사용 하여 ext4fuse 를 설치 하십시오 .

brew install ext4fuse

일반 사용자로 마운트 할 수 있지만이 경우 전 세계에서 읽을 수있는 파일에만 액세스 할 수 있으므로 전체 액세스 권한을 사용해야하는 이유는 sudo다음과 같습니다.

sudo ext4fuse -o allow_other /dev/disk2s1

다음은 프로세스를 부분적으로 자동화하는 bash 스크립트입니다. 다음과 같이 표시된 장치 식별자 중 하나를 입력하라는 메시지가 표시되면 마운트 지점이 자동으로 생성됩니다 disk2s1.

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

요세미티 및 그 이전의 답변 (더 이상 사용되지 않음)

OSX에서 EXT2 / 3 / 4 지원을 활성화하려면 OSXFUSEFUSE-EXT2의 두 가지 패키지가 필요합니다 .

OSXFUSE 및 FUSE-EXT2 의 홈 브루 수식 은 매버릭스 또는 요세미티에서 작동하지 않았습니다 .

일한 것은 다음과 같습니다.

  1. http://osxfuse.github.io/ 에서 OSXFUSE DMG를 수동으로 다운로드하여 설치하십시오 . 중요 : PKG 설치 프로그램을 시작한 후에 는 마법사에서 MacFUSE 호환성 계층 을 선택했는지 확인 하십시오 (기본적으로 활성화되어 있지 않음). 마운트하지 않으면 오류가 발생했습니다.
  2. http://sourceforge.net/projects/fuse-ext2/ 에서 FUSE-EXT2를 수동으로 다운로드 하거나 https://github.com/gpz500/fuse-ext2/releases 에서 Sierra / El Capitan을 다운로드 하고 PKG 설치 프로그램을 실행하십시오.

OSXFUSE와 FUSE-EXT2가 모두 설치되면 다른 답변에서 언급 한대로 ext2 / ext3 / ext4 파티션을 마운트 할 수 있습니다.

  1. 마운트하려는 EXT 파티션의 장치 이름을 찾으십시오 (예 : disk0s2아래의 예 에서, 이후 MacOS 버전에서 (UPDATE) ext3 / ext4 파티션은 Linux가 아닌 Microsoft Basic Data 로 표시 될 수 있습니다 ).

    # diskutil list | grep Linux 1: Linux_Swap 8.2 GB disk0s1 2: Linux 119.9 GB disk0s2

  2. 기존 마운트 지점에 파티션을 마운트하십시오.

    sudo mkdir -p /Volumes/ext4 sudo mount -t fuse-ext2 /dev/disk0s2 /Volumes/ext4

일반 사용자로 마운트해도 효과가 없었습니다. 아마도 이것은 권한으로 조정하여 해결할 수는 있지만 조사하지는 않았습니다.

참고 : MacFUSE Compatibility Layerosxfuse 없이 homebrew를 설치하기 때문에 homebrew 공식이 작동하지 않았다고 생각합니다 .

osxfusehomebrew 에는 두 가지 패키지 가 있습니다 .

# brew search osxfuse
>>> osxfuse
>>> Caskroom/cask/osxfuse

두 버전 모두 EXT 파티션을 마운트하지 못합니다. Caskroom/cask/osxfusehomebrew가 기본 설정으로 패키지를 설치하기 때문에 DMG 버전 ( )이 실패 할 가능성이 높습니다. 이는 MacFUSE 호환성 계층 이 포함되어 있지 않음 을 의미합니다 . 주 osxfuse버전에는 MacFUSE 호환성을 활성화하기 위해 특별한 설치 매개 변수가 필요할 수 있으므로 홈 브루에서 수정 될 때까지 수동 DMG 방법을 사용해야합니다.

이 방법은 mavericks, yosemite, elcapitan 및 sierra에서 저에게 효과적이었습니다.

이전 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.


1
이것을 시도했지만 불행히도 오류가 발생합니다 FUSE-EXT2 could not mount /dev/disk2s2 at /Volumes/ext4 because the following problem occurred:(그러나 문제 설명이나 참조는 없습니다). Compability Layer 애드온을 설치했습니다. macOS Sierra에 있으므로 Github gzp500 버전을 사용해보십시오.
Winterflags 2017

6

MacPorts에는 e2fsprogs도 있습니다. 아직 테스트하지는 않았지만 유망한 것으로 보입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.