Existe-t-il une application sûre et stable pour lire et écrire dans les systèmes de fichiers ext4 sur Mac   OS   X?

Sinon, quelle est la meilleure façon daccéder au contenu de un système de fichiers ext4 sur Mac   OS   X?

Commentaires

  • Il serait plus quutile de spécifier la version dOS X que vous utilisez. Il existe des problèmes de compatibilité avec les solutions disponibles en fonction de la révision du système dexploitation.

Réponse

La réponse dépend de votre volonté dinvestir dans des logiciels commerciaux:

Si cela ne vous dérange pas de dépenser de largent pour un produit commercial , extFS pour Mac vous donnera un accès en lecture et en écriture aux systèmes de fichiers ext2 / ext3 / ext4. La version actuelle prend en charge s toutes les versions dOS X / macOS à partir de la version 10.10.

Si vous recherchez une solution gratuite , vous pouvez configurer une machine virtuelle Linux, y monter votre (vos) volume (s) et les partager via Samba ou (S) FTP. Ce message contient quelques détails sur la façon dy parvenir en utilisant VirtualBox , une application de machine virtuelle gratuite . Notez que ce nest pas exactement une solution légère, même si lutilisation dune VM VirtualBox prédéfinie vous évitera dinstaller et de configurer une distribution Linux à partir de zéro.

Commentaires

  • Sûrement il y a ‘ une solution nonvm gratuite?
  • osboxes.org propose des versions plus récentes que virtualboxes.org.

Réponse

Suite à la réponse de Ken: jai utilisé avec succès fuse4x et fuse-ext2 , et Je recommande fuse-ext2 plutôt que ext4fuse. Fuse-ext2 fournit un accès en écriture tandis quext4fuse fournit uniquement un accès en lecture. Notez que malgré son nom, fuse-ext2 prend en charge EXT2 / EXT3 / EXT4.

ext4fuse a été un problème pour moi , car il nécessite une compilation manuelle et ne prend pas en charge les options fuse4x qui me permettraient de définir le contrôle daccès. fuse-ext2 fournit des packages téléchargeables, et la version 0.0.7 fonctionnait juste fi ne. Jai copié quelques grandes images ISO sans aucun problème.

Commentaires

  • Est-ce que fuse-ext2 peut monter des choses en écriture ou en lecture seule?

Réponse

On peut également installer OSXFUSE complètement via le infusion gestionnaire de paquets en ligne de commande:

brew install homebrew/fuse/ext4fuse 

Notez que linstallation indique que certaines commandes doivent être exécutées en tant que « sudo » en plus de cela.


Avec Yosemite, mieux vaut regarder ceci . Ensuite, assurez-vous que le répertoire est lisible par votre utilisateur en effectuant ceci . Pour que cela fonctionne, jai dû utiliser le groupe de roues comme celui-ci:

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

Réponse

Avec les modifications récentes apportées à lhomebrew, cela devrait être aussi simple que:

brew cask install osxfuse brew install ext4fuse 

Vous devrez peut-être redémarrer.

ext4fuse est en lecture seule, malheureusement. Et vous devrez peut-être utiliser un indicateur pour le faire fonctionner en tant quutilisateur normal.

Dautres personnes qui consultent cette question peuvent être intéressées par libguestfs . Je ne connais pas un port OS X, mais étant donné que VirtualBox a une API, ce nest pas hors de question.

Je me demande pourquoi personne na écrit de couche de compatibilité pour autoriser le système de fichiers du noyau Linux code à exécuter dans lespace utilisateur / fusible. Ou quelquun a-t-il?

Réponse

Réponse mise à jour pour (High) Sierra

Pour Sierra et High Sierra ext4fuse semble bien fonctionner pour accès en lecture seule et donc elle pourrait probablement être considérée comme loption préférée. Alors que d’autres réponses donnent déjà quelques exemples d’utilisation, je vais le répéter avec quelques détails importants:

Installez ext4fuse avec:

 brew install ext4fuse  

