Start presentation

Slide 1: Partição

Esta lição trata de dispositivos de armazenamento de dados e como os mesmos são subdivididos (particionados), organizados e formatados.

Entende-se como armazenamento de dados qualquer informação que deve ser guardada para uso futuro. Quando o sistema é desativado qualquer informação armazenada dentro da memória RAM (ou outros meios de armazenamento volátil) é perdida, mas se for necessário o seu uso posterior essas informações devem ser armazenadas dentro de dispositivos de armazenamento, como discos rígidos, disquetes, CD-ROM, pen-drives entre outros.

A maioria dos dispositivos de armazenamento permitem que eles seu espaço sejam divididos em partes denominadas partições. Cada partição pode ser formatada, ou seja, receber uma forma de organizar os dados que faz parte de um sistema de arquivos. Imagine o sistema de arquivos como fosse um estacionamento amplo de um prédio: é necessário que o espaço físico (dispositivo de armazenamento) seja subdividido (particionado) em andares e cada um receba marcações físicas por tinta (formatação), afim de que os veículos (dados) possam ser estacionados (gravados) de forma eficiente. O particionamento define espaços agrupados e cada particão pode receber uma formatação própria, ou seja, uma marcação prévia de dados de controle no disco, afim de que os dados reais possam ser gravados a posteriori.

Uma das principais motivações para o particionamento do Disco Rígido (HD) é torná-lo capaz de armazenar diversos tipos de informações em diversos sistemas de arquivos. Assim, ao invés de se ter um HD para cada tipo de sistema de arquivos o computador pode utilizar apenas um único HD com várias partições com cada uma suportando um sistema de arquivos diferente. Uma vantagem muito comumente utilizada em se ter várias partições é poder instalar vários sistemas operacionais em partições diferentes.

Nomes de partições

O Linux nomeia seus dispositivos de armazenamento de forma a identificar cada um de forma única. Primeiro é necessário determinar o tipo de tecnologia de dispositivo de armazenamento, os mais comuns são:
  • IDE: é uma padrão de tecnologia antigo que utiliza o padrão ATA (para HDs) e ATAPI (CDROMs e outros dispositivos) para de interface de dispositivos. O nome que o Linux utiliza para esse tipo de dispositivo começa com 'hd', todos representados por arquivos especiais de dispositivo dentro da pasta '/dev', por exemplo: /dev/hda, /dev/hdb e assim por diante. As letras denominam o dispositivo desta tecnologia. Em computadores pessoais, é comum ter 4 interfaces, desta forma os dispositivos são nomeados de hda, hdb, hdc e hdd.
  • SATA: é um padrão de tecnologia mais recente e utiliza o padrão AHCI de interface de dispositivos. Por padrão, o Linux utiliza 'sd' para nomear esses dispositivos, assim são criados arquivos especiais de dispositivo para acessá-los: /dev/sda, /dev/sdb e assim por diante. Outras tecnologias mais caras e de uso mais corporativo, que utilizam esse mesmo padrão de nomes é o SCSI (Small Computer System Interface) e SAS (Serial Attached SCSI).

Para verificar quais dispositivos estão instalados no seu computador, execute os seguintes comandos:
$ ls /dev/hd*
ls: impossível acessar /dev/hd*: Arquivo ou diretório não encontrado

Note que o comando listou nenhum arquivo especial de dispositivo IDE no meu sistema operacional. Isso significa que o Linux não reconheceu na sua inicialização nenhum dispositivo deste tipo e portanto nenhum arquivo especial de dispositivo não foi criado.
$ ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda5  /dev/sdb  /dev/sdb1

Note que o comando listou dois dispositivos SATA reconhecidos no meu sistema operacional (/dev/sda e /dev/sdb). Note também que há também 4 arquivos especiais de dispositivo com números: /dev/sda1, /dev/sda2, /dev/sda5, /dev/sdb1. Estes arquivos identificam respectivamente as partições 1, 2 e 5 do disco rígido /dev/sda e a partição 1 do disco /dev/sdb.

MBR e GPT

Devido a razões históricas de projeto do BIOS (Sistema Básico de Entrada e Saída) do PC (Computador Pessoal) que usava um esquema de partição de discos chamada MBR (Master Boot Record), houve um limite máximo de 4 partições, chamadas de partições primárias. Devido a necessidade de mais partições, uma e somente uma das partições primárias pode ser utilizada como partição estendida, que possui um esquema de particionamento, chamado EBR (Extended Boot Record) que permite que várias outras partições sejam criadas dentro da mesma. As partições criadas dentro da partição estendida são chamadas de partições lógicas.

Nas últimas décadas, esse limite foi superado pela tecnologia UEFI (Unified Extensible Firmware Interface) que utiliza um esquema de partição de discos chamada GPT (GUID Partition Table) e que estendeu o limite de partições para 128, desta forma não há necessidade de partições estendidas e nem de partições lógicas, todas partições nesta tecnologia são denominadas partições primárias.

Como a tecnologia MBR ainda é largamente utilizada, focaremos a maior parte de nossa prática na mesma. No entanto, tende a ser substituída gradativamente pela tecnologia UEFI/GPT.

Partições estendidas e lógicas

Caso se deseje ultrapassar o limite de 4 partições da tecnologia BIOS/MBR, é necessário utilizar uma partição estendida, que pode abarcar várias partições lógicas e funcionam normalmente como as partições primárias. O comando fdisk pode ser utilizado para listar as partições, por exemplo:
# fdisk -l /dev/sda
Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sda1   *          2048     7938047     3968000   83  Linux
/dev/sda2           7940094     9279489      223233    5  Estendida
/dev/sda5           7940096     8386559      223232   82  Linux swap / Solaris
/dev/sda6           8386560     9279489      446464   82  Linux

Note no exemplo, que a partição /dev/sda2 é uma partição estendida, dentro dela, temos duas outras partições (/dev/sda5 e /dev/sda6). A partição estendida /dev/sda5 começa no setor 7940096, exatamente onde a partição estendida começa e a partição /dev/sda6 termina exatamente onde a partição estendida termina, ou seja, no setor 9279489. Resumidamente, as partições lógicas 5 e 6 dividem o espaço dentro da partição estendida 2.

Outra informação interessante é que as partições lógicas iniciam sua numeração a partir de 5. Note que na ordem de partições, a próxima seria numerada como 3, mas houve um salto para a numeração 5. Esse padrão de numeração faz sentido, uma vez que a partições primárias somada com a estendida (caso exista) está limitada a 4 partições.

Slide 2: Formatação dos dispositivos

A formatação do dispositivo prepara-o para receber uma forma de armazenamento, independente do sistema. Ela pode ser entendida como a preparação do dispositivo para receber informações e saber como armazená-las e não necessariamente a remoção de todo o conteúdo como a maioria das pessoas imagina. Formatar significa dar forma a algo por isso não confunda formatação com a remoção de informação do disco. A formatação está ligada a forma que as novas informações serão colocadas no disco.

