segunda-feira, junho 02, 2008

FreeBSD: montando partições NTFS com leitura/escrita usando ntfs-3g


Temos na empresa um HD externo de 500GB para fazer backup, pois a solução fica a um custo bem baixo comparado a outras soluções no mercado, como fitaDat, pois existe a nescessidade deste backup ficar armazenado externamente.

Como o HD tem 500GB, não pude formatar em FAT32, apesar de FAT23 suportar um tamanho muito maior, pois o "MS Windows" dava erro de espaço muito grande para o tipo de partição, e não formatava a unidade corretamente com FAT32.
Então decidi usar o NTFS.

O FreeBSD tem suporte nativo para leitura em partições NTFS, mas não tem suporte para Gravação, por este motivo resolvi usar um modulo expecifico para isso, o NTFS-3G, que disponibiliza leitura e gravação na particição.

Recomendo primeiramente atualizar seu PORTS, pois iremos instalar pelo PORTS o NTFS-3G.

Abaixo segue a listagem dos comando e alguns comentarios:

# cd /usr/ports/sysutils/fusefs-ntfs
# make install clean
# rehash


Agora vamos montar a unidade.
No meu caso é uma HD Externo(Gaveta USB + HD SATA).
Após plugar o HD Externo, execute o comando "dmesg", e você verá se seu hardware foi reconhecido.

Abaixo segue o procedimento:

# dmesg
umass0: detached
umass0: DATAST0R Technology Corp SATA8000 FW1.0, rev 2.00/0.01, addr 2
da0 at umass-sim0 bus 0 target 0 lun 0
da0: Fixed Direct Access SCSI-0 device
da0: 1.000MB/s transfers
da0: 476940MB (976773168 512 byte sectors: 255H 63S/T 60801C)


O hardware foi reconhecido como "da0", então vamos montar a unidade para ser utilizada.

# mount_ntfs-3g /dev/da0s1 /mnt/
fuse: failed to open fuse device: no such file or directory


Bom, ocorreu esse erro ao tentar montar, isso quer dizer que ele não conseguiu carregar o device chamado fuse, então vamos carrega-lo.
Detalhe, ele não está no local padrão de devices, que é /boot/kernel.
Então vamos copiar ele, seguindo os procedimentos abaixo.

# cp /usr/local/modules/fuse.ko /boot/kernel/

Agora vamos carregar o modulo fuse.ko

# kldload /boot/kernel/fuse.ko

Pronto, vamos montar a unidade novamente.

# mount_ntfs-3g /dev/da0s1 /mnt/

Espero ter sanado todas as dúvidas.

Grande abraço a todos.

Referencias:
http://www.ntfs-3g.org/index.html

2 comentários:

Emerson disse...

Como eu faço pra carregar o módulo fuse.ko na inicialização ? Pq sempre q reinicio tenho q fazer manualmente.

Filippus´s Place disse...

Olá Emerson, tudo bom?
Da proxima vez, peço que coloque um e-mail ou seu endereço de Blog, ajuda a saber se você recebeu a resposta.

Bom, você pode acessar um post anterior no link http://rfilippus.blogspot.com/2008/06/freebsd-montando-parties-ntfs-com.html que fala no final sobre como fazer isto, mas ai vai a dica:

Basta editar o arquivo /boot/loader.conf e adicionar a seguinte linha:
fuse_load="YES"

Espero ter ajudado.