17.9. Discos de Memória

Reorganizado e aprimorado por Marc Fonvieille.

Além de discos físicos, o FreeBSD também suporta a criação e uso de discos de memória. Um uso possível para um disco de memória é acessar o conteúdo de um sistema de arquivos ISO sem a sobrecarga de primeiro gravá-lo em um CD ou DVD e, em seguida, montar a mídia CD/DVD .

No FreeBSD, o driver md(4) é usado para fornecer suporte para discos de memória. O kernel GENERIC inclui este driver. Ao usar um arquivo de configuração de kernel personalizado, certifique-se de incluir esta linha:

device md

17.9.1. Anexando e Desanexando Imagens Existentes

Para montar uma imagem do sistema de arquivos existente, use o mdconfig para especificar o nome do arquivo ISO e um número de unidade livre. Em seguida, consulte esse número de unidade para montá-lo em um ponto de montagem existente. Uma vez montado, os arquivos na imagem ISO aparecerão no ponto de montagem. Este exemplo anexa o arquivo diskimage.iso ao dispositivo de memória /dev/md0 e monta o dispositivo de memória em /mnt:

# mdconfig -f diskimage.iso -u 0
# mount -t cd9660 /dev/md0 /mnt

Note que -t cd9660 foi usado para montar uma imagem ISO. Se um número de unidade não for especificado com -u, o mdconfig alocará automaticamente um dispositivo de memória não utilizado e exibirá o nome da unidade alocada, como md4. Consulte mdconfig(8) para mais detalhes sobre este comando e suas opções.

Quando um disco de memória não está mais em uso, seus recursos devem ser liberados de volta ao sistema. Primeiro, desmonte o sistema de arquivos e use o mdconfig para desanexar o disco do sistema e liberar seus recursos. Para continuar este exemplo:

# umount /mnt
# mdconfig -d -u 0

Para determinar se algum disco de memória ainda está conectado ao sistema, digite mdconfig -l.

17.9.2. Criando um Disco Virtual Baseado em Arquivo ou Memória

O FreeBSD também suporta discos virtuais onde o armazenamento a ser utilizado é alocado a partir de um disco rígido ou de uma área de memória. O primeiro método é comumente referido como um disco virtual baseado em arquivo e o segundo como um disco virtual baseado em memória. Ambos os tipos podem ser criados usando o mdconfig.

Para criar um novo disco virtual baseado em memória, especifique um tipo de swap e o tamanho do disco de memória a ser criado. Em seguida, formate o disco de memória com um sistema de arquivos e monte como de costume. Este exemplo cria um disco de memória de 5M na unidade 1. Esse disco de memória é formatado com o sistema de arquivos UFS antes de ser montado:

# mdconfig -a -t swap -s 5m -u 1
# newfs -U md1
/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
        using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.
        with soft updates
super-block backups (for fsck -b #) at:
 160, 2752, 5344, 7936
# mount /dev/md1 /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity  Mounted on
/dev/md1        4718    4  4338     0%    /mnt

Para criar um novo disco virtual baseado em arquivo, primeiro aloque a área que será usada para o disco. Esse exemplo cria um arquivo vázio de 5MB chamado newimage:

# dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out

Em seguida, anexe esse arquivo a um disco de memória, rotule o disco de memória e formate-o com o sistema de arquivos UFS, monte o disco de memória e verifique o tamanho do disco com backup de arquivo:

# mdconfig -f newimage -u 0
# bsdlabel -w md0 auto
# newfs -U md0a
/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048
        using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.
super-block backups (for fsck -b #) at:
 160, 2720, 5280, 7840
# mount /dev/md0a /mnt
# df /mnt
Filesystem 1K-blocks Used Avail Capacity  Mounted on
/dev/md0a       4710    4  4330     0%    /mnt

São necessários vários comandos para criar um disco virtual baseado em arquivo ou memória usando mdconfig. O FreeBSD também vem com o mdmfs que configura automaticamente um disco de memória, formata-o com o sistema de arquivos UFS e o monta. Por exemplo, depois de criar newimage com dd, esse comando é equivalente a executar os comandos bsdlabel, newfs e mount mostrados acima:

# mdmfs -F newimage -s 5m md0 /mnt

Para criar um novo disco virtual baseado em memória com o mdmfs, use este comando:

# mdmfs -s 5m md1 /mnt

Se o número da unidade não for especificado, o mdmfs selecionará automaticamente um dispositivo de memória não utilizado. Para mais detalhes sobre mdmfs, consulte mdmfs(8).

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.