Archive for the 'NTFS' Tag

Tudo sobre o sistemas de arquivos NTFS

Introdução
NTFS é a sigla para New Technology File System. Desde a época do DOS, a Microsoft vinha utilizando o sistema de arquivos FAT, que foi sofrendo variações ao longo do tempo, de acordo com o lançamento de seus sistemas operacionais. No entanto, o FAT apresenta algumas limitações, principalmente no quesito segurança. Por causa disso, a Microsoft lançou o sistema de arquivos NTFS, usado inicialmente em versões do Windows para servidores. Nas próximas linhas, você saberá a respeito do funcionamento do NTFS e conhecerá sua história.

Como o NTFS surgiu

O sistema de arquivos FAT é aceitável e perfeitamente funcional para a maioria dos usuários domésticos. Trata-se um sistema antigo, que mesmo com novas versões, herdou a simplicidade da primeira versão. As limitações do FAT, principalmente quanto à segurança, capacidade e confiança, fizeram do FAT um sistema de arquivos inadequado para uso em servidores e aplicações críticas. A Microsoft, estando ciente disso, decidiu desenvolver um sistema de arquivos que se adequasse aos princípios de funcionamento do Windows NT e lançou o New Technology File System, conhecido pela sigla NTFS. Entre os objetivos da idealização do NTFS estavam o fornecimento de um sistema de arquivos flexível, adaptável, altamente seguro e confiável. Sem dúvida, tais características fizeram do Windows NT um sistema operacional aceitável para as aplicações cujo seu desenvolvimento foi planejado.

A idéia de lançar o Windows NT surgiu em 1990, quando a Microsoft sentiu a necessidade de ter um sistema operacional com as qualidades citadas acima e com funcionalidades típicas de servidor. Nesta época, a Microsoft não tinha nenhum sistema que pudesse se equiparar ao poderoso Unix (tinha somente o MS-DOS e o Windows 3.x). Decidida a ter uma fatia do mercado que pertencia ao Unix, a Microsoft deu início ao desenvolvimento do Windows NT. Esta sigla - NT - significa New Technology. A Microsoft logo percebeu que este novo Windows não teria sucesso se utilizasse o FAT, pelas razões já citadas. Era preciso criar um sistema de arquivos novo.

O NTFS foi desenvolvido e muitos até hoje pensam que ele é um sistema de arquivos inteiramente desenvolvido pela Microsoft, o que não é verdade. Seu projeto foi baseado nas análises das necessidades do novo sistema operacional, mas seus conceitos funcionais foram “herdados” do sistema de arquivos HPFS (High Performance File System).

Um sistema operacional muito conhecido nesta época era o OS/2, um projeto realizado em conjunto entre a Microsoft e a IBM. Ambas as empresas estavam tentando criar um sistema operacional de grande sucesso, cujo apelo principal seria a capacidade gráfica (lembre-se que naquela época, era muito maior o uso de sistemas operacionais baseados em linha de comando, como o DOS). O OS/2 de fato continha inovações tecnológicas, mas esbarrava nos quesitos suporte e marketing. Fora isso, a IBM e a Microsoft começaram a se desentender e a empresa de Bill Gates decidiu abandonar o projeto e se dedicar ao desenvolvimento do Windows NT. No entanto, a Microsoft acabou levando consigo muitos conceitos funcionais do sistema de arquivos do OS/2, o HPFS. É claro que tais conceitos foram essenciais para a criação do NTFS, o que fez com muitos pensassem que a Microsoft passou um golpe na IBM. No entanto, este artigo não visa discutir isso.

Características do NTFS

O NTFS possui características importantes, que o fez ser considerado um bom sistema de arquivos. Entre essas qualidades estão: confiança, pois permite que o sistema operacional se recupere de problemas sem perder informações, fazendo-o ser tolerante a falhas; segurança, onde é possível ter um controle de acesso preciso e ter aplicações que rodem em rede, fazendo com que seja possível o gerenciamento de usuários, incluindo suas permissões de acesso e escrita de dados; armazenamento, onde é possível trabalhar com uma grande quantidade de dados, permitindo inclusive o uso de arrays RAID; rede, fazendo do sistema plenamente funcional para o trabalho e o fluxo de dados em rede.

Há muitas outras características, que ficam mais ainda visíveis se comparadas ao FAT. A Microsoft vem trabalhando bastante para aperfeiçoar o NTFS, por isso, é de se esperar que novas características sejam implementadas no sistema de arquivos, de acordo com o lançamento de novas versões do Windows.

Versões do NTFS

Assim como aconteceu com o FAT, o NTFS também tem versões, que foram lançadas principalmente no surgimento de novos Windows. A cada versão, correções de falhas são feitas, suportes a hardware são implementados e novas características são dadas ao NTFS. A princípio houve o NTFS 1.0 usado no Windows NT 3.1 (por isso, esta versão do NTFS também ficou conhecida por NTFS 3.1).

Com o lançamento do Windows NT 4, o NTFS ganhou a versão 1.1 (ou versão 4). Esta versão também foi usada no Windows NT 3.51. O sucesso do Windows NT foi tão grande que sua versão do NTFS virou referência em sistemas de arquivos.

A Microsoft não ficou parada e lançou a versão conhecida como NTFS 5.0 com o lançamento do Windows 2000, substituto do Windows NT. Apesar da nova versão, o NTFS 4 foi tão difundido que seu suporte a outro sistemas operacionais não acabará tão cedo.

Esta nova versão do NTFS possui novas características importantes, além daquelas herdadas da versão anterior. Essas mudanças foram essenciais para fazer do Windows 2000 um sistema que fosse realmente adequado para substituir o Windows NT. Só para servir de exemplo, o serviço Active Directory é um dos chamativos do Windows 2000 e foi implementado graças a alterações no FTFS. Entre os novos recursos do NTFS 5 estão: Reparse Points, onde arquivos e pastas dentro do sistema de arquivos podem ter ações associadas a eles, de forma que operações particulares a estes arquivos possam ser executadas; novas características de segurança, onde o mecanismo para gerenciamento da segurança e de usuários, principalmente em relação a acesso e arquivos foram melhorados; quotas de discos, onde o administrador do sistema pode determinar o espaço em disco disponível a um usuário ou a um grupo de usuários; diários de alterações, onde volumes podem ser ajustados para rastrear as operações efetuadas nos arquivos e pastas; codificação, onde o sistema permite que arquivos sejam codificados/decodificados automaticamente; suporte a arquivos esparsos, onde é possível armazenar de forma eficiente arquivos esparsos (que são arquivos grandes mas que possuem algumas estruturas vazias, desperdiçando espaço em disco).

Com o lançamento do Windows XP, Windows 2003 Server e futuras versões, o NFTS vai ganhando melhoramentos e novas características, mas certamente a versão 4 ainda será uma referência. Isso deixa claro que o NFTS não deixará de ser usado tão cedo pela Microsoft.

Funcionamento do NTFS

Conforme as características herdadas do HPFS, o NTFS trabalha de uma forma mais eficiente no gerenciamento do espaço de disco. Isso porque as informações são armazenadas em uma base por setor do disco, em vez de utilizar clusters de múltiplos setores. Essa forma de trabalho, traz várias vantagens, como menor necessidade de desfragmentação de disco e maior consistência de dados. Isso porque essa arquitetura de dados por base em setor permite manter os dados próximos, ou seja, não espalhados pelo disco. Até o gerenciamento de grandes quantidades de dados é beneficiado por esta característica, já que como acontecia com o FAT, trabalhar com clusters por setor, fazia do sistema de arquivos dependente de um número pré-determinado de setores.

Fonte: Infowester

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