Para o sistema operacional Linux existem várias ferramentas para a edição e o gerenciamento de partições, como por exemplo: fdisk (recomendado), o cfdisk e o disk druid (utilizado normalmente na instalação do sistema). Uma partição é uma divisão de um disco rígido (SCSI ou ATA). Cada partição pode conter um sistema de arquivos diferente. Consequentemente, vários sistemas operacionais podem ser instalados na mesma unidade de disco. Isso faz com que haja a necessidade de se administrar estes sistemas.

fdisk

Ferramenta de geração de partições em um disco real. Portanto se for seguir os passos tome muito cuidado para não danificar o sistema operacional. É recomendado que siga o exemplo utilizando um disquete/pendrive, ou ao final do exemplo não salve as modificações, a não ser que você tenha total certeza do que esteja fazendo.

Antes da formatação de um disco de armazenamento é importante que ocorra a preparação do mesmo, que consiste na construção de partições . A construção pode ser editada diretamente na instalação do sistema operacional Linux, ou após o seu funcionamento. Para que não ocorra perda de dados é importante saber exatamente qual área do disco está sendo modificada.

Sintaxe:
fdisk [opções] dispositivo

No exemplo acima, dispositivo é o recurso desejado para a criação da nova partição ou partições, dependendo apenas da quantidade livre em disco ou futuras instalações. Opções:

-l lista as partições dentro de um dispositivo e retorna o prompt de comando;
-u entra na ferramenta fdisk apresentando os valores em setores;
-s apresenta o tamanho do dispositivo ou partição em blocos.
Se não for passada nenhuma opção a ferramenta irá apresentar os valores em cilindros (uma das maneiras de visualizar as informações sobre o dispositivo).

Caso seja passado somente o dispositivo, será apresentado um mini-shell onde os comandos a seguir podem ser utilizados:

Opção Descrição
m apresenta uma lista de opções como ajuda (menu)
d deleta uma partição do dispositivo indicado
l lista os tipos de partições existentes no mercado até sua data de atualização
n cria uma nova partição
p apresenta a tabela atual de partições, quando passado todo o dispositivo
q sai sem realizar as alterações feitas
t possibilita a troca da tecnologia da partição desejada
L opção esta que é dada junto com o "t" para a listagem das tecnologias suportadas pelo fdisk atual
v verifica a tabela de partições
w salva as modificações realizadas e sai
x para comandos mais avançados (não indicado para iniciantes)
Exemplo 1:

Para o exemplo será utilizado um disco rígido de 20GB, novo, e será construído da seguinte forma:

  • Uma partição com o Sistema Operacional Microsoft Windows;
  • Uma partição com o /boot;
  • Uma partição estendida;
  • Uma partição com área de troca do Linux;
  • Uma partição com o Sistema Operacional Linux;
  • Espaço livre para futuras instalações.

Nota: O Linux tem suporte à memória virtual. Ou seja, o sistema consegue utilizar o disco como uma extensão da memória RAM. Essa parte do disco recebe o nome de área de troca ou área de swap.

A partição /boot será colocada separada do restante da partição do "/" como uma ilustração, podendo o /boot ficar tanto dentro da partição do "/". Qualquer outro diretório poderia ser colocado em uma partição separada.

Para os dispositivos IDE o sistema Linux nomeia da seguinte forma:

/dev/hd[a-h]

sendo que:

a para disco primário principal
b para disco primário escravo (slave)
c para disco secundário principal
d para disco secundário escravo
A ferramenta fdisk pode ser usada da seguinte maneira (qualquer que seja o dispositivo desejado nesse caso o /dev/hda):
# fdisk /dev/hda

The number of cylinders for this disk is set to 2482.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Comando (m para ajuda):

Read more Nesse momento podem ser utilizadas as opções do fdisk apresentadas acima, ou digitar m para visualizar a ajuda.

Read more Para visualizar as partições atuais do disco rígido basta utilizar a opção “p”:
Comando (m para ajuda): p
Disco /dev/hda: 255 cabeças, 63 setores, 2482 cilindros
Unidades = cilindros de 16065 * 512 bytes
Dispositivo Boot   Início   Fim   Blocos      Id   Sistema

Read more A listagem acima possui a seguinte característica:

Disco Representa o dispositivo que está sendo manipulado.
Cabeças, Setores e Cilindros Representam as dimensões do dispositivo, no caso um disco rígido de 20GB.
Unidades Representa a área de bytes total do dispositivo.
Dispositivo Indica o disco rígido e o número da partição (por exemplo: /dev/hda1).
Boot Informa se a partição terá o boot por padrão ao iniciar o sistema.
Início Fim Informa o começo e o final em cilindros da partição.
Blocos Informa o tamanho real.
Id Apresenta a identificação do tipo do sistema a ser utilizado.
Sistema A tecnologia a ser utilizada dentro da partição (sistema de arquivos).
Read more Como o disco é novo e não existe nenhuma partição criada ou sistema operacional instalado será necessário criar uma nova partição, a opção para a criação é "n".

Comando (m para ajuda): n
Comando - ação
e   estendida
p   partição primária (1-4)

Após ser passada a opção “n” para o fdisk é necessário informar o tipo da partição (p ou e). Se escolhido o valor p será necessário informar o valor da partição primária que varia de 1 a 4. Se for escolhido o valor e, apenas será necessário informar o tamanho da área de extensão.

Read more Como o intuito é preparar o disco para receber a forma apresentada acima, primeiramente será criada a área para o Sistema Operacional Windows. Logo a opção deverá ser o valor "p".
p
Número da partição (1-4):1
Primeiro cilindro (1-2482, padrão 1): 
Usando valor padrão 1
Último cilindro ou +tamanho ou +tamanho M ou +tamanho K (1-2482, padrão 2482):

Após a escolha da criação da partição primária de valor 1, é preciso informar o tamanho da partição. Como é a primeira partição o valor inicial do cilindro é 1, por padrão, podendo ser escolhido o seu início em qualquer ponto entre os valores apresentados(no caso de 1 a 2482). Se for dado um "enter" para a seleção do primeiro cilindro, o valor padrão será selecionado.

Informando o primeiro cilindro será necessário informar o valor do último cilindro (da partição), podendo ser em cilindro ou com uma das opções:

+tamanho quantidade de cilindros
+tamanhoM para tamanho em MB
+tamanhoK para tamanho em KB
Se não for passado nenhum valor na forma descrita acima, e sim dado apenas um "enter" o fdisk interpretará que deverá ser tomado como valor o último cilindro informado como padrão (para o exemplo o valor 2482 - lembrando que o disco rígido é de 20GB).

