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