Vous pouvez monter en tant quutilisateur normal mais dans ce cas, vous ne pourrez accéder à des fichiers lisibles par le monde, cest pourquoi pour un accès complet, vous devez utiliser sudo, par exemple:

 sudo ext4fuse -o allow_other /dev/disk2s1  

Voici un script bash qui automatise partiellement le processus.Une fois lancé, il créera automatiquement le point de montage après que vous « serez invité à entrer lun des identificateurs de périphérique affichés tels que 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}  

Pour démonter, vous pouvez utiliser par exemple diskutil umount /dev/disk2s1 – si vous recevez un message indiquant que le démontage échoué, vous pouvez forcer le démontage avec diskutil umount force /dev/disk2s1, bien quil serait plus simple de fermer les applications qui utilisent les fichiers sur le disque et de réessayer le démontage sans force.

Si vous avez des fichiers appartenant à _lpoperator (apparemment, ils sont créés lorsque vous utilisez rsync avec loption de conservation du groupe), alors la commande suivante permettra daccéder à ces fichiers:

 /usr/sbin/dseditgroup -o edit -a everyone -t group _lpoperator  

Réponse originale pour Yosemite et les anciens * ( obsolète)

T * wo packages sont nécessaires pour activer le support EXT2 / 3/4 sur OSX: OSXFUSE et FUSE-EXT2 .

Le homebrew formules pour OSXFUSE et FUSE-EXT2 ne fonctionnait pas pour moi sur non-conformistes ou yosemite.

Voici ce qui a fonctionné:

  1. Téléchargement et installation manuels de OSXFUSE DMG à partir de http://osxfuse.github.io/ . IMPORTANT : une fois que vous avez lancé le programme dinstallation de PKG, assurez-vous davoir sélectionné MacFUSE Compatibility Layer dans lassistant (il nest pas activé par défaut) – sans cela, jobtenais une erreur en essayant de monter.
  2. Téléchargez manuellement FUSE-EXT2 depuis http://sourceforge.net/projects/fuse-ext2/ ou pour Sierra / El Capitan à partir de https://github.com/gpz500/fuse-ext2/releases et exécutez le Installateur PKG.

Une fois OSXFUSE et FUSE-EXT2 installés, vous pouvez monter les partitions ext2 / ext3 / ext4 comme mentionné dans dautres réponses:

  1. Recherchez le nom de périphérique de la partition EXT que vous souhaitez monter (par exemple, disk0s2 dans lexemple ci-dessous, (UPDATE) dans les versions ultérieures de MacOS, les partitions ext3 / ext4 peuvent être étiquetées Microsoft Basic Data et non Linux ):

     1: Linux_Swap 8.2 GB disk0s1 2: Linux 119.9 GB disk0s2  
  2. Montez la partition sur un point de montage existant:

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

Montage comme un utilisateur régulier ne fonctionnait pas pour moi. Cela peut probablement être résolu en jouant sur les autorisations, mais je nai pas examiné la question.

Remarque: je soupçonne que les formules homebrew nont pas fonctionné car homebrew installe osxfuse sans la couche de compatibilité MacFUSE .

Il y a deux packages osxfuse dans homebrew:

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

Les deux versions ne parviennent pas à monter les partitions EXT. Très probablement, la version DMG (Caskroom/cask/osxfuse) échoue car homebrew installe le package avec les paramètres par défaut, ce qui signifie que MacFUSE Compatibility Layer nest pas inclus. La version principale de osxfuse a probablement besoin un paramètre dinstallation spécial pour activer la compatibilité MacFUSE, donc jusquà ce que cela soit corrigé dans homebrew, la méthode DMG manuelle devrait être utilisée.

Cette méthode fonctionnait sur les mavericks, yosemite, el capitan et sierra.

Script de montage EXT2 / 3/4 pour les anciennes versions OSX (obsolète)

