Total de visualizações de página

Eu sou:

Minha foto
"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original." Albert Einstein

sexta-feira, 14 de maio de 2010

Lendo e escrevendo em partições NTFS no Linux.

Fui vender meu peixe para um usuário de Windows e ele acabou aceitando fazer um teste com o Linux. Instalei em dual boot um Debian 5 Lenny-KDE customizado por mim mesmo, com tudo que tem direito e com sobras. Ele ficou impressionado com a leveza do sistema operacional, então fomos ver se podíamos acessar sua partição Windows como no Ubuntu que mostrei pra ele, mas ficamos só querendo. O Debian não acessou e tive que editar o arquivo /etc/fstab para que montasse a partição logo no boot, mas somente o usuário root conseguia acesso, matando qualquer tentativa do usuário comum fazer. No Ubuntu isso conseguimos fazer sem nenhuma dor de cabeça ou edição de arquivos, mas no Debian, seu pai, isso não é possível sem instalar as ferramentas necessárias.

A partir do Windows 2000 o sistema de arquivo adotado pela Microsoft foi o NTFS, que por ser do Windows, é proprietário e fechado para qualquer fuçador modificá-lo. As distribuições Linux antigas eram completamente incompatíveis na questão de escrita e leitura das partições em NTFS, hoje a coisa é mais fácil e sem fazer tantas gambiarras. Algumas distribuições já possuem nativamente suporte para esse formato, infelizmente o Debian 5 não possui, me fazendo pesquisar bastante a solução para ajudar tanto eu, na questão do aprendizado, quanto meu amigo com seu PC.

Descobri que há um driver que podemos instalar em nosso Linux, então ele monta a partição e ainda possibilita todos os usuários do PC acesso a ela, tanto para leitura e escrita. O ntfs-3g é um drive feito pela comunidade que fuça em Linux, possibilitando os sofredores do Windows ter acesso aos seus arquivos.

Primeiramente devemos fazer umas modificações em nosso sistema, para que ele fique redondo para depois usarmos o driver.

Carregando o módulo do fuse e instalando ntfs-3g

Abra um terminal como root e digite:

modprobe fuse


Depois temos que garantir que o fuse seja carregado na inicialização do sistema, então faça:

echo "fuse" >> /etc/modules

Com o comando acima, estamos escrevendo na ultima linha do
arquivo /etc/modules o comando que chama o fuse. Caso você queira abrir o arquivo e editar na unha faça:

kwrite /etc/modules

ou

vim /etc/modules

Faça do jeito que achar melhor, desde que o nome fuse fique no final do arquivo. Depois de editar o arquivo salve e vamos para o próximo passo.

Instalando o ntfs-3g

Vamos agora instalar as dependências necessárias para rodar o ntfs-3g, sendo assim, ainda como root, digite:

apt-get install libfuse2 fuse-utils

Depois instale o nosso ntfs-3g como o comando:

apt-get install ntfs-3g

Se fez tudo corretamente, seu sistema está pronto para montar dispositivos formatados em NTFS. Mas ainda temos criar o diretório referente a partição no diretório "media". Algumas distribuições montam esses dispositivos no diretório "mnt", vai depender de sua distribuição Linux. Estou me baseando nas distros com base Debian.

Quando montamos um dispositivo em Linux fazemos:


mount /dev/HD /media/HD

ou

mount /dev/pendrive /media/pendrive

Isso quando há um diretório /media/HD ou /media/pendrive, caso contrário temos que criar os diretórios na unha. Vou dar como exemplo do meu computador, que possui uma partição "Backup" formatada em NTFS, que no meu sistema é sdc5. Veja esquema abaixo?

nome label = Backup
partição = sdc5
Formato =NTFS

Para listar minhas partições usei o comando abaixo como root:

fdisk -l

Então achei minha partição NTFS assim:

Dispositivo Boot Start End Blocks Id System
/dev/sdc2 * 2 38913 312560640 f W95 Ext'd (LBA)
/dev/sdc5 2 38913 312560608+ 7 HPFS ou NTFS

Veja que minhas partição NTFS está definida como sdc5. Mas podia ser sdb2, sdc3 ou outra qualquer. Vou agora criar um diretório sdc5 em /media com o comando (usando root):

mkdir /media/sdc5



Agora já podemos usar o ntfs-3g para montar essa partição com o comando:

ntfs-3g -o umask=0,silent,locale=pt_BR.iso88591 /dev/sdc5 /media/sdc5

Traduzindo:
ntfs-3g = Driver usado na montagem

-o umask=0 = Todos os usuários do sistema terão acesso ao dispositivo
silent = remover mensagens de falhas de permissões de arquivos quando enviados para NTFS

locale=pt_BR.iso88591= Manter as acentuações e caracteres do pt_BR.
/dev/sdc5 /media/sdc5 = ponto de montagem do dispositivo

Com esse comando sua partição será montada e todos os usuários do sistema terão acesso de leitura e escrita. :)

Mas imagine que você não queira digitar esse comando a vida toda, preferindo que o arquivo seja montado na inicialização do sistema. Faça o seguinte:

Abra um terminal como root e digite(KDE):

kwrite /etc/fstab

ou digite (Gnome):

gedit /etc/fstab

Você vai abrir o arquivo de montagem de seus dispositivos, então cole no final o comando e salve:

/dev/sdc5 /media/sdc5 ntfs-3g silent,locale=pt_BR.iso88591,umask=0 0 0








Você vai ter sua partição NTFS já montada e pronta para usar. depois do boot . Mas você não quer que ela monte sozinha na inicialização do sistema? Então coloque o comando abaixo no final do arquivo:



/dev/sdc5 /media/ ntfs-3g noauto,silent,locale=pt_BR.iso88591,umask=0 0 0


Repare que há o parâmetro "noauto" nesse comando, que não monta sua partição de imediato, bastando apenas você montá-la com o comando correto. Simples.

Lembre-se que usei meu HD sdc5 para fazer essa pequeno post, devendo você identificar o seu e mudar para o seu. Espero que tenha ajudado.

Salve mestre
Morimoto!!!!















Um comentário:

  1. Excelente tutorial, me quebrou um galhão. Sou iniciante em Linux , e estou adorando o ubuntu.

    Obrigado!

    ResponderExcluir

Faça seus comentários :-)