Existe um aplicativo seguro e estável para ler e gravar em sistemas de arquivos ext4 no Mac   OS   X?

Se não, qual é a melhor maneira de acessar o conteúdo do um sistema de arquivos ext4 no Mac   OS   X?

Comentários

  • Seria mais do que útil se você especificasse qual versão do OS X está executando. Existem problemas de compatibilidade com as soluções disponíveis, dependendo da revisão do sistema operacional.

Resposta

A resposta depende da sua disposição de investir em software comercial:

Se você não se importa em gastar algum dinheiro em um produto comercial , extFS para Mac da Paragon lhe dará acesso de leitura e gravação aos sistemas de arquivos ext2 / ext3 / ext4. O suporte à versão atual s todas as versões do OS X / macOS de 10.10 em diante.

Se você está procurando uma solução gratuita , você pode configurar uma máquina virtual Linux, montar seu (s) volume (s) lá e compartilhá-los via Samba ou (S) FTP. Esta postagem contém alguns detalhes sobre como fazer isso usando o VirtualBox , um aplicativo de máquina virtual gratuito . Observe que esta não é exatamente uma solução leve, mesmo se usar uma VirtualBox VM pré-construída irá poupar você de instalar e configurar uma distribuição Linux do zero.

Comentários

  • Certamente existe ‘ uma solução não vm gratuita?
  • osboxes.org fornece versões mais recentes vs virtualboxes.org.

Resposta

Com base na resposta de Ken: usei fuse4x e fuse-ext2 com sucesso e Eu recomendo fuse-ext2 em vez de ext4fuse. Fuse-ext2 fornece acesso de gravação, enquanto ext4fuse fornece apenas acesso de leitura. Observe que, apesar de seu nome, fuse-ext2 oferece suporte a EXT2 / EXT3 / EXT4.

ext4fuse foi um aborrecimento para mim , porque requer compilação manual e não tem suporte para opções de fuse4x que me permitiriam definir o controle de acesso. fuse-ext2 fornece pacotes para download e a versão 0.0.7 funcionou apenas fi ne. Copiei algumas ISOs grandes sem nenhum problema.

Comentários

  • o fuse-ext2 pode montar coisas como graváveis ou somente leitura?

Resposta

Também é possível instalar o OSXFUSE completamente por meio da brew gerenciador de pacotes de linha de comando:

brew install homebrew/fuse/ext4fuse 

Observe que a instalação diz que certos comandos precisam ser executados como “sudo” além disso.


Com o Yosemite, é melhor dar uma olhada nisso . E, em seguida, certifique-se de que o diretório possa ser lido por seu usuário, fazendo isso . Para que funcionasse, tive que usar o grupo wheel como este:

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

Resposta

Com as mudanças recentes no homebrew, isso deve ser tão simples quanto:

brew cask install osxfuse brew install ext4fuse 

Você pode ter que reiniciar.

ext4fuse é somente leitura, infelizmente. E você pode precisar usar um sinalizador para fazê-lo funcionar como um usuário normal.

Outros vendo esta questão podem estar interessados em libguestfs . Não estou ciente de uma porta OS X, mas considerando que o VirtualBox tem uma API, não está fora de questão.

Eu me pergunto por que ninguém escreveu uma camada de compatibilidade para permitir o sistema de arquivos do kernel Linux código a ser executado no espaço do usuário / fusível. Ou alguém?

Resposta

Resposta atualizada para (High) Sierra

Para Sierra e High Sierra ext4fuse parece funcionar bem para acesso somente leitura e, portanto, provavelmente poderia ser considerada a opção preferida. Embora outras respostas já dêem alguns exemplos de uso, irei repeti-lo mais uma vez com alguns detalhes importantes:

Instale o ext4fuse com:

 brew install ext4fuse  

Você pode montar como um usuário normal, mas nesse caso você “só poderá acessar arquivos legíveis por todos, é por isso que para acesso total você precisa usar sudo, por exemplo:

 sudo ext4fuse -o allow_other /dev/disk2s1  

Aqui está um script bash que automatiza parcialmente o processo.Quando iniciado, ele criará automaticamente o ponto de montagem após você ser solicitado a inserir um dos identificadores de dispositivo exibidos, 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, você pode usar, por exemplo, diskutil umount /dev/disk2s1 – se receber uma mensagem de desmontagem falhou, então você pode forçar a desmontagem com diskutil umount force /dev/disk2s1, embora seja mais limpo fechar os aplicativos que estão usando os arquivos no disco e tentar desmontar novamente sem force.

Se você tiver arquivos pertencentes a _lpoperator (aparentemente, eles são criados quando você usa rsync com a opção preservar grupo), o seguinte comando permitirá o acesso a esses arquivos:

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

Resposta original para Yosemite e mais antigos * ( obsoleto)

Pacotes T * wo são necessários para habilitar o suporte EXT2 / 3/4 no OSX: OSXFUSE e FUSE-EXT2 .

O homebrew fórmulas para OSXFUSE e FUSE-EXT2 não funcionou para mim em mavericks ou yosemite.

O que funcionou foi o seguinte:

  1. Baixar e instalar manualmente o OSXFUSE DMG de http://osxfuse.github.io/ . IMPORTANTE : Depois de iniciar o instalador PKG, certifique-se de selecionar MacFUSE Compatibility Layer no assistente (não está habilitado por padrão) – sem ele, eu recebia um erro ao tentar montar.
  2. Baixe manualmente FUSE-EXT2 em http://sourceforge.net/projects/fuse-ext2/ ou para Sierra / El Capitan de https://github.com/gpz500/fuse-ext2/releases e execute o Instalador PKG.

Depois de instalar o OSXFUSE e o FUSE-EXT2, você pode montar as partições ext2 / ext3 / ext4 conforme mencionado em outras respostas:

  1. Encontre o nome do dispositivo para a partição EXT que deseja montar (por exemplo, disk0s2 no exemplo abaixo, (ATUALIZAÇÃO) nas versões posteriores do MacOS, partições ext3 / ext4 podem ser rotuladas como Microsoft Basic Data e não Linux ):

     1: Linux_Swap 8.2 GB disk0s1 2: Linux 119.9 GB disk0s2  
  2. Monte a partição em um ponto de montagem existente:

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

Montagem como um usuário regular não funcionou para mim. Provavelmente isso pode ser corrigido alterando as permissões, mas eu não olhei para isso.

Nota: Minha suspeita é que as fórmulas do homebrew não funcionaram porque o homebrew instala osxfuse sem a MacFUSE Compatibility Layer .

Existem dois osxfuse pacotes no homebrew:

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

Ambas as versões falham ao montar partições EXT. Provavelmente, a versão DMG (Caskroom/cask/osxfuse) falha porque o homebrew instala o pacote com as configurações padrão, o que significa que a MacFUSE Compatibility Layer não está incluída. A versão osxfuse principal provavelmente precisa alguns parâmetros de instalação especiais para habilitar a compatibilidade do MacFUSE, então até que isso seja corrigido no homebrew, o método DMG manual deve ser usado.

Este método funcionou em mavericks, yosemite, el capitan e sierra.

Script de montagem EXT2 / 3/4 para versões OSX mais antigas (obsoleto)

Para economizar digitação extra, uso um pequeno script que pega o nome da partição como disk0s2 e o monta em /Volumes/disk0s2, criando a pasta, se necessário:

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

O script é chamado com o nome da partição que você procura por meio de diskutil list, por exemplo mount_ext4.sh disk2s3.

Comentários

  • Tentei, mas infelizmente recebi o erro FUSE-EXT2 could not mount /dev/disk2s2 at /Volumes/ext4 because the following problem occurred: (mas não há descrição ou referência do problema). Instalei o complemento Compability Layer. Eu ‘ m no macOS Sierra, então tentei a versão Github gzp500.

Resposta

Se você” está se perguntando o que é a linha de comando para montar uma partição ext4 usando fuse e ext2fuse (por exemplo, quando instalado usando MacPorts port install ext2fuse) – então primeiro você precisa trabalhar onde está a partição do Linux:

diskutil list 

Isso irá listar todas as partições para todos os discos e entre elas você deve ver as relevantes listadas na coluna TYPE como Linux Combine o diskX e o número da partição Y assim / dev / diskXsY – e.g:

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

Ele pode reclamar sobre não ser capaz de gravar no arquivo de log, mas ainda deve montar a partição em seu ponto de montagem doméstico. Mas se você deseja montar a partição em um diretório de sistema, você precisa executá-la como root, por exemplo:

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

Se isso não funcionar, tente:

sudo ext2fuse /dev/disk1s2 /sys_mount_point 

Atualização : Mais recentemente, descobri esse fuse-ext2 tem problemas com certos recursos ext4 mais recentes, então, em vez disso, é melhor usar ext4fuse (port install ext4fuse ou brew install ext4fuse). Use o comando ext4fuse diretamente:

ext4fuse /dev/disk1s2 ~/mount_point 

Também conforme mencionado por Timothy nos comentários, você normalmente só precisa usar sudo se você estiver montando fora do seu diretório pessoal ou o disco (/ dev / diskX) está acessível apenas pelo root:

sudo ext4fuse /dev/disk1s2 /sys_mount_point 

Deve-se notar que você só pode acessar esse sistema de arquivos montado como root / sudo. Ex:

sudo ls /sys_mount_point 

E para desmontar o sistema de arquivos, você apenas usa o umount (com sudo se usado para montar a partição):

umount ~/mount_point 

Comentários

  • Você só precisa acessar a unidade como root se montá-la fora de seu diretório inicial. Você pode cd ~, mkdir mnt, ext4fuse /dev/diskXsY mnt, ls -la mnt sem sudo / root.
  • mount: exec /Library/Filesystems/fuse-ext2.fs/Contents/Resources/ mount_fuse-ext2 para …: Não existe tal arquivo ou diretório

Resposta

Só para constar, testei o driver Paragon ExtFS (versão de teste) em meu MacBook Pro para gravar em partição ext4 no Linux. Descobri que o driver estava muito instável e criou corrupções no sistema de arquivos que fsck não foi capaz de reparar nem no Linux nem no Utilitário de disco.

Meu idéia era ter acesso à minha partição /home do Mac OS X usando este driver Paragon, mas não sugiro fazer esta configuração. Até agora, tenho meu /home partição no Linux formatada para hfsplus sem registro no diário, e então posso acessar meus arquivos do Mac OS X. Claro, de vez em quando eu consigo alguns problemas no meu FS mas não é muito frequente. No entanto, também não sugiro esta configuração (pelo menos que tenha uma cópia de segurança actualizada para o seu trabalho diário).

Por fim, acredito que O Paragon é mais adequado talvez para uso em discos rígidos externos, mas de qualquer forma não é muito confiável por ser um software cuja licença é cara.

Atualização: Em maio de 2015, formatei meu / home em ext4, e eu monto o sistema de arquivos usando fuse-ext2 em combinação com FUSE para OS X. Eu posso acessar a partição ext4 para ler e escrever. É uma configuração mais sólida do que a descrita anteriormente.

Comentários

  • Posso confirmar a última entrada aqui onde o driver Paragon ExtFS pode causar alguns problemas graves em seus discos Linux. Para mim, que faço dualbooting OSX e Linux, o Paragon criou corrupções no meu / dispositivo. Isso foi fácil de resolver, mas não é uma solução estável …
  • Mais uma experiência ruim com o driver ExtFS da Paragon. Pânicos consistentes no kernel levando à reinicialização do sistema, corrupção do sistema de arquivos (felizmente o fsck no Linux box funcionou). Tentei em duas unidades externas diferentes com os mesmos resultados.

Resposta

Você pode inicializar Linux VM rapidamente em seu OS X usando o Vagrant . Você precisa instalar um provedor de VM como VirtualBox e Vagrant por meio do arquivo .dmg site ou usando o barril de cerveja .

Depois de ter o vagrant comando instalado, execute-o em qualquer pasta selecionada:

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

Isso irá gerar Vagrantfile arquivo de configuração e .vagrant pasta.

e você terá o Linux box inicializado em alguns minutos (baixado de Atlas Hashicorp repositório).

Em seguida, conecte-se à caixa por meio do comando: vagrant ssh e tentam montar seu dispositivo dentro do Linux.

Por padrão, sua pasta atual será sincronizado com a pasta /vagrant na VM. Para opções mais avançadas, você pode modificar com a configuração necessária.

Portanto, se você montar seu sistema de arquivos dentro da pasta /vagrant, ele será automaticamente sincronizado de volta para seu macOS.


Alternativamente, você só precisa instalar um VirtualBox , executar o aplicativo GUI, instalar e inicializar uma versão mínima do Linux, por exemplo Ubuntu para conseguir o mesmo explicado acima.


As soluções não nativas acima não são ideais, mas pelo menos sua O macOS seria mais estável do que instalar extensões de kernel instáveis, o que pode causar muitas falhas no sistema.

Comentários

  • Executado com vagrant init ubuntu/xenial64; vagrant up --provider virtualbox como ubuntu/vivid64 não está mais disponível.
  • Tente usar ubuntu/trusty64 em vez disso.

Resposta

Eu tinha uma unidade USB formatada em ext4 que consegui montar depois de instalar osxfuse . Ler dele funciona muito bem, mas não tenho certeza se escrever é seguro.

Além disso, para mover arquivos do sistema de arquivos do OS X ( HFS + ) para ext4, você pode primeiro querer remover esses arquivos .DS_Store ocultos que o sistema de arquivos OS X entra, pois ocasionalmente podem causar inodes .

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

É melhor do que ter que corrigi-los depois com um fsck .

Resposta

Há também e2fsprogs disponível em MacPorts. Eu não “t testei sozinho, mas parece promissor.

Resposta

Dê uma olhada em – > https://github.com/alperakcan/fuse-ext2

Isso é o que tentarei a seguir.

Para ext2, existe uma versão macports: https://ports.macports.org/port/ext2fuse/summary

Existe um módulo ext4 para osxfuse (que você pode em travar via macports), mas é somente leitura!

A infinidade de versões é um pouco confusa, mas em um ponto eu consegui fazê-lo funcionar, tentarei novamente e atualizarei esta resposta se funcionar . 🙂

o osxfuse está disponível em macports e como um pacote independente. Não sei qual funciona melhor ainda nas versões mais recentes do OS X, mas prefiro macports para meu software livre no OS X.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *