Criação de uma RAM Disk Comprimida :: Admirável Mundo Novo




Muito Bem Vindo

Prezado Leitor, a proposta desse Blog é compartilhar conhecimento com as pessoas que trabalham com Linux, Asterisk, OpenSER, e com tecnologia de voz sobre a rede IP em geral, através de tutoriais, dicas, howto, notícias entre outros assuntos.

Atente para termo de uso do conteúdo do blog no rodapé da página.

quarta-feira, 30 de julho de 2008

Criação de uma RAM Disk Comprimida




4) Um Exemplo de Criação de uma RAM Disk Comprimida

---------------------------------------------------------------------------------------------------


Para criar uma imagem RAM disk, você precisará de um dispositivo de bloco reserva sobre o qual construir. Esse pode ser o dispositivo RAM disk em si, ou uma partição de disco não usada (como, por exemplo, uma partição swap não montada). Para esse exemplo, usaremos o dispositivo RAM disk, "/dev/ram0".


Note que essa técnica não deve ser usada em uma máquina com menos de 8 MBytes de RAM. Se estiver usando uma partição de disco reserva em vez do /dev/ram0, então essa restrição não se aplica.


a) Decida sobre o tamanho da RAMdisk que você deseja. Digamos 2 MB para esse exemplo.

A Crie para que possa escrever no dispositivo RAM disk. (Esse passo não é exigido atualmente, mas pode ser no futuro). É inteligente zerar saída da área (especialmente para discos) de forma que a compressão máxima seja alcançada para os blocos não usados da imagem em torno dos quais você está para criar.


dd if=/dev/zero of=/dev/ram0 bs=1k count=2048


b) Crie um sistema de arquivo nela. Digamos o ext2fs para esse exemplo.


mke2fs -vm0 /dev/ram0 2048


c) Monte-a, copie os arquivos que você deseja para ela (por exemplo, /etc/* /dev/* ...) e desmonte-a de novo.


d) Compacte o conteúdo da RAM disk. O nível de compressão será de aproximadamente 50% do espaço usado pelos arquivos. O espaço não usado na RAM disk será comprimido em quase nada.


dd if=/dev/ram0 bs=1k count=2048 | gzip -v9 > /tmp/ram_image.gz


e) Coloque o kernel no disquete.


dd if=zImage of=/dev/fd0 bs=1k


f) Coloque a imagem da RAMdisk no disquete, depois do kernel. Use um offset que seja ligeiramente maior que o kernel, de sorte que você possa colocar um outro (possivelmente maior) kernel no mesmo disquete posteriormente sem sobrescrever a imagem da RAM disk. Um offset de 400 KB para kernels com tamanho em torno de 350 KB seria razoável. Garanta que offset+tamanho de ram_image.gz não seja maior do que o espaço total do seu disquete (normalmente 1440 KB).


dd if=/tmp/ram_image.gz of=/dev/fd0 bs=1k seek=400


g) Use "rdev" para definir o dispositivo de boot, o offset da RAM disk, o flag de prompt, etc.

Para prompt_ramdisk=1, load_ramdisk=1, ramdisk_start=400, um teria 2^15 + 2^14 + 400 = 49552.


rdev /dev/fd0 /dev/fd0

rdev -r /dev/fd0 49552


Pronto! Você agora tem seu disquete de boot/root com a RAMdisk comprimida. Alguns usuários podem desejar combinar os passos (d) e (f) usando um pipe.


--------------------------------------------------------------------------

Paul Gortmaker 12/95


Changelog:

----------


10-22-04: Updated to reflect changes in command line options, remove obsolete references, general cleanup.

James Nelson (james4765@gmail.com)


12-95: Documento Original





Nenhum comentário:




Creative Commons License
Admirável Mundo Novo: Tudo Sobre Asterisk, OpenSER, Linux e Tecnologias de Voz sobre IP
by Cléviton Mendes de Araújo is licensed under a Creative Commons Atribuição 2.5 Brasil License.