Sería más que útil si especificara qué versión de OS X está ejecutando. Hay problemas de compatibilidad con las soluciones disponibles dependiendo de la revisión del sistema operativo.
kopischke
Respuestas:
60
La respuesta depende de su disposición a invertir en software comercial:
Si no le importa gastar dinero en un producto comercial , extFS para Mac de Paragon le dará acceso de lectura y escritura a los sistemas de archivos ext2 / ext3 / ext4. La versión actual admite todas las versiones de OS X / macOS desde 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 tiene 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 VM VirtualBox preconstruida le ahorrará la instalación y configuración de una distribución de Linux desde cero.
¿Seguramente hay una solución gratuita que no sea VM?
Pacerier
osboxes.org ofrece versiones más nuevas frente a virtualboxes.org.
Tim
36
Sobre la base de la respuesta de Ken: utilicé fuse4x y fuse-ext2 con éxito, y recomiendo fuse-ext2 sobre ext4fuse.
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ó bien. Copié algunos ISO grandes sin ningún problema.
¿puede fuse-ext2 montar cosas como grabables o solo de lectura?
Knocte
25
También se puede instalar OSXFUSE completamente a través del administrador de paquetes de línea de comandos brew :
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, mejor mira esto . Y luego asegúrese de que su usuario pueda leer el directorio haciendo esto . Para que funcione, tuve que usar el grupo de ruedas de esta manera:
Con los cambios recientes a 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 conozco un puerto OS X, pero teniendo en cuenta que VirtualBox tiene una API, no está fuera de discusión.
Me pregunto por qué nadie ha escrito una capa de compatibilidad para permitir que el código del sistema de archivos del kernel de Linux se ejecute en el espacio de usuario / fusible. O tiene alguien?
Si se pregunta 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), entonces primero debe averiguar dónde está la partición de Linux:
diskutil list
Esto enumerará 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, por ejemplo:
mount -t fuse-ext2 /dev/disk1s2 ~/my_mount_point
Puede quejarse de no poder escribir en el archivo de registro, pero aún así debe montar la partición en su punto de montaje de inicio. Pero si desea montar la partición en un directorio del sistema, entonces 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 descubrí que fuse-ext2 tiene problemas con ciertas características más recientes de ext4, por lo que es mejor usar ext4fuse ( port install ext4fuseo brew install ext4fuse). Use el comando ext4fuse directamente:
ext4fuse /dev/disk1s2 ~/mount_point
También, como mencionó Timothy en los comentarios, generalmente solo necesita usar sudosi está montando fuera de su directorio de inicio o si el disco (/ dev / diskX) solo es accesible desde la raíz:
sudo ext4fuse /dev/disk1s2 /sys_mount_point
Cabe señalar que solo puede acceder a ese sistema de archivos montado como root / sudo. p.ej
sudo ls /sys_mount_point
Y para desmontar el sistema de archivos, simplemente use el umountcomando normal (con sudo si se usa para montar la partición):
Solo necesita acceder al disco como root si lo monta fuera de su directorio de inicio. Puede cd ~, mkdir mnt, ext4fuse /dev/diskXsY mnt, ls -la mntsin sudo / root.
Timothy Zorn
mount: exec /Library/Filesystems/fuse-ext2.fs/Contents/Resources/mount_fuse-ext2 for ...: No existe dicho archivo o directorio
Wolfgang Fahl
9
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 fsckno podía reparar ni en Linux ni en Disk Utility.
Mi idea era tener acceso a mi /homepartición desde Mac OS X usando este controlador Paragon, pero no sugiero hacer esta configuración. Hasta ahora, tengo mi /homepartición en Linux formateada hfsplussin diario, y luego puedo acceder a mis archivos desde Mac OS X. Por supuesto, de vez en cuando tengo 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 quizás para usarlo en discos duros externos, pero de todos modos no es muy confiable por ser un software cuya licencia es costosa.
Actualización: a partir de mayo de 2015, he formateado mi / home a ext4, y monte 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.
Puedo confirmar la última entrada aquí donde el controlador Paragon ExtFS puede causar problemas en sus unidades de Linux. Para mí, que está iniciando dualmente OSX y Linux, Paragon creó corrupciones en mi / dispositivo. Esto fue fácil de resolver, pero no es una solución estable ...
Más mala experiencia con el controlador Paragon ExtFS. Pánico constante del kernel que conduce al reinicio del sistema, corrupción del sistema de archivos (afortunadamente fsck en Linux box funcionó). Probado en dos unidades externas diferentes con los mismos resultados.
9
Puede iniciar Linux VM rápidamente en su OS X usando Vagrant . Debe instalar un proveedor de VM, como VirtualBox y Vagrant, ya sea a través del archivo .dmg desde el sitio o utilizando brew cask .
Una vez que tenga el vagrantcomando instalado, ejecute esto en cualquier carpeta seleccionada:
vagrant init ubuntu/trusty64; vagrant up --provider virtualbox
Esto generará el Vagrantfilearchivo de configuración y la .vagrantcarpeta.
y tendrá la caja de Linux arrancada en pocos minutos (descargada del repositorio de Atlas Hashicorp ).
Luego, conéctese a la caja mediante el comando: vagrant sshe intente montar su dispositivo dentro de Linux.
Por defecto, su carpeta actual se sincronizará con la /vagrantcarpeta en VM. Para opciones más avanzadas, puede modificar Vagrantfilecon la configuración requerida.
Entonces, si monta su sistema de archivos dentro de la /vagrantcarpeta, se sincronizará automáticamente con su 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.
Las soluciones no nativas anteriores no son ideales, pero al menos su macOS sería más estable en lugar de instalar extensiones de kernel inestables que pueden causar muchos bloqueos del sistema.
Funcionó con vagrant init ubuntu/xenial64; vagrant up --provider virtualboxcomo ubuntu/vivid64ya no está disponible.
Fredrik Erlandsson
Intente usar ubuntu/trusty64en su lugar.
kenorb
8
Tenía una unidad USB con formato ext4 que pude montar después de instalar osxfuse . Leerlo funciona muy bien, pero no estoy seguro de si escribir es seguro.
Para Sierra y High Sierra, ext4fuse parece funcionar bien solo para 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:
Puede montar como usuario normal, pero en ese caso solo podrá acceder a archivos legibles en todo el mundo, es por eso que necesita un acceso completo 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 que se muestran, 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 usar, por ejemplo diskutil umount /dev/disk2s1, si recibe un mensaje de que el desmontaje falló, puede forzar el desmontaje con diskutil umount force /dev/disk2s1, aunque sería más limpio cerrar las aplicaciones que están usando archivos en el disco y volver a intentar desmontar sin él force.
Si tiene archivos de propiedad _lpoperator(aparentemente se crean cuando usa rsync con la opción de preservar grupo), el siguiente comando le permitirá acceder a esos archivos:
/usr/sbin/dseditgroup -o edit -a everyone -t group _lpoperator
Respuesta original para Yosemite y mayores (en desuso)
Se necesitan dos paquetes para habilitar el soporte EXT2 / 3/4 en OSX: OSXFUSE y FUSE-EXT2 .
Los caseros fórmulas para OSXFUSE y el fusible-EXT2 no funcionó para mí en cualquiera de rebeldes o Yosemite.
Lo que funcionó fue lo siguiente:
Descargue e instale manualmente el DMG OSXFUSE desde http://osxfuse.github.io/ . IMPORTANTE : una vez que inicie el instalador de PKG, asegúrese de haber seleccionado la Capa de compatibilidad de MacFUSE en el asistente (no está habilitado de forma predeterminada), sin él recibí un error al intentar montar.
Una vez que haya instalado OSXFUSE y FUSE-EXT2, 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, disk0s2en el ejemplo a continuación, (ACTUALIZAR) en versiones posteriores de MacOS, las particiones ext3 / ext4 pueden etiquetarse como Datos básicos de Microsoft y no Linux ):
# diskutil list | grep 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 mkdir -p /Volumes/ext4
sudo mount -t fuse-ext2 /dev/disk0s2 /Volumes/ext4
El montaje como usuario habitual no funcionó para mí. Probablemente esto se puede solucionar jugando con los permisos, pero no lo investigué.
Nota: Mi sospecha es que las fórmulas homebrew no funcionaron porque homebrew se instala osxfusesin la Capa de compatibilidad MacFUSE .
Ambas versiones no pueden montar particiones EXT. Lo más probable es que la versión DMG ( Caskroom/cask/osxfuse) falle porque homebrew instala el paquete con la configuración predeterminada, lo que significa que la Capa de compatibilidad MacFUSE no está incluida. La osxfuseversión principal probablemente necesita algún parámetro de instalación especial para habilitar la compatibilidad con MacFUSE, por lo tanto, hasta que esto se solucione en homebrew, se debe usar el método DMG manual.
Este método me funcionó en rebeldes, yosemite, elcapitan y sierra.
Script de montaje EXT2 / 3/4 para versiones anteriores de OSX (en desuso)
Para guardar algo de tipeo adicional, uso un pequeño script que toma el nombre de la partición, como disk0s2y lo monta debajo /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"
La secuencia de comandos se llama con el nombre de la partición que busca diskutil list, por ejemplo mount_ext4.sh disk2s3.
Intenté esto pero desafortunadamente recibí 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 Capa de compatibilidad. Estoy en macOS Sierra, así que probé la versión Github gzp500.
Winterflags
6
También hay e2fsprogs disponibles en MacPorts. Todavía no lo he probado, pero parece prometedor.
Respuestas:
La respuesta depende de su disposición a invertir en software comercial:
Si no le importa gastar dinero en un producto comercial , extFS para Mac de Paragon le dará acceso de lectura y escritura a los sistemas de archivos ext2 / ext3 / ext4. La versión actual admite todas las versiones de OS X / macOS desde 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 tiene 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 VM VirtualBox preconstruida le ahorrará la instalación y configuración de una distribución de Linux desde cero.
fuente
Sobre la base de la respuesta de Ken: utilicé fuse4x y fuse-ext2 con éxito, y recomiendo fuse-ext2 sobre ext4fuse.
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ó bien. Copié algunos ISO grandes sin ningún problema.
fuente
También se puede instalar OSXFUSE completamente a través del administrador de paquetes de línea de comandos brew :
Tenga en cuenta que la instalación indica que ciertos comandos deben ejecutarse como 'sudo' además de esto.
Con Yosemite, mejor mira esto . Y luego asegúrese de que su usuario pueda leer el directorio haciendo esto . Para que funcione, tuve que usar el grupo de ruedas de esta manera:
fuente
Con los cambios recientes a homebrew, esto debería ser tan simple como:
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 conozco un puerto OS X, pero teniendo en cuenta que VirtualBox tiene una API, no está fuera de discusión.
Me pregunto por qué nadie ha escrito una capa de compatibilidad para permitir que el código del sistema de archivos del kernel de Linux se ejecute en el espacio de usuario / fusible. O tiene alguien?
fuente
Si se pregunta 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
), entonces primero debe averiguar dónde está la partición de Linux:Esto enumerará 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, por ejemplo:
Puede quejarse de no poder escribir en el archivo de registro, pero aún así debe montar la partición en su punto de montaje de inicio. Pero si desea montar la partición en un directorio del sistema, entonces debe ejecutarla como root, por ejemplo:
Si eso no funciona, intente:
Actualización : más recientemente descubrí que fuse-ext2 tiene problemas con ciertas características más recientes de ext4, por lo que es mejor usar ext4fuse (
port install ext4fuse
obrew install ext4fuse
). Use el comando ext4fuse directamente:También, como mencionó Timothy en los comentarios, generalmente solo necesita usar
sudo
si está montando fuera de su directorio de inicio o si el disco (/ dev / diskX) solo es accesible desde la raíz:Cabe señalar que solo puede acceder a ese sistema de archivos montado como root / sudo. p.ej
Y para desmontar el sistema de archivos, simplemente use el
umount
comando normal (con sudo si se usa para montar la partición):fuente
cd ~
,mkdir mnt
,ext4fuse /dev/diskXsY mnt
,ls -la mnt
sin sudo / root.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 podía reparar ni en Linux ni en Disk Utility.Mi idea era tener acceso a mi
/home
partición desde Mac OS X usando este controlador Paragon, pero no sugiero hacer esta configuración. Hasta ahora, tengo mi/home
partición en Linux formateadahfsplus
sin diario, y luego puedo acceder a mis archivos desde Mac OS X. Por supuesto, de vez en cuando tengo 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 quizás para usarlo en discos duros externos, pero de todos modos no es muy confiable por ser un software cuya licencia es costosa.
Actualización: a partir de mayo de 2015, he formateado mi / home a ext4, y monte 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.
fuente
Puede iniciar Linux VM rápidamente en su OS X usando Vagrant . Debe instalar un proveedor de VM, como VirtualBox y Vagrant, ya sea a través del archivo .dmg desde el sitio o utilizando brew cask .
Una vez que tenga el
vagrant
comando instalado, ejecute esto en cualquier carpeta seleccionada:Esto generará el
Vagrantfile
archivo de configuración y la.vagrant
carpeta.y tendrá la caja de Linux arrancada en pocos minutos (descargada del repositorio de Atlas Hashicorp ).
Luego, conéctese a la caja mediante el comando:
vagrant ssh
e intente montar su dispositivo dentro de Linux.Por defecto, su carpeta actual se sincronizará con la
/vagrant
carpeta en VM. Para opciones más avanzadas, puede modificarVagrantfile
con la configuración requerida.Entonces, si monta su sistema de archivos dentro de la
/vagrant
carpeta, se sincronizará automáticamente con su 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.
Las soluciones no nativas anteriores no son ideales, pero al menos su macOS sería más estable en lugar de instalar extensiones de kernel inestables que pueden causar muchos bloqueos del sistema.
fuente
vagrant init ubuntu/xenial64; vagrant up --provider virtualbox
comoubuntu/vivid64
ya no está disponible.ubuntu/trusty64
en su lugar.Tenía una unidad USB con formato ext4 que pude montar después de instalar osxfuse . Leerlo funciona muy bien, pero no estoy seguro de si escribir es seguro.
Además, para mover archivos del sistema de archivos de OS X ( HFS + ) a ext4, es posible que primero desee eliminar esos archivos .DS_Store ocultos en los que se cuela el sistema de archivos de OS X, ya que ocasionalmente causan inodos incorrectos .
Es mejor que tener que arreglarlos después con un comando fsck .
fuente
Respuesta actualizada para (Alta) Sierra
Para Sierra y High Sierra, ext4fuse parece funcionar bien solo para 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:
Puede montar como usuario normal, pero en ese caso solo podrá acceder a archivos legibles en todo el mundo, es por eso que necesita un acceso completo
sudo
, por ejemplo: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 que se muestran, como
disk2s1
:Para desmontar, puede usar, por ejemplo
diskutil umount /dev/disk2s1
, si recibe un mensaje de que el desmontaje falló, puede forzar el desmontaje condiskutil umount force /dev/disk2s1
, aunque sería más limpio cerrar las aplicaciones que están usando archivos en el disco y volver a intentar desmontar sin élforce
.Si tiene archivos de propiedad
_lpoperator
(aparentemente se crean cuando usa rsync con la opción de preservar grupo), el siguiente comando le permitirá acceder a esos archivos:Respuesta original para Yosemite y mayores (en desuso)
Se necesitan dos paquetes para habilitar el soporte EXT2 / 3/4 en OSX: OSXFUSE y FUSE-EXT2 .
Los caseros fórmulas para OSXFUSE y el fusible-EXT2 no funcionó para mí en cualquiera de rebeldes o Yosemite.
Lo que funcionó fue lo siguiente:
Una vez que haya instalado OSXFUSE y FUSE-EXT2, 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 ejemplo a continuación, (ACTUALIZAR) en versiones posteriores de MacOS, las particiones ext3 / ext4 pueden etiquetarse como Datos básicos de Microsoft y no Linux ):# diskutil list | grep 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 mkdir -p /Volumes/ext4 sudo mount -t fuse-ext2 /dev/disk0s2 /Volumes/ext4
El montaje como usuario habitual no funcionó para mí. Probablemente esto se puede solucionar jugando con los permisos, pero no lo investigué.
Nota: Mi sospecha es que las fórmulas homebrew no funcionaron porque homebrew se instala
osxfuse
sin la Capa de compatibilidad MacFUSE .Hay dos
osxfuse
paquetes en homebrew:Ambas versiones no pueden montar particiones EXT. Lo más probable es que la versión DMG (
Caskroom/cask/osxfuse
) falle porque homebrew instala el paquete con la configuración predeterminada, lo que significa que la Capa de compatibilidad MacFUSE no está incluida. Laosxfuse
versión principal probablemente necesita algún parámetro de instalación especial para habilitar la compatibilidad con MacFUSE, por lo tanto, hasta que esto se solucione en homebrew, se debe usar el método DMG manual.Este método me funcionó en rebeldes, yosemite, elcapitan y sierra.
Script de montaje EXT2 / 3/4 para versiones anteriores de OSX (en desuso)
Para guardar algo de tipeo adicional, uso un pequeño script que toma el nombre de la partición, como
disk0s2
y lo monta debajo/Volumes/disk0s2
, creando la carpeta si es necesario:La secuencia de comandos se llama con el nombre de la partición que busca
diskutil list
, por ejemplomount_ext4.sh disk2s3
.fuente
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 Capa de compatibilidad. Estoy en macOS Sierra, así que probé la versión Github gzp500.También hay e2fsprogs disponibles en MacPorts. Todavía no lo he probado, pero parece prometedor.
fuente