Pour économiser un peu de frappe supplémentaire, jutilise un petit script qui prend le nom de la partition comme disk0s2 et le monte sous /Volumes/disk0s2, créant le dossier si nécessaire:

 ### mount_ext4.sh sudo mkdir -p "/Volumes/$1" sudo mount -t fuse-ext2 "/dev/$1" "/Volumes/$1" open "/Volumes/$1"  

Le script est appelé avec le nom de partition qui vous recherchez via diskutil list, par exemple mount_ext4.sh disk2s3.

Commentaires

  • Jai essayé mais malheureusement obtenez lerreur FUSE-EXT2 could not mount /dev/disk2s2 at /Volumes/ext4 because the following problem occurred: (mais il ny a pas de description ou de référence du problème). Jai installé laddon Compability Layer. Jai ‘ m sous macOS Sierra, jai donc essayé la version Github gzp500.

Réponse

Si vous » vous demandez quelle est la ligne de commande pour monter une partition ext4 à laide de fuse et ext2fuse (par exemple, lors de linstallation avec MacPorts port install ext2fuse) – alors vous devez dabord travailler là où se trouve la partition Linux:

diskutil list 

Cela listera toutes les partitions pour tous les disques et parmi elles, vous devriez voir les partitions pertinentes listées sous la colonne TYPE comme Linux Combinez le diskX et le numéro de partition Y comme ceci / dev / diskXsY – e.g:

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

Il peut se plaindre de ne pas pouvoir écrire dans le fichier journal mais il devrait quand même monter la partition dans votre point de montage dorigine. Mais si vous souhaitez monter la partition dans un répertoire système, vous devez lexécuter en tant que root, par exemple:

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

Si cela ne fonctionne pas, essayez:

sudo ext2fuse /dev/disk1s2 /sys_mount_point 

Mise à jour : Plus récemment, jai « trouvé » que fuse-ext2 a des problèmes avec certaines fonctionnalités ext4 plus récentes, il est donc préférable dutiliser ext4fuse (port install ext4fuse ou brew install ext4fuse). Utilisez directement la commande ext4fuse:

ext4fuse /dev/disk1s2 ~/mount_point 

Également comme mentionné par Timothy dans les commentaires, vous navez généralement besoin que de sudo si vous « montez en dehors de votre répertoire personnel ou que le disque (/ dev / diskX) nest accessible que par root:

sudo ext4fuse /dev/disk1s2 /sys_mount_point 

Il convient de noter que vous peut uniquement accéder à ce système de fichiers monté en tant que root / sudo. par exemple

sudo ls /sys_mount_point 

Et pour démonter le système de fichiers, utilisez simplement umount (avec sudo si utilisé pour monter la partition):

umount ~/mount_point 

Commentaires

  • Vous il suffit daccéder au lecteur en tant que root si vous le montez en dehors de votre répertoire personnel. Vous pouvez cd ~, mkdir mnt, ext4fuse /dev/diskXsY mnt, ls -la mnt sans sudo / root.
  • mount: exec /Library/Filesystems/fuse-ext2.fs/Contents/Resources/ mount_fuse-ext2 pour …: aucun fichier ou répertoire de ce type

Réponse

Pour mémoire, jai testé le pilote Paragon ExtFS (version dessai) sur mon MacBook Pro pour écrire sur la partition ext4 sous Linux. Jai trouvé que le pilote était très instable, et il a créé des corruptions du système de fichiers que fsck ne pouvait pas réparer ni sous Linux ni dans Utilitaire de disque.

Mon lidée était davoir accès à ma partition /home depuis Mac OS X en utilisant ce pilote Paragon, mais je ne suggère pas de faire cette configuration. Jusquà présent, jai mon /home partition sous Linux formatée en hfsplus sans journalisation, puis je peux accéder à mes fichiers depuis Mac OS X. Bien sûr, de temps en temps, je reçois quelques problèmes dans mon FS mais ce nest pas très fréquent. Cependant, je ne suggère pas cette configuration non plus (au moins que vous ayez une sauvegarde à jour pour votre travail quotidien).

Enfin, je crois que Paragon est peut-être plus approprié pour être utilisé pour des disques durs externes mais de toute façon il nest pas très fiable car il sagit dun logiciel dont la licence est chère.

