¿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
- ¿Seguro que hay ‘ una solución nonvm gratuita?
- osboxes.org proporciona versiones más nuevas frente a virtualboxes.org.
Respuesta
Basado en 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 admite 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 la 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 tengas 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. Mientras que otras respuestas ya dan 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 desmonta 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 funcionó para mí en Mavericks o Yosemite.
Lo que funcionó fue lo siguiente:
- Descargar e instalar manualmente OSXFUSE DMG desde http://osxfuse.github.io/ . IMPORTANTE : una vez que inicie el instalador de PKG, asegúrese de seleccionar la Capa de compatibilidad MacFUSE en el asistente. (no está habilitado de forma predeterminada) – sin él, recibía un error al intentar montar.
- 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:
-
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
-
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 puede 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 un poco más de escritura, utilizo un pequeño script 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 comandos 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 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 usar 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á el archivo de configuración Vagrantfile
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 VM. Para opciones más avanzadas, puede modificar con la configuración requerida.
Por tanto, si monta su sistema de archivos dentro de la carpeta /vagrant
, se sincronizará automáticamente de nuevo a tu macOS.
Alternativamente, solo necesita instalar una VirtualBox , ejecutar la aplicación GUI, instalar y arrancar una versión mínima de Linux, p. ej. 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 queubuntu/vivid64
ya no está disponible. - Intente utilizar
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. No sé cuál funciona mejor todavía en las versiones más recientes de OS X, pero prefiero macports para mi software gratuito en OS X.