¿Existe una aplicación estable y segura para leer y escribir en sistemas de archivos ext4 en Mac   OS   X?

Si no es así, ¿cuál es la mejor manera de acceder al contenido de un sistema de archivos ext4 en Mac   OS   X?

Comentarios

  • Sería más que útil si especificara qué versión de OS X está ejecutando. Hay problemas de compatibilidad con las soluciones disponibles según la revisión del sistema operativo.

Respuesta

La respuesta depende de su voluntad de invertir en software comercial:

Si no le importa gastar algo de dinero en un producto comercial , extFS para Mac le dará acceso de lectura y escritura a los sistemas de archivos ext2 / ext3 / ext4. La versión actual es compatible s todas las versiones de OS X / macOS desde la 10.10 en adelante.

Si está buscando una solución gratuita , puede configurar una máquina virtual Linux, montar sus volúmenes allí y compartirlos a través de Samba o (S) FTP. Esta publicación contiene algunos detalles sobre cómo lograr esto usando VirtualBox , una aplicación de máquina virtual gratuita . Tenga en cuenta que esta no es exactamente una solución ligera, incluso si el uso de una VirtualBox VM precompilada le ahorrará la instalación y configuración de una distribución de Linux desde cero.

Comentarios

  • Seguramente hay ‘ una solución nonvm gratuita?
  • osboxes.org proporciona versiones más nuevas frente a virtualboxes.org.

Respuesta

Sobre la base de la respuesta de Ken: utilicé fuse4x y fuse-ext2 con éxito, y Recomiendo fuse-ext2 sobre ext4fuse. Fuse-ext2 proporciona acceso de escritura mientras que ext4fuse solo proporciona acceso de lectura. Tenga en cuenta que, a pesar de su nombre, fuse-ext2 es compatible con EXT2 / EXT3 / EXT4.

ext4fuse fue una molestia para mí , porque requiere compilación manual y no tiene soporte para las opciones de fuse4x que me permitirían configurar el control de acceso. fuse-ext2 proporciona paquetes descargables, y la versión 0.0.7 funcionó simplemente fi nordeste. Copié algunos ISO grandes sin ningún problema.

Comentarios

  • ¿puede fuse-ext2 montar cosas como de escritura o de solo lectura?

Respuesta

También se puede instalar OSXFUSE por completo a través de brew administrador de paquetes de línea de comandos:

brew install homebrew/fuse/ext4fuse 

Tenga en cuenta que la instalación indica que ciertos comandos deben ejecutarse como «sudo» además de esto.


Con Yosemite es mejor que eche un vistazo a esto . Y luego asegúrese de que su usuario pueda leer el directorio haciendo esto . Para que funcione, tuve que usar el grupo de la rueda como este:

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

Respuesta

Con los cambios recientes en homebrew, esto debería ser tan simple como:

brew cask install osxfuse brew install ext4fuse 

Puede que tenga que reiniciar.

ext4fuse es de solo lectura, desafortunadamente. Y es posible que deba usar una bandera para que funcione como un usuario normal.

Otros que vean esta pregunta pueden estar interesados en libguestfs . No estoy al tanto de un puerto OS X, pero considerando que VirtualBox tiene una API, no está fuera de discusión.

Me pregunto por qué nadie ha escrito una capa de compatibilidad para permitir el sistema de archivos del kernel de Linux código para ejecutar en el espacio de usuario / fusible. ¿O tiene alguien?

Respuesta

Respuesta actualizada para (High) Sierra

Para Sierra y High Sierra ext4fuse parece funcionar bien para solo acceso de lectura y, por lo tanto, Probablemente podría considerarse la opción preferida. Si bien otras respuestas ya brindan algunos ejemplos de uso, lo repetiré una vez más con algunos detalles importantes:

Instale ext4fuse con:

 brew install ext4fuse  

Puedes montar como un usuario normal, pero en ese caso solo podrás acceder a archivos legibles en todo el mundo, es por eso que para tener acceso completo necesita usar sudo, por ejemplo:

 sudo ext4fuse -o allow_other /dev/disk2s1  

Aquí hay un script bash que automatiza parcialmente el proceso.Cuando se inicie, creará automáticamente el punto de montaje después de que se le solicite que ingrese uno de los identificadores de dispositivo mostrados, como 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}  

Para desmontar, puede utilizar, por ejemplo, diskutil umount /dev/disk2s1 – si recibe un mensaje que indica que desmontar falló, entonces puede forzar el desmontaje con diskutil umount force /dev/disk2s1, aunque sería más limpio cerrar las aplicaciones que están usando los archivos en el disco y volver a intentar desmontar sin force.

Si tiene archivos propiedad de _lpoperator (aparentemente se crean cuando usa rsync con la opción de preservar grupo), entonces el siguiente comando permitirá acceder a esos archivos:

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

Respuesta original para Yosemite y versiones anteriores * ( obsoleto)

Se necesitan T * wo paquetes para habilitar el soporte EXT2 / 3/4 en OSX: OSXFUSE y FUSE-EXT2 .

El homebrew fórmulas para OSXFUSE y FUSE-EXT2 no funcionaron para mí en Mavericks o Yosemite.

Lo que funcionó fue lo siguiente:

  1. Descargar e instalar manualmente OSXFUSE DMG desde http://osxfuse.github.io/ . IMPORTANTE : una vez que inicie el instalador de PKG, asegúrese de seleccionar Capa de compatibilidad MacFUSE en el asistente (no está habilitado por defecto) – sin él recibía un error al intentar montar.
  2. Descargar manualmente FUSE-EXT2 desde http://sourceforge.net/projects/fuse-ext2/ o para Sierra / El Capitan de https://github.com/gpz500/fuse-ext2/releases y ejecute el Instalador PKG.

Una vez que tenga OSXFUSE y FUSE-EXT2 instalados, puede montar las particiones ext2 / ext3 / ext4 como se menciona en otras respuestas:

  1. Busque el nombre del dispositivo para la partición EXT que desea montar (por ejemplo, disk0s2 en el siguiente ejemplo, (ACTUALIZAR) en versiones posteriores de MacOS, las particiones ext3 / ext4 podrían estar etiquetadas como Datos básicos de Microsoft y no Linux ):

     1: Linux_Swap 8.2 GB disk0s1 2: Linux 119.9 GB disk0s2  
  2. Monte la partición en un punto de montaje existente:

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

Montaje como un usuario regular no funcionó para mí. Probablemente esto se pueda arreglar jugando con los permisos, pero no lo miré.

Nota: Mi sospecha es que las fórmulas de homebrew no funcionaron porque homebrew instala osxfuse sin la Capa de compatibilidad MacFUSE .

Hay dos paquetes osxfuse en homebrew:

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

Ambas versiones no pueden montar particiones EXT. Lo más probable es que la versión DMG (Caskroom/cask/osxfuse) falla porque homebrew instala el paquete con la configuración predeterminada, lo que significa que la Capa de compatibilidad MacFUSE no está incluida. La versión principal osxfuse probablemente necesite algún parámetro de instalación especial para habilitar la compatibilidad con MacFUSE, por lo que hasta que esto se solucione en homebrew, se debe usar el método DMG manual.

Este método funcionó en mavericks, yosemite, el capitan y sierra.

Script de montaje EXT2 / 3/4 para versiones anteriores de OSX (obsoleto)

Para ahorrar algo de escritura adicional, utilizo una secuencia de comandos diminuta que toma el nombre de la partición, como disk0s2 y lo monta en /Volumes/disk0s2, creando la carpeta si es necesario:

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

Se llama al script con el nombre de partición que busca a través de diskutil list, p. ej. mount_ext4.sh disk2s3.

Comentarios

  • Intenté esto pero, lamentablemente, aparece el error FUSE-EXT2 could not mount /dev/disk2s2 at /Volumes/ext4 because the following problem occurred: (pero no hay una descripción o referencia del problema). He instalado el complemento Compability Layer. Yo ‘ m en macOS Sierra, así que probé la versión Github gzp500.

Respuesta

Si se está preguntando cuál es la línea de comando para montar una partición ext4 usando fuse y ext2fuse (por ejemplo, cuando se instala usando MacPorts port install ext2fuse), primero debe trabajar donde está la partición de Linux:

diskutil list 

Esto mostrará una lista de todas las particiones para todos los discos y, entre ellas, debería ver las relevantes enumeradas en la columna TIPO como Linux Combine el diskX y el número de partición Y así / dev / diskXsY – e.g:

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

Puede quejarse de no poder escribir en el archivo de registro, pero aún así debería montar la partición en el punto de montaje de su hogar. Pero si desea montar la partición en un directorio del sistema, debe ejecutarla como root, por ejemplo:

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

Si eso no funciona, intente:

sudo ext2fuse /dev/disk1s2 /sys_mount_point 

Actualización : más recientemente he encontrado que fuse-ext2 tiene problemas con ciertas funciones más nuevas de ext4, por lo que es mejor usar ext4fuse (port install ext4fuse o brew install ext4fuse). Use el comando ext4fuse directamente:

ext4fuse /dev/disk1s2 ~/mount_point 

Además, como lo menciona Timothy en los comentarios, generalmente solo necesita usar sudo si está montando fuera de su directorio de inicio o el disco (/ dev / diskX) solo es accesible por root:

sudo ext4fuse /dev/disk1s2 /sys_mount_point 

Debe tenerse en cuenta que solo puede acceder a ese sistema de archivos montado como root / sudo. Por ejemplo,

sudo ls /sys_mount_point 

Y para desmontar el sistema de archivos, simplemente use umount (con sudo si se usa para montar la partición):

umount ~/mount_point 