Mise à jour: Depuis mai 2015, jai formaté mon / home en ext4, et je monte le système de fichiers en utilisant fuse-ext2 en combinaison avec FUSE pour OS X. Je peux accéder à la partition ext4 pour lire et écrire. Cest une configuration plus solide que celle que jai décrite précédemment.

Commentaires

  • Je peux confirmer la dernière entrée ici où le pilote Paragon ExtFS peut causer de gros problèmes sur vos lecteurs Linux. Pour moi, qui double OSX et Linux, paragon a créé des corruptions sur mon / appareil. Cétait facile à résoudre mais ce nest pas une solution stable …
  • Encore une mauvaise expérience avec le pilote Paragon ExtFS. Paniques constantes du noyau menant au redémarrage du système, corruption du système de fichiers (heureusement, fsck sur Linux a fonctionné). Jai essayé sur deux disques externes différents avec les mêmes résultats.

Réponse

Vous pouvez démarrer Linux VM rapidement sur votre OS X en utilisant Vagrant . Vous devez installer un fournisseur de VM tel que VirtualBox et Vagrant via le fichier .dmg à partir du site ou en utilisant brew cask .

Une fois la commande vagrant installée, exécutez-la dans nimporte quel dossier sélectionné:

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

Cela générera le fichier de configuration Vagrantfile et .vagrant dossier.

et vous aurez » Linux box démarré en quelques minutes (téléchargé depuis Atlas Hashicorp référentiel).

Ensuite connectez-vous à la boîte via la commande: vagrant ssh et essaient de monter votre appareil sous Linux.

Par défaut, votre dossier actuel sera synchronisé avec le dossier /vagrant de la VM. Pour des options plus avancées, vous pouvez modifier avec la configuration requise.

Donc, si vous montez votre système de fichiers dans le dossier /vagrant, il sera automatiquement synchronisé avec votre macOS.


Sinon, il vous suffit dinstaller une VirtualBox , dexécuter lapplication GUI, dinstaller et de démarrer une version minimale de Linux, par exemple. Ubuntu afin dobtenir les mêmes résultats que ceux expliqués ci-dessus.


Les solutions non natives ci-dessus ne sont pas idéales, mais au moins votre macOS serait plus stable que dinstaller des extensions de noyau instables qui peuvent provoquer de nombreux plantages du système.

Commentaires

  • Ran with vagrant init ubuntu/xenial64; vagrant up --provider virtualbox as ubuntu/vivid64 nest plus disponible.
  • Essayez dutiliser ubuntu/trusty64 à la place.

Réponse

Javais une clé USB au format ext4 que jai pu monter après avoir installé osxfuse . La lecture fonctionne très bien, mais je ne suis pas sûr que l’écriture soit sûre.

Aussi, pour déplacer des fichiers depuis le système de fichiers OS X ( HFS + ) à ext4, vous pouvez dabord supprimer ces fichiers .DS_Store cachés dans le système de fichiers OS X car ils causent parfois des problèmes inodes .

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

Il vaut mieux que de devoir les corriger après avec un fsck .

Réponse

Il y a aussi e2fsprogs disponible dans MacPorts. Je nai pas « t Je lai pourtant testé moi-même mais semble prometteur.

Réponse

Jetez un œil à – > https://github.com/alperakcan/fuse-ext2

Voici ce que je vais essayer ensuite.

Pour ext2, il existe une version macports: https://ports.macports.org/port/ext2fuse/summary

Il y a un module ext4 pour osxfuse (que vous pouvez stall via macports) mais il est en lecture seule!

La multitude de versions est un peu déroutante mais à un moment donné javais réussi à le faire fonctionner, je vais réessayer et mettre à jour cette réponse si cest le cas . 🙂

osxfuse est disponible sur macports et en tant que package autonome. Je ne sais pas lequel fonctionne le mieux sur les nouvelles versions dOS X, mais je préfère macports pour mon logiciel gratuit sous OS X.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *