No Linux, quando eu inicializo, automaticamente tenho 16 discos rígidos de 16 MB; no entanto, gostaria de criar um disco rígido realmente grande para testar algum software.
Descobri que posso ajustar o tamanho dos ramdisks já existentes no sistema com o parâmetro de inicialização do kernel ramdisk_size
, no entanto, isso torna todos os 16 ramdisks (/ dev / ram0 - / dev / ram15) com o tamanho especificado. Então, se eu quiser criar um ramdisk de 1 GB, precisarei de 16 GB de memória.
Basicamente, quero criar um ramdisk de 10 GB que seria / dev / ram0. Como eu faria isso? Presumo que exista um parâmetro de inicialização do kernel, mas simplesmente não o encontrei.
Para criar um grande disco ram após a inicialização sem mexer nos parâmetros do kernel. Use tmpfs, crie um arquivo, monte-o via loop e monte-o através de um sistema de arquivos:
Provavelmente um pouco de penalidade de desempenho passando por várias camadas diferentes ... mas pelo menos funciona.
fonte
Outra opção é usar os dispositivos de loop (em oposição ao recurso loobpack do mount, como mencionado anteriormente):
Agora / dev / loop é um dispositivo de bloco legítimo no qual seu aplicativo atuaria como um dispositivo físico ou ramdisk, exceto que é feito com backup de arquivo. Você pode montar em algum lugar ou fazer com que o aplicativo atue no nó do dispositivo, que implementa o bloco padrão ioctls. Salva sua memória ram do sistema e útil para acompanhar casos de teste, etc.
(Você pode até fdisk myfs.img, criar partições nele e usar --offset e --sizelimit com losetup para apontar cada / dev / loopX para partições específicas da imagem, para que loop0, loop1 se tornem exatamente como sdc1, sdc2, etc. )
fonte
Você pode usar um arquivo de loop. Apenas crie um arquivo de loop do tamanho desejado (se você deseja colocá-lo em um ramdisk tmpfs, tudo bem) e, em seguida, formate o arquivo de loop e monte-o.
fonte
O objeto de uma ramdrive é a velocidade. Tmpfs não é uma unidade. Os dispositivos de loop não são unidades, mas você pode colocar uma imagem de unidade em um dispositivo de loop. Os discos ram "são" unidades e unidades muito rápidas. Tente executar:
e depois:
Você verá o que eu quero dizer! Mas o hdparm às vezes destrói o drive ram. Então, você precisa fazê-lo novamente.
Às vezes, não há dispositivos / dev / ram. Para fazer um:
mas não terá tamanho. Para dar tamanho:
e irá parar quando a unidade estiver cheia. O tamanho máximo é determinado pela configuração do kernel parm:
CONFIG_BLK_DEV_RAM_SIZE
.Em seguida, apenas formate-o, ou seja,
E monte-o:
Um dos meus favoritos é o código de depuração armazenado em um ramdrive. As compilações têm pelo menos 10 vezes a velocidade do código armazenado no disco rígido. As tabelas de banco de dados armazenadas no ramdrive também voam, mas você deve ter um script que grave no disco rígido periodicamente. A maioria dos administradores não tem coragem de colocar dados em discos ram. E algumas tabelas são muito grandes.
fonte
No farol 64 (puupy linux baseado em slackware) eu fiz isso;
Lá você tem um ramdisk montado como um diretório
/mnt/dvd
onde você pode copiar e colar salvar, faça tudo como faria em um diretório hd, exceto no ram. lembre-se de salvar seus arquivos em hd antes do desligamento.fonte