Como montar uma partição HFS no Ubuntu como Read / Write?

169

Conectei meu disco rígido externo (que foi formatado no meu Mac em HFS + journaled) no meu desktop Ubuntu 9.04 64bit. Não consigo montar a unidade com capacidade de gravação, como faço isso? No momento, tudo o que estou recebendo é acesso de leitura, tentei

sudo mount -t hfsplus /dev/sdf2 /media/"Portable HD"

mas isso ainda me deu apenas acesso de leitura ... ideias ??

GiH
fonte
Sinto que as respostas a esta pergunta são muito melhores, mais fáceis e mais seguras do que as respostas fornecidas aqui.
Mike Williamson

Respostas:

75

Você precisa desativar o registro no diário para escrever no Ubuntu. O Ubuntu tem suporte apenas para gravar volumes HFS + não registrados no diário.

No seu Mac:

  • Abra o Utilitário de Disco em Aplicativos -> Utilitários
  • Selecione o volume para ativar o registro no diário.
  • Escolha Desativar registro no diário no menu Arquivo. (Nas versões posteriores do Mac OS, mantenha o botão de opção pressionado quando você clicar no menu Arquivo. Ou se desejar Apple+ J)

Desabilitar o registro no diário do HFS + ainda é possível até o OS X Yosemite 10.10

John T
fonte
4
Note que "Desativação de diário em sua partição OS X principal não é recomendado, porém, como journaling é uma característica importante de qualquer sistema de arquivos que podem evitar danos e perda de dados" ( help.ubuntu.com/community/hfsplus )
Hay
@Como você pode reativar o registro no diário. Tudo o que faz é ajudar o sistema a se recuperar mais rapidamente em um evento como esse (ou seja, desligamento anormal). Não é o fim do mundo.
John T
11
Não, isso não é tudo o que o diário faz. Também ajuda a impedir a corrupção do sistema de arquivos, que pode ser grave o suficiente para ser corrigida apenas com uma reformatação.
Wade Williams
8
no MacOS 10.6.8, no passo 3, abra o menu arquivo com "opção + alt" pressionado
commonpike
2
@JohnT Você poderia, por favor, fornecer uma fonte para o fato de que "o Ubuntu só tem suporte para gravar volumes HFS + não registrados em diário", por favor? Estou fazendo uma pesquisa sobre HFS + e seria muito útil. Obrigado.
precisa saber é
187

Primeiro, verifique se você tem o hfsprogs instalado. Exemplo de comando de instalação:

sudo apt-get install hfsprogs

Em seguida, monte ou remonte a unidade HFS +; Os comandos precisam ser os seguintes:

sudo mount -t hfsplus -o force,rw /dev/sdx# /media/mntpoint

ou

sudo mount -t hfsplus -o remount,force,rw /dev/sdx# /mount/point

Por fim, se a unidade foi desmontada incorretamente ou ficou parcialmente corrompida, execute fsck.hfsplus (fornecido aqui pela Jayson) como tal:

sudo fsck.hfsplus /dev/sdx#
Digiground
fonte
7
Muito obrigado por fornecer uma solução apenas para Linux! ^ _ ^
FCTW
13
Estou no Ubuntu 12.04, o comando remount deve ser assim sudo mount -t hfsplus -o remount,force,rw /dev/sdx# /mount/point. Em seguida, deve usar o root para ler / gravar dados.
Coc
19
Por que isso não está marcado como resposta?
Sheljohn
4
O @Digiground e o @Coc falham mount: warning: /media/mount/point seems to be mounted read-only.no Ubuntu 13.04 com o hfsprogs instalado.
aqui
1
@aqui eu levantei uma pergunta para resolver exatamente esse problema.
Kinbiko 21/05
27

Você pode ativar a gravação no HFS + no Linux, mesmo que não tenha desativado o registro no diário. Além do hfsplus que você já possui, é necessário ter o hfsprogs instalado:

sudo apt-get install hfsprogs

Em seguida, use a -o forceopção:

sudo mount -o force /dev/sdX /your/mount/point

Se a unidade foi montada automaticamente (como em um sistema de desktop como o Ubuntu), você pode ativar a gravação com

sudo mount -o remount,rw,force /mount/point

ou

sudo mount -o remount,rw,force /dev/sdx

/ mount / point geralmente seria / media / Your_drive_label / dev / sdx é o seu dispositivo HFS +

Use mount -lpara descobrir qual dispositivo já está montado em qual ponto de montagem.

mivk
fonte
1
da resposta do Digiground, você não perde a parte rw no comando ?? Eu consegui com as opções dele.
meduz 26/01
@meduz: Eu não precisava do "rw" no Ubuntu 10.04. Parece que preciso agora no 12.04. Então, eu editei a resposta para adicioná-lo.
Mivk
13

Você tentou combinar permissões?

Por padrão, o Mac OS X formata volumes em volumes HFS + registrados no diário. O registro no diário é um recurso que melhora a confiabilidade dos dados e, infelizmente, torna as unidades HFS somente leitura no Linux.

Para desativar o registro no diário, basta inicializar no OS X e iniciar o Utilitário de Disco. Clique na sua partição HFS, mantenha pressionada a tecla Opção e clique em Arquivo na barra de menus. Uma nova opção para Desativar diário será exibida no menu. Clique nele e reinicie no Linux. Você deve ter acesso de leitura e gravação à sua partição HFS - no entanto, as permissões na pasta inicial do usuário do Mac impedirão a leitura ou gravação desses arquivos. só precisamos alterar nosso UID em um sistema operacional para que ele corresponda ao UID no outro. A menos que você tenha uma razão para escolher o contrário, mudaremos nosso UID do Linux para corresponder ao nosso OS X, pois é um pouco mais fácil. Por padrão, o primeiro usuário no OS X tem um UID de 501, mas você pode verificar isso acessando Preferências do sistema no OS X, clicando com o botão direito do mouse no usuário e pressionando Opções avançadas.

Inicialize no Linux (estamos usando o Ubuntu neste exemplo) e inicie o Terminal. Primeiro, adicionaremos um usuário temporário, pois não queremos editar um usuário no qual estamos conectados no momento. Portanto, execute os seguintes comandos no Terminal, pressionando Enter após cada um:

sudo useradd -d /home/tempuser -m -s /bin/bash -G admin tempuser

sudo passwd tempuser

Digite uma nova senha para o usuário temporário quando solicitado. Reinicialize e faça login como tempuser. Em seguida, abra o Terminal e digite os seguintes comandos, mais uma vez pressionando enter após cada um (e substituindo seu nome de usuário pelo nome de usuário do usuário Linux):

sudo usermod --uid 501 yourusername

sudo chown -R 501:yourusername /home/yourusername

Isso mudará o UID do usuário do Linux para 501 e corrigirá as permissões da pasta pessoal para que você ainda seja o proprietário. Agora, você deve poder ler e gravar na pasta pessoal do usuário do Mac e Linux, independentemente do sistema operacional em que está conectado.

Você também pode corrigir sua tela de login, pois, por padrão, o Ubuntu não listará usuários com um UID menor que 1000. Para fazer isso, basta abrir um Terminal e executar gksudo gedit /etc/login.defs e procurar por UID_MIN em o arquivo de texto. Altere esse valor de 1000 para 501 e, quando você reiniciar, o usuário será listado na tela de login.

http://lifehacker.com/5702815/the-complete-guide-to-sharing-your-data-across-multiple-operating-systems

Steve Alfano
fonte
1
ótima solução! você acabou de me salvar algumas horas :) a única coisa a acrescentar é excluir o tempuser -> sudo userdel tempuser
Feida Kila