Read more Para as próximas partições basta seguir os passos acima, com uma diferença para a área estendida que será informado neste momento o valor para partições lógicas e não primárias, o valor a ser informado para a criação da estendida deverá ser um valor primário.
Comando (m para ajuda): n
Comando - ação
   e   estendida
   p   partição primária (1-4)
e
Número da partição (1-4): 3
Primeiro cilindro (642-2482, padrão 642):
Usando valor padrão 642
Último cilindro ou +tamanho ou +tamanho M ou +tamanho K (642-2482, padrão 2482):+5000M

Read more Até o momento o disco está com o seguinte formato, para a visualização usar a opção "p":
Comando (m para ajuda): p
Disco /dev/hda: 255 cabeças, 63 setores, 2482 cilindros
unidades = cilindros de 16065 * 512 bytes
Dispositivo Boot   Início   Fim   Blocos      Id   Sistema
/dev/hda1      1   638   5124703+   83   Linux
/dev/hda2      639   641   24097+      83   Linux
/dev/hda3      642   1279   5124735   5   Estendida

Os tamanhos são 5GB para o Sistema Operacional Linux, 24M para o /boot e 5GB para a área estendida. Todas as partições ao serem geradas, com excessão a partição estendida, possuem por padrão o sistema Linux.

Read more Nesse momento será tratada a criação das partições dentro da estendida. Uma vez criada a estendida serão apresentadas novas opções de escolha:
Comando (m para ajuda): n
Comando - ação
   l   lógica (5 ou superior)
   p   partição primária (1-4)
l
Primeiro cilindro (642-1279, padrão 642):
Usando valor padrão 642
Último cilindro ou +tamanho ou +tamanho M ou +tamanho K (642-1279,    padrão 1279):+64M

Acima além de ser apresentado o novo formato para a criação, foi criado mais uma partição que servirá para a área de troca. A criação da partição para o uso do Linux será igual a criação da área de troca, sendo que poderá ser utilizada toda área dentro da estendida, portanto não haverá necessidade de passar valores além dos padrões.

Read more Ao final, terá o formato seguinte:
Comando (m para ajuda): p
Disco /dev/hda: 255 cabeças, 63 setores, 2482 cilindros
Unidades = cilindros de 16065 * 512 bytes
Dispositivo Boot Início    Fim   Blocos      Id   Sistema
/dev/hda1             1    638   5124703+    83   Linux
/dev/hda2           639    641   24097+      83   Linux
/dev/hda3           642   1279   5124735      5   Estendida
/dev/hda5           642    650   72261       83   Linux
/dev/hda6           651   1279   5052411     83   Linux

As partições foram criadas corretamente, porém o tipo de sistema de arquivos de cada sistema operacional, bem como da área de troca, estão com a tecnologia Linux.

Read more Para a troca do tipo de tecnologia é necessário saber o número designado para a partição, por exemplo, para a partição que pertence ao Windows é o 1 (/dev/hda1). A opção do menu para a seleção do tipo da área de troca é a letra t, e com a letra L (após o uso do t para o tipo de tabela) poderá ser selecionado o tipo da identificação da tabela.
Comando (m para ajuda): t
Número da partição (1-7): 1
Código hexadecimal (digite L para listar os códigos):c

A opção “c” em Código hexadecimal define o tipo da identificação que será dada à partição 1, como selecionado. Ao listarem os códigos, são encontrados vários valores dependendo apenas do tipo de identificação desejado.

O mesmo processo deverá ser utilizado para a área de troca, sendo que o seu valor deverá ser 82 (código hexadecimal) que representa a tecnologia Linux swap e código 83 para Linux.

Ao término deste processo a tabela de partições deverá estar com o seguinte formato:
Comando (m para ajuda): p
Disco /dev/hda: 255 cabeças, 63 setores, 2482 cilindros
Unidades = cilindros de 16065 * 512 bytes
Dispositivo Boot   Início   Fim      Blocos   Id   Sistema
/dev/hda1          1        638     5124703+   c   FAT32 Win95 (LBA)
/dev/hda2          639      641       24097+   83  Linux
/dev/hda3          642      1279     5124735   5   Estendida
/dev/hda5          642      650        72261   82  Linux swap
/dev/hda6          651      1279     5052411   83  Linux

No caso da instalação de um sistema operacional GNU/Linux poderíamos criar partições separadas para os diretórios /home, /opt, /tmp, /usr e /usr/local. Esse tipo de particionamento visa aumentar a segurança do sistema. Com os conhecimentos adquiridos do fdisk experimente criar em um pendrive as partições que simulam esse exemplo. Será obtido algo como (exemplo feito com um pendrive de 8GB):

#fdisk /dev/sdc

Comando (m para ajuda): p

Disco /dev/sdc: 7904 MB, 7904165888 bytes
255 heads, 63 sectors/track, 960 cylinders
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Identificador do disco: 0xb7aba02a

Dispositivo Boot Início Fim Blocos Id    Sistema
/dev/sdc1               1                8         64228+  83  Linux
/dev/sdc2               9             492        3887730    83  Linux
/dev/sdc3            493             960        3759210    5  Estendida
/dev/sdc5            493             581       714861    83  Linux
/dev/sdc6            582             585        32098+   83  Linux
/dev/sdc7            586             725     1124518+   83  Linux
/dev/sdc8            726             960       1887606    83  Linux

Para maiores detalhes veja documentação sobre a ferramenta ou manuais (man fdisk).

Slide 3: Sistemas de arquivos

Por sistema de arquivos deve ser entendido como a tecnologia envolvida pelo sistema operacional, que serve para indicar regras de armazenamento e busca em memória secundária. Cada dispositivo de armazenamento pode ter o seu sistema de arquivo indicado. Existem várias ferramentas que servem para a geração do sistema de arquivos. O comando principal é o mkfs, que o sistema de arquivos no formato especificado.

Existem vários tipos de sistemas de arquivos e conhecer os principais deles é de fundamental importância, pois assim será possível levar informações de um outro sistema operacional para o Linux.

A tecnologia envolvida no sistema operacional está ligada diretamente na forma com que os dados serão gravados nos dispositivos de armazenamento. Os tipos mais comuns de sistema de arquivos são o ext2, ext3 ou ext4 para o Linux e o fat16, fat32 ou NTFS para o Windows.

. VFS

A diversidade de maneiras de executar-se uma tarefa é algo natural, resultado de diferentes idéias, necessidades e da evolução como um todo. Durante o desenvolvimento dos diversos sistemas operacionais, vários modelos de organização e armazenamento de dados foram criados. No mundo GNU/Linux, eles são conhecidos como Sistemas de Arquivos.

Uma aplicação, ao manipular arquivos em um sistema GNU/Linux, faz uso de uma interface única, chamada de Virtual Filesystem, ou VFS. Essa interface torna indiferente, para a aplicação, a maneira que o arquivo está realmente sendo armazenado. Essa versatilidade permite, entre outras coisas, a compatibilidade com sistemas de arquivos de outros sistemas operacionais mais populares (ou até mesmo os mais obscuros). Outra possibilidade é a utilização de sistemas de arquivos que mais se adequam a uma determinada tarefa.

Adaptar-se às necessidades dos usuários é também outro ponto forte do GNU/Linux.

Os sistemas operacionais, ao serem criados, possuem maneiras diferentes de controlar o armazenamento de seus dados em disco, variando entre os sistemas operacionais, afinal os sistemas são criados de formas diferentes, mas com a mesma função que é o gerenciamento do computador.

Como cada um dos sistemas operacionais possuem formas diferentes de armazenamento, eles ficam incompatíveis para a troca de informações. Portanto, para os sistemas existentes encontramos armazenamentos diferentes.

. Ext2

Essa é a segunda versão do sistema de arquivos que foi criada especificamente para o Linux, e que consolidou-se como estável e confiável ao longo dos últimos anos. Um fator interessante é sua resistência à fragmentação de arquivos, um processo que leva usuários de outros sistemas de arquivos a executarem tarefas de manutenção periodicamente. A falta de alguns recursos avançados nesse sistema de arquivos levou à criação de sua terceira revisão, o Ext3.

A tecnologia ext2 é a adotada pelo sistema operacional Linux, e consegue acessar arquivos de outros sistemas operacionais - acessar mas não executar -, e abri-los quando a extensão é compatível (.txt, por exemplo).

. Ext3

Recursos avançados como journaling foram incluídos nessa versão, uma necessidade em ambientes onde tempo fora do ar significa amargos prejuízos. Sistemas de arquivos tradicionais, sem journaling, são passíveis de corrupção quando desligados de maneira anormal, como por exemplo em situações como queda de energia. Isso porque, em busca de maior desempenho, operações nos sistemas de arquivos são agendadas primeiramente em memória, e quando surge tempo livre na CPU, essas operações são executadas no disco.

No exemplo de falha mencionado acima, o sistema é obrigado a varrer todo o sistema de arquivos, em busca de erros, tentando adivinhar como o sistema de arquivos deveria estar. Em discos de médio porte, como por exemplo de 80 GB, esse processo pode demorar algo entre 15 e 60 minutos, dependendo de fatores como velocidade do sistema e do disco. Ficar fora do ar por uma hora pode não ser aceitável em muitos cenários.

A tecnologia de journaling resolve esse problema gravando os agendamentos (registros de modificações a serem feitos no sistema de arquivos). Quando há tempo livre na CPU, o sistema de arquivos executa as operações em disco e consequentemente apaga os registros de agendamento.

O sistema de arquivos ext3 é similar ao sistema ext2, tendo como única diferença a tecnologia journaling. Essa tecnologia acrescida no ext3 faz com que qualquer operação que seja executada dentro no sistema seja armazenada em uma área conhecida como journal, permitindo a recuperação de informações ou parada de processos mais claros. No caso de um desligamento forçado, como o mencionado acima, o sistema teria apenas que ler o journal (agenda) e executar as operações que ficaram pendentes. Esse processo, em um disco de mesmo tamanho, levaria não mais que 1 ou 2 minutos. O maior benefício sobre o seu uso é a tolerância a falhas, tornando o Linux mais seguro para qualquer tipo de trabalho.

. Ext4

O Ext4 é um sistema de arquivos desenvolvido para ser o sucessor do Ext3 a partir de 2006 [ http://ext4.wiki.kernel.org/index.php/Main_Page]. As novas funcionalidades comparado com o Ext3 são:

  • O Ext3 conseguia fazer uma partição de, no máximo, 32 TB (terabytes) e manipular arquivos de até 2 TB de tamanho. O Ext4, no entanto, tem uma margem real bem maior que essa: 1EB (exabyte) para partições e 16TB por arquivo. Isso ainda não é importante para servidores simples ou desktops, mas com certeza vai se tornar útil para grandes servidores.

  • O Ext3 colocava um limite no número de subdiretórios por pastas de 32000 pastas. Não há limites para o Ext4.

  • Embora o Ext4 incorpore recursos que reduzam a fragmentação no sistema de arquivos (extensões para a alocação de blocos sequenciais), é impossível evitar uma determinada fragmentação quando um sistema de arquivos existe por muito tempo. Por esse motivo, existe uma ferramenta on-line que desfragmenta o sistema de arquivos e os arquivos individuais no intuito de aprimorar o desempenho.

  • O fsck está mais rápido porque a nova estrutura de organização de blocos permite que partes não usadas do hd sejam puladas, o que economiza tempo numa eventual checagem.

. FAT

FAT, sigla para File Allocation Table, ou Tabela de Alocação de Arquivos. São conhecidos por sua simplicidade. Um exemplo é a ausência de diretórios em sua primeira versão. Com o progresso dos sistemas operacionais da Microsoft, este sistema de arquivos foi sofrendo modificações.

  • FAT12 – A primeira versão desse sistema de arquivos ficou conhecida por este nome, por utilizar endereços de blocos de 12 bits. A intenção era aproveitar ao máximo o espaço em disquetes, onde era, e permanece sendo, usado quase que com exclusividade.
  • FAT16 – Também conhecido simplesmente como FAT, foi criado utilizando 16 bits de endereçamento, para comportar discos rígidos, cujos tamanhos eram bem maiores que os disquetes usados previamente. É utilizado sob a forma segura do Windows, o sistema com tecnologia NT, e também é dividido em duas variantes a FAT16A e a FAT16B. A 16A é mais antiga e consegue trabalhar com discos de no máximo 2GB, enquanto que a 16B consegue trabalhar com valores superiores.
  • FAT32 – Por conta da limitação de tamanho do sistema de arquivos (resultante dos 16 bits de endereçamento), a Microsoft introduziu a terceira grande revisão do FAT. Usando 32 bits de endereçamento, o FAT32 pôde diminuir o tamanho dos blocos, e consequentemente diminuir o desperdício de espaço em disco.
  • VFAT – Junto com o Windows 95, a Microsoft introduziu o suporte a nomes longos, fugindo do padrão de 8 caracteres para nome e 3 para extensão. Esse recurso foi construído em cima do FAT16, e por utilizar um dispositivo virtual (driver vxd) para simular esses nomes longos recebeu o V no nome.

. NTFS

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 apresentou algumas limitações, principalmente no quesito segurança. Por causa disso a Microsoft lançou o sistema de arquivos NTFS, que possui características importantes, como a capacidade de fazer com que o sistema operacional se recupere de problemas sem perder informações, sendo tolerante a erros. E também, um controle mais preciso das contas de usuários. O NTFS oferece um nível de armazenamento muito maior que os antigos, como FAT, FAT16 ou FAT32, já que com ele é possível adotar sistemas com até 2 TB de armazenamento em um único disco, ou seja, é possível utilizar um disco de 1 TB inteiramente como partição NTFS. Já com o FAT32 seria necessário repartir o disco em várias partes para utilizá-lo na íntegra.

. Outros Sistemas de arquivos

Vários sistemas de arquivos são suportados pelo kernel, e geralmente estão presentes na forma de módulos que são carregados mediante a necessidade do uso destes sistemas, de maneira transparente e descomplicada. Entre eles:

  • JFS – Sistema de arquivos criado pela IBM, visando a necessidade de seus clientes corporativos. Ele conta com os recursos avançados mencionados anteriormente, como journaling, e possui uma característica interessante que é a possibilidade de definir um tamanho de bloco variável para cada arquivo, e não um tamanho fixo para todo o sistema de arquivos. Outra característica importante que ele possui é a utilização de técnicas usadas em bancos de dados para garantir a execução de transações de maneira atômica, aumentando ainda mais o nível de integridade do sistema de arquivos.
  • XFS - Este, criado e desenvolvido pela Silicon Graphics, é considerado o sistemas de arquivos mais robusto do mundo. Primariamente desenvolvido para o IRIX, versão UNIX da Silicon, foi portado para o Linux, nas versões 2.4, 2.5 e 2.6. As características dele incluem journaling, velocidade na execução de transações (conceito similar ao apresentado no JFS), alta escalabilidade (podendo conter arquivos maiores que 9 milhões de terabytes e alta performance na transferência de quantidades massivas de dados.

Slide 4: Criação de Sistema de Arquivos

Para gerar um sistema de arquivos em uma partição pode ser utilizada a forma demonstrada no tópico anterior com o uso do fdisk, ou utilizando diretamente a ferramenta mkfs que já vem instalada dentro do próprio sistema operacional.

Sintaxe:
mkfs [-t tipo_sistema_arquivo] [-cv] dispositivo

opções:

-t Possibilita informar o tipo de sistema de arquivo desejado para o sistema operacional criá-lo. Os tipos mais comuns são: Ext2 (Linux) e vfat (Windows);
-c Irá checar o dispositivo selecionado por blocos defeituosos durante a criação do sistema de arquivos;
-v Irá apresentar os detalhes das etapas realizadas pela ferramenta.
O dispositivo pode ser um dispositivo reconhecido pelo sistema, por exemplo, /dev/hda1 ou até mesmo um ponto de montagem /boot.

Exemplo:

Nesse exemplo será criado um sistema de arquivos, para o Linux, em um pendrive:
#mkfs -t ext3 /dev/sdd
mke2fs 1.40.8 (13-Mar-2008)
/dev/sdd is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
493856 inodes, 1974272 blocks
98713 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2021654528
61 block groups
32768 blocks per group, 32768 fragments per group
8096 inodes per group
Superblock backups stored on blocks: 
   32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): concluído
Writing superblocks and filesystem accounting information: concluído

Esse sistema de arquivos será automaticamente verificado quando completar trinta e uma montagens ou 180 dias, o que ocorrer primeiro. Use tune2fs -c ou -i para fazer alterações.

Para a criação de sistemas de arquivos diferentes poderíamos utilizar outros comandos de acordo com a nossa necessidade:

  • mkfs -t vfat - Formata com o sistema de arquivos Fat32.
  • mkfs -t ext2 - Formata com o sistema de arquivos Ext2.
  • mkfs -t ntfs - Formata com o sistema de arquivos NTFS.

Lembre-se de que para testar o exemplo devemos substituir o /dev/sdd pelo dispositivo correto.

Aqui estão listados alguns dispositivos de armazenamento.

/dev/fd0 Primeira unidade de disquete
/dev/fd1 Segunda unidade de disquete
/dev/hda disco rígido IDE primária master
/dev/hda1 Primeira partição do disco em IDE primária master
/dev/hdb Disco rígido IDE primário slave
/dev/hdb1 Primeira partição do disco em IDE primário slave
/dev/hdc Disco rígido IDE secundário master
/dev/hdc1 Primeira partição do disco em IDE secundário master
/dev/hdd Disco rígido IDE secundário slave
/dev/hdd1 primeira partição de disco em IDE secundário slave Italic Text
/dev/sda Primeiro disco rígido SCSI ou SATA (também usado para PenDrive)
/dev/sda1 Primeira partição no primeiro disco SCSI, SATA ou PenDrive
/dev/sdb Segundo disco rígido SCSI, SATA ou PenDrive
/dev/sdb1 Primeira partição no segundo disco SCSI, SATA ou PenDrive
/dev/sr0 Primeiro CD-ROM SCSI
/dev/sr1 Segundo CD-ROM SCSI
/dev/xda Primeiro HD XT
/dev/xdb Segundo HD XT

Slide 5: Manutenção da integridade do sistema

Muitas vezes pode ser necessário verificar como está a vida do dispositivo para saber se existe algum bloco defeituoso ou arquivos corrompidos. A manutenção do sistema é muito útil para servidores de empresas, pois com ele é possível verificar a qualidade do dispositivo.

fsck

Para manter a integridade do sistema de arquivos é utilizada a ferramenta fsck, que faz uma verificação e manutenção em sistemas de arquivos. Para checar quais sistemas de arquivos o comando suporta, execute:
# ls /sbin/fsck.*
/sbin/fsck.cramfs  /sbin/fsck.ext3  /sbin/fsck.ext4dev   /sbin/fsck.nfs
/sbin/fsck.ext2    /sbin/fsck.ext4  /sbin/fsck.minix

O resultado é uma lista de arquivos executáveis com prefixo 'fsck' e sufixo com o nome do sistemas de arquivos suportados, ou seja, o fsck instalado tem suporte aos sistemas de arquivos: cramfs, ext2, ext3, ext4, ext4dev, minix e nfs. O comando fsck é um comando genérico para os comandos específicos para cada sistemas de arquivos, você pode executar o comando fsck para qualquer partição, caso ele não suporte, ele simplesmente irá retornar que não tem suporte ao sistema de arquivos específico.

A checagem não pode ser realizada enquanto o Sistema de Arquivos (SA) esteja sendo utilizado, pois os dados contidos no mesmo precisam estar exclusivamente sendo verificados pelo próprio fsck. Um processo que estiver simultaneamente alterando o sistema, pode corromper os resultados da checagem ou até da manutenção do fsck. Para evitar que algum processo utilize o sistema de arquivos, basta garantir que o SA não esteja montado.

Mas como fazer isso no diretório raiz, já que ele é montado na inicialização e o Sistema Operacional (SO) depende dele para funcionar? A resposta é que o próprio SO, por padrão, executa o fsck em cada SA. Assim, antes de montar cada um, o SO verifica a integridade de cada SA, inclusive do próprio sistema de arquivos raiz. Caso ocorra um erro na inicialização, o fsck apresenta uma mensagem de erro e pergunta se o problema deve ser corrigido ou não. Isso ocorre frequentemente em SOs que foram indevidamente desligados.

Sintaxe:

fsck [-opções] <partição>

Opções:

p Repara automaticamente os defeitos encontrados, sem interação do usuário;
n Abre o sistema de arquivos para o tipo somente leitura, assumindo assim a resposta negativa para qualquer pergunta;
y Assume a resposta positiva para todas as perguntas;
f Força a checagem.
Read more No próximo exemplo, uma partição de um pendrive será verificada:
# fsck /dev/sda6
fsck from util-linux 2.20.1
e2fsck 1.42 (29-Nov-2011)
/dev/sda6: clean, 95/2240224 files, 3793503/4476416 blocks

# fsck -f /dev/sda6
fsck from util-linux 2.20.1
e2fsck 1.42 (29-Nov-2011)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda6: 95/2240224 files (7.4% non-contiguous), 3793503/4476416 blocks

Note que a verificação padrão faz uma checagem básica e rápida. Neste exemplo, foi utilizado a opção '-f', assim foram checados vários outros aspectos, de forma mais minuciosa.

. badblocks

A ferramenta badblocks permite ao sistema fazer uma busca no dispositivo por blocos defeituosos. Normalmente ele é utilizado sobre partições. Como será feito uma busca por blocos defeituosos o tipo do sistema de arquivos não será verificado, podendo essa checagem ser passada para qualquer dispositivo com qualquer sistema operacional.

É recomendada a checagem dos blocos com o dispositivo desmontado para não causar danos físicos ao mesmo.

Sintaxe:
badblocks [opções] dispositivo

opções:

-b bloco: indica o tamanho do bloco a ser checado
-p num: indica a quantidade de vezes que a ferramenta irá repetir o processo de busca por blocos defeituosos
-s apresenta o andamento da checagem
Exemplo:

Neste exemplo será checado um pendrive de 8GB
# badblocks -s /dev/sdc
Checking for bad blocks (read-only test): done

O teste será passado em todo o dispositivo e a contagem é feita através dos dois últimos valores apresentados, que no caso vai de 0 até o limite de 7897087.

Ao chegar em 7897087 o contador será substituído pela mensagem done. Isso significa que o dispositivo está livre de erros. Caso contrário seria apresentado o bloco com erro e a solicitação de controle de correção para o mesmo.

Slide 6: Monitorando o espaço livre

Um dos recursos esgotáveis do computador é o espaço de armazenamento dos dispositivos. Por exemplo, o disquete comum possui espaço físico de 1,44MB, que é muito pequeno para a grande quantidade de dados existentes. Já um pendrive normalmente possui um espaço muito maior disponível, o espaço de um HD é ainda maior. Porém como foi mencionado anteriormente esse é um recurso finito e por isso é necessário monitorar o seu uso para evitar futuras frustrações por falta de espaço e até mesmo para melhor controle do funcionamento do computador.

. du

A ferramenta du (disk space used) serve para analisar e informar o tamanho usado pelos arquivos e diretórios (recursivamente) nos dispositivos de armazenamento.

Essa ferramenta é liberada sobre a licença GNU e também pelo POSIX. A principal diferença entre as versões é que a do GNU apresenta os tamanhos em uso em blocos de 1024bytes enquanto a do POSIX o faz em blocos de 512bytes. Para maiores detalhes veja o manual sobre o assunto man "du" e sobre as licenças nos apêndices sobre GNU e POSIX.

Sintaxe:
du [-opção] arquivo/diretório

Opção POSIX:

a apresenta todos os arquivos recursivamente a partir do diretório corrente, sem apresentar o tamanho dos diretórios;
k apresenta os tamanhos de blocos em 1024bytes;
s apresenta o tamanho total usado pelo diretório corrente;
x apresenta o tamanho somente dos diretórios recursivamente.
Opção GNU:

a apresenta todos os arquivos recursivamente a partir do diretório corrente, sem apresentar o tamanho dos diretórios;
b apresenta os valores em bytes;
c apresenta o tamanho somente dos diretórios recursivamente;
h apresenta os valores em forma mais legível, separados em K, M e G;
k apresenta os tamanhos de blocos em 1024bytes;
m apresenta os tamanhos de blocos em megabytes;
s apresenta o valor total do argumento.
Read more Exemplo:
# cd /var/log
# du -x
4   ./httpd
4   ./fax
4   ./icecast
4   ./news/OLD
8   ./news
4   ./iptraf
4   ./radacct
4   ./samba
4   ./squid
4   ./uucp
4   ./vtund
1196   .

Caso o diretório solicitado possua vários subdiretórios ou vários arquivos o processo será demorado, além de apresentar uma grande quantidade de informações. Caso o usuário queira uma saída mais simples, contendo valores mais claros, poderá usar o comando du em combinação com pipe e o redirecionamento do seguinte modo:
du -k | sort +0n > lista.txt

As opções a seguir foram apresentadas nos capítulos anteriores:

sort ordena a saída padrão, em combinação com a opção +0n permite fazer a ordenação por número do tamanho e não pelo nome
> redireciona o que seria apresentado na tela do computador para o arquivo lista.txt, caso o arquivo não exista ele será gerado

. df

Outra forma de se fazer o monitoramento do espaço do disco é saber o espaço total que ele está ocupando, ou seja, a quantidade total de informações armazenadas no dispositivo em porcentagem.

A quantidade do dispositivo pode ser total ou parcial para quando existem partições, sendo que cada partição irá apresentar a quantidade em uso.

Para a identificação do tamanho em uso da partição a mesma deverá estar montada no sistema.

Assim como o "du" é dividido entre dois padrões (GNU e POSIX) o comando "df" também é dividido entre eles, tendo como principal característica a apresentação dos blocos em tamanhos de 512bytes para o POSIX e 1024bytes para o GNU.

Sintaxe:
df [opção] partição/dispositivo

A partição é o nome de montagem dado. O dispositivo pode ser um bloco de dados qualquer.

TIP Quando o computador não encontra a partição ou o dispositivo solicitado, a resposta de retorno é a raiz.

opção:

-a lista todas as partições existentes, até mesmo as do sistema;
-h apresenta a saída de forma mais amigável, com blocos de 1024bytes;
-H apresenta a saída semelhante a opção -h, mas com blocos de 1000bytes;
-m apresenta a saída em Megabytes.
Read more Exemplo:
#df 
Sist. Arq.      1K-blocos    Usad         Dispon.    Uso%   Montado em
/dev/hda7    4032092     2070228   1757040   55%    /
/dev/hda2       22580           2708       18668   13%   /boot
/dev/hda1    9958552     8895016   1063536   90%   /mnt/win

Após o comando "df" apareceram seis colunas, onde cada uma representa:

Sist. Arq. partição ou dispositivo, ele deve estar montado para ser listado aqui;
1k-blocks tamanho total da partição em kbytes;
Usad tamanho que está sendo usado dentro da partição;
Dispon. espaço livre;
Uso% porcentagem total de uso;
Montado em ponto de montagem para o dispositivo ou partição.
Read more Para que a saída seja mostrada de forma mais amigável podemos proceder da seguinte maneira:
# df -h
Sist. Arq.      Tam   Usad  Disp  Uso% Montado em
/dev/hda7    3.8G  2.0G  1.6G  55%   /
/dev/hda2     22M  2.7M  18M  13%   /boot
/dev/hda1    9.5G  8.5G  1.0G  90%  /mnt/win

A saída foi apresentada em formato de Mega e Giga, sendo os blocos de 1024bytes.

. free

O comando free permite ao usuário visualizar a quantidade de memória e de espaço de trocas do sistema, tanto o que está sendo usando naquele momento quanto visualizar o que está em buffer.

Sintaxe:
free [opção]

opção:

-b lista a quantidade de memórias em bytes;
-t apresenta mais uma linha com o total de cada coluna de informação;
-o retira a linha de buffers/cache;
-s apresenta a pesquisa a cada n segundos, não devolvendo assim o prompt de comando para o usuário.
Exemplo:
$ free
               total               used            free  shared     buffers      cached
Mem:       2044760     902800    1141960          0      95780     430120
-/+ buffers/cache:       376900    1667860
Swap:      2047992              0    2047992

A primeira coluna apresenta o tipo do dispositivo de armazenamento, “Mem” para a memória principal, “buffers” para a memória utilizada pelo sistema e “Swap” para a área de troca (é listado o total da área de troca independente da quantidade ou tamanho de cada partição de troca).

total apresenta o total de espaço para cada dispositivo listado na primeira coluna;
used quantidade de espaço utilizado;
free quantidade de espaço livre;
shared espaço utilizado em comum por outros recursos ou programas;
buffers quantidade de espaço utilizado dentro do dispositivo como memória rápida;
cached quantidade de espaço utilizado para a memória cache.
Para maiores detalhes vide o manual da ferramenta (man free).

Slide 7: Controle de montagem e desmontagem

O Sistema Operacional Linux possui como forma de segurança a leitura ou execução somente de arquivos presentes dentro do seu domínio, ou seja, dentro da raiz. Devido a esse fator de segurança deve-se ler ou gravar apenas em dispositivos que estejam incorporados a um subdiretório da raiz.

O sistema UNIX não utiliza letras para determinar as suas partições instaladas, como acontece em outros sistemas operacionais. Assim a montagem das partições deve ser feita dentro da raiz ( / ), ou seja, dentro da própria estrutura de diretórios do sistema.

A montagem, de forma mais clara, pode ser considerada como a associação de um diretório com um dispositivo ou partição. Com esta associação o sistema consegue melhorar a sua segurança, além de permitir ao usuário um manuseio mais simples, pois ele estará fazendo o acesso transparente a um diretório normal do sistema.

A leitura de dispositivos extras (fora da partição do /) só é possível através do uso de montagem e desmontagem destes recursos. Esses dispositivos podem ser: disquete, cd-rom, HD, outra partição, algum computador na rede (através de nfs, para maiores detalhes vide administração de redes Linux), entre outros.

A montagem pode ser feita de dois modos: manualmente ou automaticamente. O primeiro é feito através de linha de comando e o segundo através de arquivos de configuração.

. Montagem e desmontagem manuais

A montagem manual tem a vantagem de o usuário controlar o que realmente ele quer montado e o seu uso, evitando assim que dispositivos fiquem montados sem necessidade.

Sintaxe:
mount [-t tipo] dispositivo ponto_de_montagem
mount [opçãoA] [-o opçãoB] ponto_de_montagem

-t tipo é o formato do sistemas de arquivos do dispositivo.
Na primeira linha da sintaxe, o sistema irá montar (incluir) o dispositivo com o formato de sistema de arquivo “-t tipo” dentro do /, a partir do ponto de montagem. Como ponto de montagem deve ser entendido como um diretório qualquer dentro do sistema.

Aqui são apresentados alguns tipos suportados pelo kernel atual:

Sistema de Arquivos Descricao
autofs o sistema tenta detectar o sistema do dispositivo em questão;
Ext2/ext3/ext4 sistema de arquivos do Linux
iso9660 padronização para acessar o CD-ROM
minix sistema de arquivos minix
msdos sistema de arquivos FAT16/FAT32
nfs sistema de arquivo remoto
ntfs sistema de arquivos ntfs
smbfs sistema de arquivos via samba (ver livro de redes)
vfat sistema de arquivos FAT16/FAT32
ALERT! Importante: a raiz do sistema nunca deve ser utilizada como ponto de montagem no sistema.

A segunda linha da sintaxe demonstra a utilização de opções extras. opçãoA:

-h apresenta a tela de ajuda;
-a monta todos os dispositivos listados no arquivo de configuração, o fstab;
-f simula a montagem do dispositivo e serve para testes e análises;
-n faz a montagem sem a gravação de /etc/mtab, isto é válido quando o sistema está em modo somente de leitura.
OpçãoB, antecedida do parâmetro -o:

exec permite a execução de binários a partir dos dispositivos montados;
noexec não permite a execução de binários a partir dos dispositivos montados;
remount tenta remontar um dispositivo já montado;
ro monta como somente leitura;
rw monta como leitura e escrita;
Read more Exemplo:

# mount

/dev/hda7 on / type ext2 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/hda2 on /boot type ext2 (rw)

o comando mount isolado retorna todos os dispositivos montados, seus respectivos pontos de montagem, o tipo da tecnologia adotada e a forma de montagem (ro - somente leitura, rw - leitura e escrita).

Read more Exemplo:
# mount -t ext3 /dev/sda1 /mnt/pendrive

ALERT!Importante: por padrão o usuário que não seja o root não pode fazer a montagem. Isso acontece por uma questão de segurança dos sistemas Linux. Para liberação de seu uso, veja tópico sobre fstab.

Na montagem acima é passado o tipo Ext3 (Linux) sobre um pendrive, tendo como ponto de montagem o diretório /mnt/pendrive.

. umount

Umount permite fazer a desmontagem dos dispositivos inclusos no sistema pelo comando mount. É muito importante realizar a desmontagem dos dispositivos, pois sem ela não é possível retirar um CD-ROM, por exemplo.

Sintaxe:

umount [opção] ponto_de_montagem
umount [opção] dispositivo

Ambas as situações são válidas.

opção:

-a desmonta todos os dispositivos descritos em /etc/mtab;
-f força a desmontagem;
-n desmonta sem escrever em /etc/mtab. Usado quando o sistema está ativo em somente leitura.
Um sistema de arquivos não pode ser desmontado se estiver ocupado. Isso ocorre porque o usuário pode estar acessando o diretório de montagem, pode estar com algum arquivo aberto ou arquivo de swap em uso, dessa forma o comando umount não poderá ser executado.

Read more Exemplo:
# umount /mnt/pendrive/

ou
# umount /dev/sdd

. supermount

Essa ferramenta está inclusa em algumas distribuições mais atuais. Ela serve para realizar a montagem e a desmontagem de forma automática, ou seja, não é mais preciso utilizar os comandos apresentados acima para se ter acesso ao conteúdo de um disquete ou CD-ROM.

É uma boa ferramenta, mas com algumas desvantagens, tais como:

  • Pode não ter suporte ou não reconhecer um determinado sistema de arquivos, sendo necessário utilizar os comandos do mount e umount;
  • Permite a retirada da mídia ou do disquete, mesmo com o sistema de arquivos ocupado;
  • Não tem suporte em todas as distribuições Linux.

Vantagens:

  • permite um manuseio mais fácil;
  • esconde detalhes de configuração dos usuários finais.
  • acesso comum ao diretório indicado para a montagem automática

Exemplo de acesso:

Para esse exemplo será utilizado a unidade de CD-ROM que fica montada sobre o ponto /mnt/cdrom. A seguir um passo-a-passo da utilização do supermount:

Read more Primeiramente verificar se o dispositivo a ser montado está com a opção do supermount:
# mount
/dev/hda7 on / type ext2 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/mnt/cdrom on /mnt/cdrom type supermount (ro,dev=/dev/cdrom,fs=iso9660)
/mnt/floppy on /mnt/floppy type supermount (rw,dev=/dev/fd0,fs=vfat)
none on /dev/pts type devpts (rw,gid=5,mode=620)

Read more Após a localização do ponto de montagem, basta fazer acesso ao mesmo:
# cd /mnt/cdrom
# ls

Pronto, se o dispositivo conseguir montar corretamente o CD-ROM basta utilizá-lo.

Read more A desmontagem é simples, basta retirar o CD-ROM ou digitar o comando eject que desmontará o dispositivo, devendo o usuário montar novamente a partição a partir do comando mount:
# mount -a

O arquivo /etc/fstab, que será estudado mais à frente, é quem controla o supermount, indicando o dispositivo e o ponto de montagem.

. fstab

O arquivo /etc/fstab armazena a tabela de sistemas de arquivos, indicando os dispositivos, o ponto de montagem, a forma de montagem, entre outras informações. Esse arquivo é lido na inicialização do sistema fazendo todas as montagens possíveis (obs: não é possível montar a unidade de CD-ROM sem uma mídia dentro).

A estrutura do arquivo é do seguinte modo:
dispositivo   ponto_montagem   sistema_de_arquivos    modo_montagem   checagem   ordem

onde:

dispositivo é o recurso a ser montado.
ponto_montagem é um diretório dentro do sistema que fará a comunicação com o dispositivo.
sistema_de_arquivos é o sistema de arquivos.
modo_montagem são as regras atribuídas à montagem.
checagem checagem do sistema de arquivos. Se a opção for diferente de zero o dispositivo será checado na inicialização.
ordem ordem de checagem.
Read more Exemplo do conteúdo de um arquivo fstab sem a opção do supermount (ver sobre esse assunto na seção anterior):

#dispositivo   ponto_montagem   sist_arquivos  modo_montagem    checagem  ordem
/dev/hda2      /boot            ext2           defaults         1         1
/dev/hda5      swap             swap           defaults         0         0
/dev/hda6      swap             swap           defaults         0         0
/dev/hda7      /                ext2           defaults         1         2
/dev/cdrom     /mnt/cdrom       iso9660        defaults,user,noauto,ro 0    0
/dev/fd0       /mnt/floppy      auto           defaults,user,noauto 0  0
none           /proc            proc           defaults         0  0
none           /dev/pts         devpts         gid=5,mode=620   0  0

Nesse caso o conteúdo do arquivo possui: quatro partições (/dev/hda 2, 5, 6 e 7), uma unidade de leitura de cdrom, uma outra de disquetes e mais duas partições de recursos do próprio sistema.

A leitura de uma das linhas ficaria do seguinte modo:

/dev/hda2 é um dispositivo de blocos (disco rígido) que será montado no diretório /boot com a tecnologia Ext2, tendo a sua montagem, por padrão, efetuada no sistema (será montado assim que o sistema for ativado). Ele irá checar inconsistências na inicialização.

Para o sistema instalado com suporte a supermount o arquivo fica com a seguinte entrada:
# cat /etc/fstab
/dev/hda2   /boot       ext2       defaults         1  1
/dev/hda5   swap        swap       defaults         0  0
/dev/hda6   swap        swap       defaults         0  0
/dev/hda7   /           ext2       defaults         1  2
/mnt/cdrom  /mnt/cdrom  supermount ro,dev=/dev/cdrom,fs=iso9660 0  0
/mnt/floppy /mnt/floppy supermount rw,dev=/dev/fd0,fs=vfat 0  0
none        /proc       proc       defaults         0  0
none         /dev/pts   devpts     gid=5,mode=620   0  0

Para os dispositivos disquete e CD-ROM apareceram o suporte supermont, que facilita o uso dos dispositivos, sendo indicado o dispositivo e o ponto de montagem sobre o mesmo nome. A diferença está na forma da indicação do dispositivo real, que fica dentro das opções do modo_montagem, para o caso do cdrom fica a entrada dev=/dev/cdrom, sendo cdrom um link para um arquivo regular para a montagem de dispositivos.

. Montagem automática de uma partição Windows

Ao ativar o sistema o arquivo /etc/fstab é lido e ele tenta montar todas as linhas que possuam o modo_montagem como _defaults_(padrão), e para que algum dispositivo, partição por exemplo, seja montado nesta etapa, evitando assim que seja montado por linha de comando todas as vezes que o sistema for ativado.

Para exemplificar, será utilizada uma partição com o sistema operacional Windows e sistema de arquivos FAT32.

Read more A montagem diretamente sobre o interpretador de comandos é:
mount -t vfat /dev/hda1 /mnt/win

no qual:

vfat é o tipo do sistema de arquivos;
/dev/hda1 é a partição onde se encontra instalado o Windows;
/mnt/win é um diretório para a montagem do dispositivo.
A montagem automática (para todas as vezes que o sistema for ativado), incluir a seguinte linha dentro do arquivo /etc/fstab:
/dev/hda1   /mnt/win   vfat   defaults   0   0

ALERT! /dev/hda1 é meramente ilustrativo, assim o usuário deve saber se o disco rígido possui o sistema operacional instalado e em qual partição. O ponto de montagem /mnt/win também é ilustrativo podendo o diretório ter outro nome.

Slide 8: Finalizando

Topic revision: r12 - 28 Oct 2016, AdminUser
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback