Gibt es eine sichere, stabile Anwendung zum Lesen und Schreiben in ext4 -Dateisystemen unter Mac OS X?
Wenn nicht, wie kann man am besten auf den Inhalt von zugreifen? ein ext4-Dateisystem auf einem Mac OS X?
Kommentare
- Es wäre mehr als hilfreich, wenn Sie angeben würden, welche Version von OS X Sie ausführen. Abhängig von der Betriebssystemversion gibt es Kompatibilitätsprobleme mit den verfügbaren Lösungen.
Antwort
Die Antwort hängt von Ihrer Bereitschaft ab, in kommerzielle Software zu investieren:
If Es macht Ihnen nichts aus, etwas Geld für ein kommerzielles Produkt auszugeben. , Paragons extFS für Mac erhalten Sie Lese- und Schreibzugriff auf ext2 / ext3 / ext4-Dateisysteme. Die aktuelle Version wird unterstützt s alle Versionen von OS X / macOS ab 10.10.
Wenn Sie nach einer kostenlosen Lösung suchen können Sie eine virtuelle Linux-Maschine einrichten, Ihre Volumes dort einbinden und über Samba oder (S) FTP freigeben. Dieser Beitrag enthält einige Details dazu, wie Sie dies mit VirtualBox , einer kostenlosen Anwendung für virtuelle Maschinen, erreichen können . Beachten Sie, dass dies nicht gerade eine leichte Lösung ist, selbst wenn Sie mit einer vorgefertigten VirtualBox-VM die Installation und Konfiguration einer Linux-Distribution von Grund auf ersparen.
Kommentare
- Sicherlich gibt es ‚ eine kostenlose Nicht-VM-Lösung?
- osboxes.org bietet neuere Versionen im Vergleich zu virtualboxes.org.
Antwort
Aufbauend auf Kens Antwort: Ich habe fuse4x und fuse-ext2 erfolgreich verwendet und Ich empfehle fuse-ext2 gegenüber ext4fuse. Fuse-ext2 bietet Schreibzugriff, während ext4fuse nur Lesezugriff bietet. Beachten Sie, dass fuse-ext2 trotz seines Namens EXT2 / EXT3 / EXT4 unterstützt.
ext4fuse war für mich ein Problem , weil es eine manuelle Kompilierung erfordert und keine Unterstützung für fuse4x-Optionen bietet, mit denen ich die Zugriffssteuerung festlegen könnte. fuse-ext2 bietet herunterladbare Pakete, und die Version 0.0.7 funktionierte nur fi ne. Ich habe ein paar große ISOs problemlos kopiert.
Kommentare
- Kann Fuse-Ext2-Mount-Dinge als beschreibbar oder nur schreibgeschützt einbinden?
Antwort
Sie können OSXFUSE auch vollständig über das Brew Befehlszeilen-Paketmanager:
brew install homebrew/fuse/ext4fuse
Beachten Sie, dass bei der Installation bestimmte Befehle zusätzlich als „sudo“ ausgeführt werden müssen.
Schauen Sie sich mit Yosemite besser this an. Stellen Sie dann sicher, dass das Verzeichnis für Ihren Benutzer lesbar ist, indem Sie this ausführen. Damit es funktioniert, musste ich die Radgruppe wie folgt verwenden:
sudo dscl . append /Groups/wheel GroupMembership $(whoami)
Antwort
Bei den letzten Änderungen an Homebrew sollte dies so einfach sein wie:
brew cask install osxfuse brew install ext4fuse
Möglicherweise müssen Sie neu starten.
ext4fuse ist leider schreibgeschützt. Möglicherweise müssen Sie ein Flag verwenden , damit es als normaler Benutzer funktioniert.
Andere, die diese Frage anzeigen, sind möglicherweise an libguestfs . Ich kenne keinen OS X-Port, aber angesichts der Tatsache, dass VirtualBox über eine API verfügt, kommt dies nicht in Frage.
Ich frage mich, warum niemand eine Kompatibilitätsschicht geschrieben hat, um das Linux-Kernel-Dateisystem zuzulassen Code, der im Userspace / in der Sicherung ausgeführt werden soll. Oder hat jemand?
Antwort
Aktualisierte Antwort für (High) Sierra
Für Sierra und High Sierra ext4fuse scheint für nur Lesezugriff und daher gut zu funktionieren es könnte wahrscheinlich als die bevorzugte Option angesehen werden. Während andere Antworten bereits einige Verwendungsbeispiele enthalten, werde ich sie noch einmal mit einigen wichtigen Details wiederholen:
Installieren Sie ext4fuse mit:
brew install ext4fuse
Sie können als normaler Benutzer mounten, aber in diesem Fall können Sie nur Greifen Sie auf weltweit lesbare Dateien zu. Deshalb müssen Sie für den vollständigen Zugriff sudo
verwenden, z. B.:
sudo ext4fuse -o allow_other /dev/disk2s1
Hier ist ein Bash-Skript, das den Prozess teilweise automatisiert.Beim Start wird automatisch der Einhängepunkt erstellt, nachdem Sie aufgefordert werden, eine der angezeigten Gerätekennungen einzugeben, z. B. 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}
Zum Aufheben der Bereitstellung können Sie z. B. diskutil umount /dev/disk2s1
verwenden, wenn Sie die Meldung erhalten, dass die Bereitstellung aufgehoben wurde Wenn dies fehlgeschlagen ist, können Sie das Aufheben der Bereitstellung mit diskutil umount force /dev/disk2s1
erzwingen. Es wäre jedoch sauberer, die Apps zu schließen, die die Dateien auf der Festplatte verwenden, und das Aufheben der Bereitstellung ohne force
.
Wenn Sie Dateien im Besitz von _lpoperator
haben (anscheinend werden sie erstellt, wenn Sie rsync mit der Option „Gruppe beibehalten“ verwenden), dann den folgenden Befehl ermöglicht den Zugriff auf diese Dateien:
/usr/sbin/dseditgroup -o edit -a everyone -t group _lpoperator
Ursprüngliche Antwort für Yosemite und älter * ( veraltet)
Zwei Pakete werden benötigt, um die EXT2 / 3/4-Unterstützung unter OSX zu aktivieren: OSXFUSE und FUSE-EXT2 .
Die homebrew Formeln für OSXFUSE und FUSE-EXT2 funktionierte nicht für mich entweder auf Außenseiter oder Yosemite.
Es hat Folgendes funktioniert:
- Manuelles Herunterladen und Installieren der OSXFUSE-DMG von http://osxfuse.github.io/ . WICHTIG : Stellen Sie nach dem Starten des PKG-Installationsprogramms sicher, dass Sie im Assistenten MacFUSE Compatibility Layer ausgewählt haben (Es ist standardmäßig nicht aktiviert.) – Ohne dieses Problem wurde beim Mounten ein Fehler angezeigt.
- Laden Sie FUSE-EXT2 manuell von http://sourceforge.net/projects/fuse-ext2/ oder für Sierra / El Capitan von https://github.com/gpz500/fuse-ext2/releases und führen Sie die aus PKG-Installationsprogramm.
Sobald Sie sowohl OSXFUSE als auch FUSE-EXT2 installiert haben, können Sie die ext2 / ext3 / ext4-Partitionen wie in anderen Antworten angegeben bereitstellen:
-
Suchen Sie den Gerätenamen für die EXT-Partition, die Sie mounten möchten (z. B.
disk0s2
im folgenden Beispiel, (UPDATE) in späteren MacOS-Versionen ext3 / ext4-Partitionen sind möglicherweise mitMicrosoft Basic Data und nicht Linux ): 1: Linux_Swap 8.2 GB disk0s1 2: Linux 119.9 GB disk0s2
-
Mounten Sie die Partition an einem vorhandener Einhängepunkt:
sudo mount -t fuse-ext2 /dev/disk0s2 /Volumes/ext4
Einhängen als Ein normaler Benutzer hat bei mir nicht gearbeitet. Wahrscheinlich kann dies durch Fummeln mit Berechtigungen behoben werden, aber ich habe nicht darauf eingegangen.
Hinweis: Mein Verdacht ist, dass die Homebrew-Formeln nicht funktionierten, weil Homebrew osxfuse
ohne die MacFUSE-Kompatibilitätsschicht .
In homebrew gibt es zwei osxfuse
-Pakete:
# brew search osxfuse >>> osxfuse >>> Caskroom/cask/osxfuse
Beide Versionen können keine EXT-Partitionen mounten. Höchstwahrscheinlich die DMG-Version () schlägt fehl, weil Homebrew das Paket mit den Standardeinstellungen installiert. Dies bedeutet, dass MacFUSE Compatibility Layer nicht enthalten ist. Die Hauptversion osxfuse
benötigt wahrscheinlich Einige spezielle Installationsparameter, um die MacFUSE-Kompatibilität zu aktivieren. Bis dies in Homebrew behoben ist, sollte die manuelle DMG-Methode verwendet werden.
Diese Methode funktionierte bei Außenseitern, Yosemite, El Capitan und Sierra.
EXT2 / 3/4 Mount-Skript für ältere OSX-Versionen (veraltet)
Um zusätzliche Eingabe zu sparen, verwende ich ein winziges Skript, das den Partitionsnamen wie disk0s2
verwendet und unter /Volumes/disk0s2
erstellt ggf. den Ordner:
### mount_ext4.sh sudo mkdir -p "/Volumes/$1" sudo mount -t fuse-ext2 "/dev/$1" "/Volumes/$1" open "/Volumes/$1"
Das Skript wird mit dem Partitionsnamen aufgerufen, der Sie suchen über diskutil list
, z mount_ext4.sh disk2s3
.
Kommentare
- Versuchte dies, bekam aber leider den Fehler
FUSE-EXT2 could not mount /dev/disk2s2 at /Volumes/ext4 because the following problem occurred:
(es gibt jedoch keine Problembeschreibung oder Referenz). Ich habe das Compability Layer Addon installiert. Ich ‚ bin unter macOS Sierra, habe also die Github gzp500-Version ausprobiert.
Antwort
Wenn Sie sich fragen, wie die Befehlszeile zum Mounten einer ext4-Partition mit fuse und ext2fuse lauten soll (z. B. bei Installation mit MacPorts port install ext2fuse
), müssen Sie zunächst arbeiten wo sich die Linux-Partition befindet:
diskutil list
Hier werden alle Partitionen für alle Festplatten aufgelistet. Unter diesen sollten die relevanten Partitionen in der Spalte TYPE als Linux aufgeführt sein Kombinieren Sie diskX und Partitionsnummer Y wie folgt: / dev / diskXsY – e.g:
mount -t fuse-ext2 /dev/disk1s2 ~/my_mount_point
Möglicherweise wird beanstandet, dass nicht in die Protokolldatei geschrieben werden kann, die Partition sollte jedoch weiterhin in Ihrem Home-Mount-Punkt bereitgestellt werden. Wenn Sie die Partition jedoch in ein Systemverzeichnis einbinden möchten, müssen Sie sie als Root ausführen, z. B.:
sudo mount -t fuse-ext2 /dev/disk1s2 /sys_mount_point
Wenn dies nicht funktioniert, versuchen Sie Folgendes:
sudo ext2fuse /dev/disk1s2 /sys_mount_point
Update : In jüngerer Zeit habe ich gefunden Da fuse-ext2 Probleme mit bestimmten neueren ext4-Funktionen hat, ist es besser, ext4fuse ( oder brew install ext4fuse
). Verwenden Sie den Befehl ext4fuse direkt:
ext4fuse /dev/disk1s2 ~/mount_point
Wie von Timothy in den Kommentaren erwähnt, müssen Sie normalerweise nur sudo
Wenn Sie außerhalb Ihres Home-Verzeichnisses oder der Festplatte (/ dev / diskX) mounten, ist der Zugriff nur über root möglich:
sudo ext4fuse /dev/disk1s2 /sys_mount_point
Es sollte beachtet werden, dass Sie kann nur als root / sudo auf dieses gemountete Dateisystem zugreifen. zB
sudo ls /sys_mount_point
Zum Aufheben der Bereitstellung des Dateisystems verwenden Sie einfach das normale umount
(mit sudo, wenn zum Mounten der Partition verwendet):
umount ~/mount_point
Kommentare
- Sie Sie müssen nur als Root auf das Laufwerk zugreifen, wenn Sie es außerhalb Ihres Ausgangsverzeichnisses bereitstellen. Sie können
cd ~
,mkdir mnt
,ext4fuse /dev/diskXsY mnt
,ls -la mnt
ohne sudo / root. - mount: exec /Library/Filesystems/fuse-ext2.fs/Contents/Resources/ mount_fuse-ext2 für …: Keine solche Datei oder kein solches Verzeichnis
Antwort
Nur zur Veranschaulichung: Ich habe den Paragon ExtFS-Treiber (Testversion) auf meinem MacBook Pro getestet, um unter Linux auf die ext4-Partition zu schreiben. Ich stellte fest, dass der Treiber sehr instabil war und das Dateisystem beschädigte, das fsck
weder unter Linux noch im Festplatten-Dienstprogramm reparieren konnte.
My Die Idee war, mit diesem Paragon-Treiber von Mac OS X aus auf meine /home
-Partition zuzugreifen, aber ich schlage nicht vor, dieses Setup durchzuführen. Bisher habe ich meine /home
-Partition unter Linux, formatiert auf hfsplus
ohne Journaling, und dann kann ich von Mac OS X auf meine Dateien zugreifen. Natürlich bekomme ich von Zeit zu Zeit Einige Probleme in meinem FS sind jedoch nicht sehr häufig. Ich empfehle dieses Setup jedoch auch nicht (zumindest, dass Sie ein aktuelles Backup für Ihre tägliche Arbeit haben).
Schließlich glaube ich das Paragon eignet sich möglicherweise besser für externe Festplatten, ist jedoch nicht sehr zuverlässig für Software, deren Lizenz teuer ist.
Update: Ab Mai 2015 habe ich mein / home auf ext4 formatiert. und ich mounte das Dateisystem mit fuse-ext2 in Kombination mit FUSE für OS X. Ich kann auf die ext4-Partition zugreifen, um zu lesen und zu schreiben. Es ist solider als das zuvor beschriebene.
Kommentare
- Ich kann hier den letzten Eintrag bestätigen, bei dem der Paragon ExtFS-Treiber auf Ihren Linux-Laufwerken Probleme verursachen kann. Für mich, der OSX und Linux dual bootet, hat paragon auf meinem / Gerät Beschädigungen verursacht. Dies war leicht zu lösen, aber das ist keine stabile Lösung …
- Weitere schlechte Erfahrungen mit dem Paragon ExtFS-Treiber. Konsistente Kernel-Panik, die zum Neustart des Systems und zur Beschädigung des Dateisystems führte (zum Glück funktionierte fsck unter Linux). Versucht auf zwei verschiedenen externen Laufwerken mit den gleichen Ergebnissen.
Antwort
Sie können Linux VM schnell auf Ihrem OS X mit Vagrant . Sie müssen VM-Anbieter wie VirtualBox und Vagrant entweder über die .dmg-Datei aus dem installieren Site oder mit Brühfass .
Wenn Sie den Befehl vagrant
installiert haben, führen Sie diesen aus Beliebiger ausgewählter Ordner:
vagrant init ubuntu/trusty64; vagrant up --provider virtualbox
Dadurch werden die Konfigurationsdatei Vagrantfile
und .
und Sie haben die Linux-Box innerhalb weniger Minuten gestartet (heruntergeladen von Atlas Hashicorp Repository).
Dann verbinden Sie sich mit der Box über den Befehl: vagrant ssh
und versuchen, Ihr Gerät unter Linux zu mounten.
Standardmäßig Ihr aktueller Ordner wird mit dem Ordner /vagrant
in VM synchronisiert. Für erweiterte Optionen können Sie mit der erforderlichen Konfiguration.
Wenn Sie also Ihr Dateisystem im Ordner /vagrant
mounten, wird es automatisch wieder mit synchronisiert dein macOS.
Alternativ müssen Sie nur eine VirtualBox installieren, die GUI-App ausführen, eine minimale Version von Linux installieren und starten, z. Ubuntu , um das gleiche wie oben erläutert zu erreichen.
Die oben genannten nicht nativen Lösungen sind nicht ideal, aber zumindest Ihre macOS wäre stabiler als die Installation instabiler Kernel-Erweiterungen, die viele Systemabstürze verursachen könnten.
Kommentare
- Lief mit
vagrant init ubuntu/xenial64; vagrant up --provider virtualbox
daubuntu/vivid64
nicht mehr verfügbar ist. - Verwenden Sie stattdessen
ubuntu/trusty64
.
Antwort
Ich hatte ein ext4-formatiertes USB-Laufwerk, das ich nach der Installation von osxfuse . Das Lesen funktioniert hervorragend, aber ich bin nicht sicher, ob das Schreiben sicher ist.
Auch zum Verschieben von Dateien aus dem Dateisystem von OS X ( HFS + ) bis ext4 möchten Sie möglicherweise zuerst diese versteckten .DS_Store-Dateien entfernen , in die sich das OS X-Dateisystem einschleicht, da sie gelegentlich fehlerhafte inodes .
find /my/data/to/move -name "*.DS_Store" -type f -delete
Es ist besser, als sie anschließend mit einer fsck .
Antwort
In MacPorts sind auch e2fsprogs verfügbar. Ich habe „t Ich habe es selbst getestet, sehe aber vielversprechend aus.
Antwort
Schauen Sie sich – > https://github.com/alperakcan/fuse-ext2
Dies werde ich als nächstes versuchen.
Für ext2 gibt es eine Macport-Version: https://ports.macports.org/port/ext2fuse/summary
Es gibt eine ein ext4-Modul für osxfuse (in dem Sie können Stall über Macports), aber es ist schreibgeschützt!
Die Vielzahl der Versionen ist etwas verwirrend, aber irgendwann hatte ich es geschafft, es zum Laufen zu bringen. Ich werde es erneut versuchen und diese Antwort aktualisieren, wenn dies der Fall ist . 🙂
osxfuse ist auf Macports und als eigenständiges Paket verfügbar. Ich weiß noch nicht, welche unter neueren OS X-Versionen am besten funktioniert, aber ich bevorzuge Macports für meine kostenlose Software unter OS X.