Atividade 18 – Sistema de arquivos especiais

Propaganda
Sistemas de arquivos especiais
Sistema de arquivos do kernel (procfs)
É um sistema de arquivos especial que apresenta informações sobre os
processos, dispositivos, parâmetros de configuração do sistema operacional. A
forma de apresentação é similar aos sistemas de arquivos comuns, sendo de
fácil navegação e interação. Este sistema é montado em /proc no boot do
sistema e não armazena as modificações de forma permanente. Um exemplo
de uso é a habilitação de roteamento no sistema, que é feita modificando para
o valor 1 o seguinte parâmetro:
echo 1 > /proc/sys/net/ipv4/ip_forward
Outra forma de configurar estes parâmetros é por meio do arquivo
/etc/sysctl.conf e o comando sysctl. Este arquivo é lido na inicialização do
sistema e as modificações são aplicadas. Outra forma de aplicar as
modificações em tempo de execução é por meio da edição do arquivo
/etc/sysctl.conf e a execução do comando sysctl com a seguinte sintaxe:
sysctl -p /etc/sysctl.conf
Para saber os valores dos parâmetros configuráveis do sistema operacional,
pode-se utilizar o comando sysctl -a
Para cada processo existe uma estrutura de diretórios com informações. Por
exemplo, para o processo de PID 10690, pode-se:
Saber o estado do processo:
more /proc/10690/status
Saber a linha de comando utilizada na carga da aplicação:
more /proc/10690/cmdline
Copiar a imagem do executável em memória para disco em /tmp:
cp /proc/10690/exe /tmp
Pseudo Sistema de arquivos (Pseudo File System)
No Linux, é possível a criação de um arquivo que se comporte como um
sistema de arquivo completo. Este procedimento é similar ao que é feito em
discos rígidos de ferramentas de virtualização tais como VmWare e VirtualBox.
Para obter este tipo de sistema de arquivos deve-se usar o parâmetro -o loop
no comando mount. O interessante é que este pseudo sistema de arquivos
pode ser copiado para qualquer outro sistema operacional, mantendo toda a
estrutura de diretórios. Um exemplo de criação de um pseudo sistema de
arquivo:
Para criar um arquivo vazio de 160MB (4096x40000) em /mount, com o nome
de meusistema:
dd if=/dev/zero of=/mount/meusistema bs=4096 count=40000
Para criar o sistema de arquivos do tipo FAT32:
mkfs.vfat /mount/meusistema
Para montar em /mount/pendrive:
mount -t vfat -o loop /mount/meusistema /mount/pendrive
Outro exemplo interessante é a montagem de arquivos .ISO para ver o
conteúdo. Um exemplo de comando seria este:
mount -t iso9660 -o loop /tmp/arquivo.iso /mount/arqcd
O comando mount possui uma opção chamada remount para remontar uma
partição com parâmetros. Um exemplo seria a remontagem de uma partição
para somente leitura, com o objetivo de realizar algum backup sem problemas
de inconsistências. A sintaxe do comando é a seguinte;
mount -o remount,ro /mount/meusistema /mount/lixo
(Remonta o sistema de arquivos /mount/meusistema somente com leitura)
mount -o remount,rw /mount/meusistema /mount/lixo
(Remonta o sistema de arquivos /mount/meusistema com leitura e escrita)
Sistemas de arquivos em CD/DVD (isofs)
Para criar um sistema de arquivos que seja compatível com o padrão ISO9660,
deve utilizar o comando mkisofs (deve ser instalado no CentOS com o
comando yum install mkisofs). O uso é o seguinte:
mkisofs -o /tmp/cd.iso /meucd/
(Monta um arquivo cd.iso contendo a estrutura de diretórios que estão dentro
do diretório meucd)
Para gerar um arquivo .ISO de um cd já existente pode-se utilizar o comando
dd da seguinte forma:
dd if=/dev/cdrom of=/tmp/meucdrom.iso
(Cria um arquivo de nome meucdrom.iso contendo toda a estrutura de arquivos
e diretórios do cd inserido no drive)
Área de Swap
A área de swap pode ser definida na instalação do sistema ou pode ser
adicionada posteriormente. Esta área pode ser uma partição ou um arquivo,
ambas tem a mesma funcionalidade. Para criar uma área de swap deve-se
usar o comando mkswap. Para usar uma partição como swap, aplica-se o
comando passando como parâmetro a identificação da partição.
Por exemplo, para criar a partição de swap no dispositivo /dev/sda6, a sintaxe
do comando seria esta: mkswap /dev/sda6. Para usar um arquivo como área
de swap, deve-se criar o arquivo usando o comando dd e após usar a mesma
sintaxe anterior. Por exemplo, o arquivo /var/swap.file foi criado para ser
utilizado como swap. Para criar a definir o sistema de arquivos usa-se o
comando
mkswap /var/swap.file.
Para ativar as áreas de swap criadas, deve-se utilizar o comando swapon. Um
exemplo de uso para o arquivo /var/swap.file seria swapon /var/swap.file. Para
ativar na inicialização do sistema, deve-se editar o arquivo /etc/fstab. Conforme
o exemplo anterior, a entrada no arquivo /etc/fstab seria a seguinte:
/var/swap.file swap swap defaults 0 0
Sistemas de arquivos em memória
Pode ser necessário por motivos de desempenho, que se use a memória |RAM
como um sistema de arquivos. Este conceito chama-se RAM DISK e pode ser
bastante útil em casos onde a quantidade de dados a serem acessados não é
muito grande, não é necessária o armazenamento persistente e existe grande
demanda por acessos simultâneos, tal como o cache de alguma aplicação.
Deve-se ter muito cuidado com o tamanho desta partição porque o uso da
mesma corresponderá ao uso de memória RAM. Um exemplo de uso:
mount -t tmpfs -o size=500M,mode=0755 tmpfs /mount/ramdisk
(Cria um sistema de arquivos temporário com 500MB de tamanho e o
disponibiliza em
/mount/ramdisk)
Recuperação de arquivos apagados
A recuperação de arquivos em sistemas EXT3 é bastante complicado. Não
existe uma ferramenta que faça esta recuperação automaticamente, mas
existem ferramentas que podem ajudar bastante no procedimento. A
ferramenta Photorec (http://www.cgsecurity.org/wiki/PhotoRec) possibilita a
procura de arquivos apagados por tipo, .jpg, .png, .txt, na partição inteira.
Nas figuras 1 e 2, exemplos das telas do utilitário Photorec. Para executar o
utilitário, basta digitar photorec no shell.
Tarefas:
1) Instalar e utilizar a ferramenta PhotoRec.
1. Testar a ferramenta apagando arquivos e tentado recuperá-los.
2) Criar uma área de ram disk do tamanho da memória RAM alocada para a
máquina virtual. Realizar os seguintes procedimentos na área criada:
1. Criar um arquivo de 20MB na área de RAM disk e analisar o tempo gasto
no procedimento. Para verificar o tempo, utilizar o comando time, de acordo
com o exemplo a seguir:
time dd if=/dev/zero of=/tmp/lixo bs=4096 count=5000
2. Criar um arquivo de 20MB na área normal do sistema de arquivos e
analisar o tempo gasto no procedimento. Comparar o tempo gasto com o da
atividade anterior.
3. Criar um arquivo de 100MB dentro da RAM disk. Verificar a ocupação de
memória RAM do sistema.
4. Criar um arquivo do tamanho da área da RAM disk. Verificar a ocupação
de memória RAM do sistema.
Download