ext4 파일 시스템에서 읽고 쓸 수있는 안전하고 안정적인 애플리케이션이 있습니까? Mac OS X?
그렇지 않은 경우 콘텐츠에 액세스하는 가장 좋은 방법은 무엇입니까? Mac의 ext4 파일 시스템 OS X?
댓글
- 실행중인 OS X 버전을 지정하면 도움이됩니다. OS 버전에 따라 사용 가능한 솔루션과의 호환성 문제가 있습니다.
답변
정답은 상용 소프트웨어에 투자하려는 의지에 따라 다릅니다.
상업용 제품 , Paragon의 Mac 용 extFS 는 ext2 / ext3 / ext4 파일 시스템에 대한 읽기 및 쓰기 액세스를 제공합니다. 10.10 이상의 모든 OS X / macOS 버전입니다.
무료 솔루션을 찾는 경우 , Linux 가상 머신을 설정하고 여기에 볼륨을 마운트하고 Samba 또는 (S) FTP를 통해 공유 할 수 있습니다. 이 게시물 에는 무료 가상 머신 애플리케이션 인 VirtualBox 를 사용하여이를 달성하는 방법에 대한 세부 정보가 있습니다. . 사전 제작 된 VirtualBox VM 을 사용하면 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 버전은 제대로 작동했습니다. ne. 큰 ISO 몇 개를 아무 문제없이 복사했습니다.
댓글
- Fuse-ext2는 쓰기 가능 또는 읽기 전용으로 마운트 할 수 있습니까?
답변
를 통해 OSXFUSE를 완전히 설치할 수도 있습니다. a> 명령 줄 패키지 관리자 :
brew install homebrew/fuse/ext4fuse
설치시 특정 명령이이 외에도 “sudo”로 실행되어야한다고 알려줍니다.
요세미티와 함께 이 를 더 잘 살펴보세요. 그런 다음 이 를 수행하여 사용자가 디렉토리를 읽을 수 있는지 확인합니다. 작동하려면 다음과 같은 휠 그룹을 사용해야했습니다.
sudo dscl . append /Groups/wheel GroupMembership $(whoami)
Answer
최근 homebrew에 대한 변경 사항으로 인해 다음과 같이 간단합니다.
brew cask install osxfuse brew install ext4fuse
재부팅해야 할 수도 있습니다.
ext4fuse 는 안타깝게도 읽기 전용입니다. 일반 사용자로 작동하려면 플래그를 사용 해야 할 수도 있습니다.
이 질문을 보는 다른 사용자는 libguestfs . 저는 OS X 포트를 알지 못합니다. VirtualBox에 API가 있다는 점을 고려하면 문제가되지 않습니다.
왜 Linux 커널 파일 시스템을 허용하는 호환성 계층을 작성하지 않았는지 궁금합니다. 사용자 공간 / 퓨즈에서 실행할 코드. 아니면 누군가가 있습니까?
답변
(High) Sierra에 대한 업데이트 된 답변
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
Yosemite 및 이전 버전에 대한 원래 답변 * ( 더 이상 사용되지 않음)
OSX에서 EXT2 / 3 / 4 지원을 사용하려면 두 개의 패키지가 필요합니다. OSXFUSE 및 FUSE-EXT2 .
homebrew OSXFUSE 및 FUSE-EXT2에 대한 수식 작동하지 않음 매버릭이나 요세미티에서 나를 위해.
작동 한 내용은 다음과 같습니다.
- . 중요 : PKG 설치 프로그램을 시작한 후 마법사에서 MacFUSE 호환성 레이어 를 선택했는지 확인하세요. (기본적으로 활성화되어 있지 않음)-마운트를 시도하는 동안 오류가 발생했습니다.
- http://sourceforge.net/projects/fuse-ext2/ 또는 Sierra / El Capitan의 경우 https://github.com/gpz500/fuse-ext2/releases 에서 PKG 설치 프로그램입니다.
OSXFUSE와 FUSE-EXT2가 모두 설치되면 다른 답변에서 언급 한대로 ext2 / ext3 / ext4 파티션을 마운트 할 수 있습니다.
-
마운트하려는 EXT 파티션의 장치 이름을 찾습니다 (예 : 아래 예에서는
disk0s2
, 이후 MacOS 버전에서는 (UPDATE) 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
다음으로 마운트 일반 사용자가 나를 위해 일하지 않았습니다. 아마도 이것은 권한을 조작하여 해결할 수 있지만 조사하지는 않았습니다.
참고 : 내 의심은 homebrew가 osxfuse
MacFUSE 호환성 레이어 가 없습니다.
homebrew에는 두 개의 osxfuse
패키지가 있습니다.
# brew search osxfuse >>> osxfuse >>> Caskroom/cask/osxfuse
두 버전 모두 EXT 파티션을 마운트하지 못합니다. 대부분 DMG 버전 (Caskroom/cask/osxfuse
)는 homebrew가 기본 설정으로 패키지를 설치하기 때문에 실패합니다. 즉, MacFUSE 호환성 레이어 가 포함되어 있지 않습니다. 기본 osxfuse
버전에는 아마도 MacFUSE 호환성을 활성화하기위한 일부 특수 설치 매개 변수이므로 homebrew에서 수정 될 때까지 수동 DMG 방법을 사용해야합니다.
이 방법은 mavericks, yosemite, el capitan 및 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
.
댓글
- 이 작업을 시도했지만 (그러나 문제 설명이나 참조는 없습니다). Compability Layer 애드온을 설치했습니다. 저는 ‘ macOS Sierra에서 Github gzp500 버전을 사용해 보았습니다.
답변
fuse 및 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
로그 파일에 쓸 수 없다고 불평 할 수 있지만 여전히 파티션을 홈 마운트 지점에 마운트해야합니다. 그러나 파티션을 시스템 디렉토리에 마운트하려면 루트로 실행해야합니다. 예 :
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
마운트 된 파일 시스템은 root / sudo로만 액세스 할 수 있습니다. 예 :
sudo ls /sys_mount_point
파일 시스템을 마운트 해제하려면 일반 umount
명령 (파티션을 마운트하는 데 사용되는 경우 sudo 포함) :
umount ~/mount_point
댓글
- 사용자 홈 디렉토리 외부에 마운트하는 경우 루트로만 드라이브에 액세스하면됩니다.
cd ~
,mkdir mnt
,ext4fuse /dev/diskXsY mnt
,ls -la mnt
sudo / root 제외. - mount : exec /Library/Filesystems/fuse-ext2.fs/Contents/Resources/ mount_fuse-ext2 for … : 해당 파일 또는 디렉토리 없음
답변
기록을 위해 저는 MacBook Pro에서 Paragon ExtFS 드라이버 (평가판)를 테스트하여 Linux에서 ext4 파티션에 기록했습니다. 드라이버가 매우 불안정하여 fsck
가 Linux 나 디스크 유틸리티에서 복구 할 수없는 파일 시스템이 손상되었음을 발견했습니다.
내 이 Paragon 드라이버를 사용하여 Mac OS X에서 내 /home
파티션에 액세스하는 것이 아이디어 였지만이 설정을 권장하지 않습니다. 지금까지 내 iv id = 저널링없이 hfsplus
로 포맷 된 Linux의 “6073e0c30e”>
파티션을 사용하면 Mac OS X에서 내 파일에 액세스 할 수 있습니다. 물론 때때로 내 FS에 몇 가지 문제가 있지만 그다지 자주 발생하지는 않습니다. 그러나이 설정도 제안하지 않습니다 (적어도 일상적인 작업에 대한 최신 백업이 있음).
마지막으로 Paragon은 외부 하드 디스크에 사용하는 것이 더 적합 할 수 있지만 어쨌든 라이센스가 비싼 소프트웨어에 대해서는 그다지 신뢰할 수 없습니다.
업데이트 : 2015 년 5 월부터 / home을 ext4로 포맷했습니다. OS X 용 FUSE와 함께 fuse-ext2를 사용하여 파일 시스템을 마운트합니다. ext4 파티션에 액세스하여 읽고 쓸 수 있습니다. 위에서 설명한 것보다 더 견고한 설정입니다.
코멘트
- 여기에서 Paragon ExtFS 드라이버가 Linux 드라이브에 문제를 일으킬 수있는 마지막 항목을 확인할 수 있습니다. OSX와 Linux를 이중 부팅하는 나를 위해 paragon은 내 / 장치에 손상을 일으켰습니다. 이것은 해결하기 쉽지만 안정적인 솔루션은 아닙니다 …
- Paragon ExtFS 드라이버에 대한 더 나쁜 경험. 시스템 재부팅, 파일 시스템 손상으로 이어지는 일관된 커널 패닉 (다행히도 Linux 상자에서 fsck가 작동 함). 동일한 결과를 가진 두 개의 다른 외장 드라이브에서 시도했습니다.
답변
iv id = “471a85c3f4를 부팅 할 수 있습니다. Vagrant 를 사용하여 OS X에서 빠르게 “>
Linux VM 을 사용할 수 있습니다. .dmg 파일을 통해 VirtualBox 및 Vagrant 와 같은 VM 공급자를 설치해야합니다. 사이트 또는 brew cask 를 사용합니다.
vagrant
명령을 설치했으면 다음에서 실행하십시오. 선택한 폴더 :
vagrant init ubuntu/trusty64; vagrant up --provider virtualbox
Vagrantfile
구성 파일 및 폴더.
그러면 몇 분 내에 Linux 상자가 부팅됩니다 ( Atlas Hashicorp a에서 다운로드). > 저장소).
그런 다음 다음 명령을 통해 상자에 연결 : vagrant ssh
및 기기를 Linux 내에 마운트합니다.
기본적으로 현재 폴더 VM의 /vagrant
폴더와 동기화됩니다. 고급 옵션을 보려면 필수 구성입니다.
따라서 /vagrant
폴더 내에 파일 시스템을 마운트하면 자동으로 다시 동기화됩니다. macOS.
또는 VirtualBox 를 설치하고, GUI 앱을 실행하고, 최소 버전의 Linux를 설치 및 부팅하기 만하면됩니다. Ubuntu 는 위에서 설명한 것과 동일하게 달성합니다.
위의 네이티브가 아닌 솔루션은 이상적이지는 않지만 최소한 시스템 충돌을 많이 일으킬 수있는 불안정한 커널 확장 프로그램을 설치하는 것보다 macOS가 더 안정적입니다.
댓글
- Ran with
vagrant init ubuntu/xenial64; vagrant up --provider virtualbox
는ubuntu/vivid64
를 더 이상 사용할 수 없습니다. - 대신
ubuntu/trusty64
를 사용해보세요.
답변
osxfuse . 읽기는 잘 작동하지만 쓰기가 안전한지 확실하지 않습니다.
또한 OS X의 파일 시스템 ( HFS + ) ext4로 이동하려면 먼저 숨겨진 .DS_Store 파일을 제거 할 수 있습니다. OS X 파일 시스템은 때때로 나쁜 inodes .
find /my/data/to/move -name "*.DS_Store" -type f -delete
fsck 명령.
Answer
MacPorts에서도 e2fsprogs를 사용할 수 있습니다. 아직 직접 테스트했지만 유망 해 보입니다.
답변
-> https://github.com/alperakcan/fuse-ext2
다음에 시도 할 작업입니다.
ext2의 경우 macports 버전이 있습니다. https://ports.macports.org/port/ext2fuse/summary
osxfuse 용 ext4 모듈 ( macports를 통해 실속)하지만 읽기 전용입니다!
여러 버전은 약간 혼란 스럽지만 한 번에 작동하도록 관리했습니다. 다시 시도 하고이 경우이 답변을 업데이트 할 것입니다. . 🙂
osxfuse는 macports 및 독립 실행 형 패키지에서 사용할 수 있습니다. 어떤 것이 최신 OS X 버전에서 가장 잘 작동하는지 모르겠지만 OS X의 무료 소프트웨어로 macports를 선호합니다.