Comentarios

  • Usted solo necesita acceder a la unidad como raíz si la monta fuera de su directorio de inicio. Puede cd ~, mkdir mnt, ext4fuse /dev/diskXsY mnt, ls -la mnt sin sudo / root.
  • mount: exec /Library/Filesystems/fuse-ext2.fs/Contents/Resources/ mount_fuse-ext2 para …: No existe tal archivo o directorio

Respuesta

Solo para que conste, he probado el controlador Paragon ExtFS (versión de prueba) en mi MacBook Pro para escribir en la partición ext4 en Linux. Descubrí que el controlador era muy inestable y creaba daños en el sistema de archivos que fsck no pudo reparar ni en Linux ni en la Utilidad de Discos.

Mi La idea era tener acceso a mi partición /home desde Mac OS X usando este controlador Paragon, pero no sugiero hacer esta configuración. Hasta ahora, tengo mi /home partición en Linux formateada a hfsplus sin registro en diario, y luego puedo acceder a mis archivos desde Mac OS X. Por supuesto, de vez en cuando obtengo algunos problemas en mi FS pero no es muy frecuente. Sin embargo, tampoco sugiero esta configuración (al menos que tenga una copia de seguridad actualizada para su trabajo diario).

Finalmente, creo que Paragon es más adecuado para usarlo en discos duros externos, pero de todos modos no es muy confiable por ser un software cuya licencia es costosa.

Actualización: Desde mayo de 2015, he formateado mi / home a ext4, y monto el sistema de archivos usando fuse-ext2 en combinación con FUSE para OS X. Puedo acceder a la partición ext4 para leer y escribir. Es una configuración más sólida que la que describí anteriormente.

Comentarios

  • Puedo confirmar la última entrada aquí donde el controlador Paragon ExtFS puede causar algunos problemas graves en sus unidades Linux. Para mí, que es de arranque dual OSX y Linux, paragon creó corrupciones en mi / dispositivo. Esto fue fácil de resolver pero, sin embargo, no es una solución estable …
  • Más mala experiencia con el controlador Paragon ExtFS. Pánicos constantes del kernel que conducen al reinicio del sistema, corrupción del sistema de archivos (afortunadamente, fsck en la caja de Linux funcionó). Probé en dos unidades externas diferentes con los mismos resultados.

Respuesta

Puede iniciar Linux VM rápidamente en tu OS X usando Vagrant . Debes instalar el proveedor de VM como VirtualBox y Vagrant , ya sea a través del archivo .dmg del sitio o usando brew cask .

Una vez que tenga el comando vagrant instalado, ejecútelo en cualquier carpeta seleccionada:

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

Esto generará Vagrantfile archivo de configuración y .vagrant carpeta.

y tendrá el cuadro de Linux arrancado en unos minutos (descargado de Atlas Hashicorp repositorio).

Luego conéctese al cuadro mediante el comando: vagrant ssh y intentan montar su dispositivo dentro de Linux.

De forma predeterminada, su carpeta actual se sincronizará con la carpeta /vagrant en la VM. Para obtener opciones más avanzadas, puede modificar con la configuración requerida.

Por lo tanto, si monta su sistema de archivos dentro de la carpeta /vagrant, se sincronizará automáticamente con tu macOS.


Alternativamente, solo necesita instalar un VirtualBox , ejecutar la aplicación GUI, instalar y arrancar una versión mínima de Linux, por ejemplo. Ubuntu para lograr lo mismo que se explicó anteriormente.


La solución no nativa anterior no es ideal, pero al menos su macOS sería más estable en lugar de instalar extensiones de kernel inestables que pueden causar muchos fallos del sistema.

Comentarios

  • Se ejecutó con vagrant init ubuntu/xenial64; vagrant up --provider virtualbox ya que ubuntu/vivid64 ya no está disponible.
  • Intente usar ubuntu/trusty64 en su lugar.

Respuesta

Tenía una unidad USB con formato ext4 que pude montar después de instalar osxfuse . Leer de él funciona muy bien, pero no estoy seguro de si escribir es seguro.

Además, para mover archivos desde el sistema de archivos de OS X ( HFS + ) a ext4, es posible que primero desee eliminar esos archivos .DS_Store ocultos que el sistema de archivos OS X se cuela ya que ocasionalmente causan inodos .

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

Es mejor que tener que arreglarlos después con un comando fsck .

Respuesta

También hay e2fsprogs disponibles en MacPorts. No he lo probé yo mismo, pero parece prometedor.

Respuesta

Eche un vistazo a – > https://github.com/alperakcan/fuse-ext2

Esto es lo que intentaré a continuación.

Para ext2, hay una versión de macports: https://ports.macports.org/port/ext2fuse/summary

Hay un módulo ext4 para osxfuse (que puede en stall a través de macports) ¡pero es de solo lectura!

La multitud de versiones es un poco confusa, pero en un momento logré que funcionara, intentaré nuevamente y actualizaré esta respuesta si funciona . 🙂

osxfuse está disponible en macports y como paquete independiente. Todavía no sé cuál funciona mejor en las versiones más recientes de OS X, pero prefiero macports para mi software gratuito en OS X.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *