Unidade C - Gerenciamento de Arquivos

Divisões lógicas de discos

Ao instalarmos um sistema operacional ou ao adicionarmos um disco ao nosso computador, precisamos particionar e formatar este disco. Na verdade, não conseguimos usar um disco, seja ele um HD, um CRROM, uma pendrive ou qualquer outro tipo de unidade de armazenamento sem que estejam devidamente preparados com o particionamento.

Mas o que significa particionar e formatar?

Partições

Particionar um disco significa criar áreas dentro de um disco físico. Cada área será utilizada terá alguma função no nosso sistema. Em sistemas Unix-like precisamos de no mínimo duas partições, sendo:

No entanto, podemos criar estruturas de particionamento diferentes desta mínima procurando organizar nosso computador. Por exemplo:

Ou ainda

Formatação

A formatação é o procedimento de criar um sistema de arquivo em uma partição.  O sistema de arquivo é o jeito pelo qual os arquivos são registrados no disco – cada sistema tem o seu formato. Em outras palavras, um sistema de arquivos do Linux, é diferente do sistema de arquivos do DOS e assim por diante. Veremos mais sobre sistemas de arquivos na unidade H.

 

 

Uma partição contém somente uma um sistema de arquivos por vez

 

 

Particionando e formatando

Para este exercício, será necessário um disco vazio – que pode ser acrescentado na máquina virtual.

Agora ao iniciar a máquina virtual, você terá um novo disco para experimentarmos.

  1. Vendo os HD's e partições disponíveis:
    • Comando # fdisk -l

      root@debian:~# fdisk -l

      Disk /dev/sda: 8589 MB, 8589934592 bytes
      255 heads, 63 sectors/track, 1044 cylinders
      Units = cilindros of 16065 * 512 = 8225280 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disk identifier: 0x0005e4df

      Dispositivo Boot      Start         End      Blocks   Id  System
      /dev/sda1   *           1         996     7993344   83  Linux
      Partition 1 does not end on cylinder boundary.
      /dev/sda2             996        1045      392193    5  Estendida
      /dev/sda5             996        1045      392192   82  Linux swap / Solaris

      Disk /dev/sdb: 8589 MB, 8589934592 bytes
      255 heads, 63 sectors/track, 1044 cylinders
      Units = cilindros of 16065 * 512 = 8225280 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disk identifier: 0x00000000

      O disco /dev/sdb não contém uma tabela de partições válida
      root@debian:~#


    • Analisando a captura de tela acima, verificamos nos destaques sublinhados que foram detectados dois discos, sendo:
      • /dev/sda que corresponde ao primeiro disco usado na instalação;
      • /dev/sdb que corresponde ao segundo disco recentemente adicionado;
    • Observa-se também que o disco /dev/sda possui 3 divisões sendo:
      • /dev/sda1 – partição primária com formato ext3 de 7993344 Bytes;
      • /dev/sda2 – partição estendida de 392193 Bytes;
      • /dev/sda3 – partição swat de 392192 Bytes
    • Observa-se também que o disco /dev/sdb não possui partições. Nosso objetivo agora é criar partições. A título de exemplo, vamos criar 3 partições, sendo:
      • 1 ext3 com 3GBytes – padrão para sistemas linux;
      • 1 ext4 com 3GBytes – evolução do padrão ext3 tenderá a substituir o ext4;
      • 1 fat32 com o resto de bytes – padrão para discos que precisam ser compartilhados como pendrives e carões de memória. Este padrão não tem controle de permissões de acesso aos arquivos.

  2. Particionando
    • Entrar no particionador:
      # fdisk /dev/sdb → Comando (m para ajuda):

       

      Não particionar o disco /dev/sda – caso contrario nosso sistema se perderá

       

      Ao entrar no particionador, recebemos o prompt Comando (m para ajuda): onde podemos digitar m para obter ajuda. Neste pequeno guia, podemos ver, por exemplo, usamos 'q' para sair.
    • Criar a primeira partição: comando n
      • A letra 'n' irá criar nova partição e o particionador pede o tipo que queremos primária ou estendida. - escolhemos partição primária;
      • O prompt nos pergunta qual o número da partição - como é a primeira, escolhemos 1;
      • O prompt nos pergunta o primeiro cilindro (onde a partição começa) – como é nossa primeira partição, escolhemos cilindro 1;
      • O prompt nos pergunta qual o último cilindro (até onde nossa partição vai) – como queremos uma partição de 3GBytes, informamos o TAMANHO da partição com o comando +3G;

        Neste ponto nossa primeira partição está criada.
    • Ver a partição criada: comando p
      • Como podemos ver na captura de tela abaixo a partição /dev/sdb1 foi criada;

        Comando (m para ajuda): p

        Disk /dev/sdb: 8589 MB, 8589934592 bytes
        255 heads, 63 sectors/track, 1044 cylinders
        Units = cilindros of 16065 * 512 = 8225280 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disk identifier: 0xc4cc3d31

        Dispositivo Boot      Start         End      Blocks   Id  System
        /dev/sdb1               1         393     3156741   83  Linux


    • Criar a segunda partição: comando n
      • A letra 'n' irá criar nova partição e o particionador pede o tipo que queremos primária ou estendida. - escolhemos partição primária;
      • O prompt nos pergunta qual o número da partição - como é a segunda, escolhemos 2;
      • O prompt nos pergunta o primeiro cilindro (onde a partição começa) – como é nossa segunda partição, devemos começar de onde a primeira terminou, para isto basta teclarmos enter e o particionador define o primeiro cilindro vago como incio da nossa partição.
      • O prompt nos pergunta qual o último cilindro (até onde nossa partição vai) – como queremos uma partição de 3GBytes, informamos o TAMANHO da partição com o comando +3G;

        Neste ponto nossa segunda partição está criada.
    • Ver as partições criadas: comando p
      • Como podemos ver na captura de tela abaixo as partições /dev/sdb1 e /dev/sdb2 foram criadas;

        Dispositivo Boot      Start         End      Blocks   Id  System
        /dev/sdb1               1         393     3156741   83  Linux
        /dev/sdb2             394         786     3156772+  83  Linux


    • Criar a terceira partição: comando n
      • A letra 'n' irá criar nova partição e o particionador pede o tipo que queremos primária ou estendida - escolhemos partição primária;
      • O prompt nos pergunta qual o número da partição - como é a terceira, escolhemos 3;
      • O prompt nos pergunta o primeiro cilindro (onde a partição começa) – como é nossa terceira partição, devemos começar de onde a segunda terminou, para isto basta teclarmos enter e o particionador define o primeiro cilindro vago como incio da nossa partição.
      • O prompt nos pergunta qual o último cilindro (até onde nossa partição vai) – como esta é a última partição, queremos que ela ocupe todo o resto do disco, basta teclarmos enter. TODO o espaço disponível é alocado a nossa terceira partição.

        Neste ponto nossa terceira partição está criada.
    • Ver as partições criadas: comando p
      • como podemos ver na captura de tela abaixo as partições /dev/sdb1, /dev/sdb2 e /dev/sdb3 foram criadas;

        Dispositivo Boot      Start         End      Blocks   Id  System
        /dev/sdb1               1         393     3156741   83  Linux
        /dev/sdb2             394         786     3156772+  83  Linux
        /dev/sdb3             787        1044     2072385   83  Linux


    • Mudando o tipo das partições: comando t
      • Todas as partições foram criadas para o mesmo tipo de sistema de arquivos. Isto pode ser verificado pelo código 83 em ID – que corresponde ao padrão ext. Precisamos modificar o ID /dev/sdb3 que deve ser preparada para fat32.
      • Após teclar t, o prompt nos pergunta qual o número da partição - como é a terceira, escolhemos 3;
      • O prompt nos pergunta o código hexadecimal que irá identificar o tipo que iremos definir. Aqui pressionamos L para ver os códigos possíveis – o particionador tem uma grande variedade de opções para escolha.
      • Ao verificar a lista, temos (na primeira coluna) encontramos o código b, que corresponde ao padrão W95 FAT32.
      • Ao verificarmos com o comando p temos:
        /dev/sdb3             787        1044     2072385    b  W95 FAT32
  3. Formatando
    • TODAS as partições precisam ser formatadas cada uma com no seu formato correspondente. O Debian possui o utilitário mkfs – acrônimo de "make file system" - que facilita bastante a formatação das partições.

       

      Não formatar partições do disco /dev/sda – caso contrario nosso sistema se perderá

       


      Ainda como root digite mkfs e pressione a tecla TAB – o sistema mostrará todas as formas que o mkfs disponibiliza.
      Comando mkfs:
      • # mkfs.ext3 /dev/sdb1
        formata /dev/sdb1 com o sistema de arquivos ext3;
      • # mkfs.ext4 /dev/sdb2
        formata /dev/sdb2 com o sistema de arquivos ext4
      • # mkfs.vfat /dev/sdb3
        formata /dev/sdb3 com o sitema de arquivos fat32

      Neste momento as 3 novas partições do nosso segundo disco estão prontas para uso.

  4. Usando partições
    • Para podermos usar uma partição em um sistema Unix-Like, precisamos fazer um procedimento de montagem, onde um diretório especialmente criado servira de "link" para nossa partição – sempre que quisermos usar a partição X usamos na verdade o diretório em que ela está "montada". A ideia se assemelha a criar um atalho de um diretório para uma partição – sempre que quisermos usar esta partição precisamos fazer a montagem.

       

      Guia FOCA Linux; 5.11 Pontos de montagem. Disponível em: http://www.guiafoca.org/cgs/guia/inic_interm/ch-disc.html#s-disc-pontomontagem

       


    • Criando os pontos de montagens

      • Você pode criar um ponto de montagem em qualquer lugar do seu sistema de arquivos, no entanto o Debian sugere sempre o diretório /mnt – acrônimo de "mount";
      • Dentro de /mnt precisamos criar um diretório para cada partição a ser montada – para fins de exercício, sugiro os seguintes nomes ponto1, ponto2 e ponto3.
        # mkdir ponto1
        # mkdir ponto2
        # mkdir ponto3

    • montando – comando mount -t <tipo> <origem> <ponto>

      • # mount -t ext3 /dev/sdb1 /mnt/ponto1
        significa montar a partição /dev/sdb1 do tipo ext3 em /mnt/ponto1;
      • # mount -t ext4 /dev/sdb2 /mnt/ponto2
        significa montar a partição /dev/sdb2 do tipo ext4 em /mnt/ponto2;
      • # mount -t vfat /dev/sdb3 /mnt/ponto3
        significa montar a partição /dev/sdb3 do tipo FAT32 em /mnt/ponto3;
      • neste momento as 3 partições estão montadas.

    • Verificando – comando df

      • Como pode ser visto na captura de tela abaixo, as partições foram montadas – este comando é inofensivo;
      • Obviamente, podem ser vistas também as partições do primeiro disco /dev/sda
      • # df -h → irá apresentar resultados mais interessantes.

        root@debian:~# df
        Sist. Arq.           1K-blocos      Usad Dispon.   Uso% Montado em
        /dev/sda1              7867856   3421416   4046776  46% /
        tmpfs                   127372         0    127372   0% /lib/init/rw
        udev                    123032       176    122856   1% /dev
        tmpfs                   127372         0    127372   0% /dev/shm
        /dev/sdb1              3107092     70236   2879020   3% /mnt/ponto1
        /dev/sdb2              3107124     70168   2879120   3% /mnt/ponto2
        /dev/sdb3              2068328         4   2068324   1% /mnt/ponto3


    • Usando

      • Por padrão, o ponto de montagem é de uso exclusivo do root – para usuários comuns poderem trabalhar nestas áreas, sugiro que seja criado uma pasta e passar esta para o usuário e/ou grupo que está precisando – trocando o nome do dono/grupo.
      • A titulo de exercício, vamos criar uma pasta para o usuário aluno1 grupo alunos dentro de /mnt/ponto1
        • # cd /mnt/ponto1 → vamos para ponto de montagem específico;
        • # mkdir teste-aluno1 → cria-se a pasta; se dermos o comando ls -l verificamos que o dono da pasta é o root; precisamos então mudar o dono com o comando chown – acrônimo para "change owner" e chgrp – acrônimo para "change group"
        • # chown -R aluno1 teste-aluno1 → muda o dono do diretório e de todos os seus subdiretórios;
        • # chgrp -R alunos teste-aluno1 → muda o grupo do diretório e todos os seus subdiretórios;
        • # ls -la → para verificar;
        • drwxr-xr-x 2 aluno1 alunos 4096 Jun 2 09:51 teste-aluno1
        • Agora o usuário aluno1 e o grupo alunos poderão usar a pasta teste-aluno1