Montando Partições NTFS no Debian

Introdução

O suporte a escrita em partições NTFS sempre foi um problema no Linux. Por ser um sistema de arquivos proprietário, não documentado e bastante complexo, desenvolver um driver capaz de escrever em partições Windows formatadas em NTFS, sem risco de corromper os dados gravados, é um desafio formidável.

Isto era um grande problema para quem mantinha o Windows em dual-boot, pois era possível apenas ler os arquivos da partição. Como o Windows também não suporta nenhum dos sistemas de arquivos usados no Linux, você acabava sendo obrigado a instalar o Windows em uma partição FAT32 (o que tem suas desvantagens, já que ele é um sistema muito mais propenso a problemas, suportava um espaço formatado bem menor e correntemente fragmentava), ou pelo menos manter uma partição FAT32 disponível, para servir como uma ‘área de troca’ entre os dois sistemas.

Até hoje, o driver que havia chegado mais perto era o Paragon, um software comercial, caro e que ainda por cima tinha a desvantagem de ser bastante lento. Num distante segundo lugar, tínhamos o Captive, que modificava partições NTFS usando o próprio driver do Windows. Apesar de ser aberto, o Captive era complicado de instalar, ainda mais lento que o Paragon e ainda por cima pouco estável, corrompendo com freqüência os dados da partição.

O NTFS-3g pode ser considerado o primeiro driver de escrita em partições NTFS para Linux realmente utilizável.

Ao invés de ser um driver complexo, incluído no Kernel, o NTFS-3g funciona em cima do Fuse, um módulo que permite criar drivers para sistemas de arquivo que rodam como programas comuns do lado do usuário. Outro bom exemplo de driver que roda sobre o Fuse é o EncFS que permite montar diretórios criptografados no seu sistema ou o GmailFS que permite que você monte seu email do gmail como se fosse um diretório no seu Linux.

Graças ao Fuse, você não precisa se preocupar com headers e patches do Kernel. É só instalar e usar.

Vale lembrar que a leitura em NTFS já existia para o super usuário.

Instalando programas necessários

O Debian Etch 4.0 não saiu com o suporte ao NTFS-3g, mas o seu irmão mais novo o Debian o ‘lenny’, já tem o pacote que fará a alegria dos usuários do Etch. Muitos podem perguntar sobre incompatibilidades e problemas, mas não precisam se preocupar, pois o NTFS-3g não depende de nenhum pacote além dos já conhecidos do Etch.

Então vamos lá, primeiramente é necessário editar o arquivo dos seus repositórios:

  # vi /etc/apt/sources.list

para tal, agora adicione a linha abaixo no seu arquivo:

  deb http://ftp.br.debian.org/debian/ testing main contrib non-free

feito isso, é necessário atualizar o repositório de pacotes:

  # apt-get update

para instalar o NTFS-3g direto do ‘testing’ sem precisar de muita loucura:

  # apt-get install -t testing ntfs-3g

pronto, o programa necessário está instalado, remova a linha adicionada no ‘/etc/apt/sources.list’ e de o comando:

  # apt-get update

novamente. Um detalhe, para que tudo isso funcione é necessário que o FUSE esteja instalado e funcionando, então execute os comandos de instalação do FUSE abaixo como root só para confirmar:

  # apt-get install fuse-utils libfuse2

ainda faltam alguns passos antes da mágica.

Configurações necessárias

Antes de poder montar como usuário, você deve adicionar o seu usuário ao grupo ‘fuse’ para que ele possa se valer dos programas que funcionam sobre ele da seguinte forma, como root:

  # adduser <usuário> fuse

Montando o dispositivo NTFS

Agora podemos nos deliciar montando o dispositivo NTFS como usuário. Para facilitar ao leitor, que faltamente não vai saber qual o dispositivo que contém sua partição NTFS, podemos executar o seguinte comando como root:

  # fdisk -l
Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes  Device  Boot  Start  End  Blocks  Id  System
/dev/hda1   *           1        1275    10241406    7  HPFS/NTFS
/dev/hda3            1276       13604    99032692+  83  Linux
/dev/hda4           13605       14593     7944142+  83  Linux

como podemos ver, no meu caso, o dispositivo NTFS é o ‘/dev/hda1′, onde no ‘System’ diz HPFS/NTFS. Feito isso, como usuário normal vamos montar o dispositivo NTFS da seguinte forma:

  $ mkdir ~/Windows  $ ntfs-3g /dev/hda1 ~/Windows

quando você fizer isso, vai ver o seguinte ‘AVISO’:

  WARNING: Deficient Linux kernel detected. Some driver features are
not available (swap file on NTFS, boot from NTFS by LILO), and
unmount is not safe unless it's made sure the ntfs-3g process
naturally terminates after calling 'umount'. If you wish this
message to disappear then you should upgrade to at least kernel
version 2.6.20, or request help from your distribution to fix
the kernel problem. The below web page has more information:
http://www.ntfs-3g.org/support.html#fuse26

esse aviso quer dizer que o kernel Linux 2.6.18-4-686 que você provavelmente está utilizando não suporta que você utilize uma partição NTFS para ’swap’ nem ‘boot’ para o Linux, e o processo de desmontar pode não ser totalmente seguro caso você não espere o comando ‘umount’ realmente terminar. Para que essa mensagem desapareça devemos utilizar um kernel Linux 2.6.20 ou superior, coisa que será explicada no nosso artigo Compilando o Kernel para o Debian. Mas podem ficar despreocupados, o kernel Linux 2.6.18 suporta todas as operações sem problemas. Ao realizar este comando sua partição NTFS estará totalmente funcional, tanto para escrita, quanto para leitura.

Montando no Boot

Você também pode usar o ‘/etc/fstab’ para montar o Windows para um determinado usuário poderíamos inserir uma linha como a abaixo para montar o /home/usuario/Windows como mostrado antes:

  /dev/hda1 /home/usario/Windows ntfs-3g ro,uid=1000 0 0

onde o uid é o uid do usuário que vai acessar como escrita o dispositivo. O uid do usuário pode ser encontrado no arquivo ‘/etc/passwd’ que vai conter informações no formato:

  usuario:x:1000:1000:Nome do Usuário,,,:/home/usuario:/bin/bash

o primeiro ‘1000′ é o uid e o segundo é o gid, basta então colocar o uid no fstab e tudo pronto, ao iniciar o seu Linux, o diretório do Windows já estará devidamente montado.

Fonte: http://www.debian-ms.org/mediawiki/index.php/Ntfs-3g

6 comentários até agora

  1. Gilberto on 15 Novembro 2007

    po valeu ae.. estas dicas ae.. salvou minha pele… valeu mano…

  2. berlotto on 1 Dezembro 2007

    bahhh confirmado mesmo !
    Valeu ai diogo !

  3. Julierme on 19 Fevereiro 2008

    Cara fufa mesmo e muito fácil muito bom!!!!
    Valeu diogo !!!

  4. :P on 17 Março 2008

    Salvou minha vida. (2)
    Excelente blog!

    Cheers!

  5. Ulisses (Cigano on 26 Março 2008

    Ótimo tutorial que vc esta ajudando a divulgar, foi feito pela comunidade aki do meu estado MS (Debian-MS)

    Graças á esse tutorial eu consegui configurar os meus ntfs !!!

    Gostei do teu blog, simples e informativo sem muita perfumaria!!!!

    Parabens !!!

  6. Fabio Reche on 3 Maio 2008

    Boa Diogo,funcionou aqui também. Debian etch rodando.

Leave a reply