GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo cambiar la cantidad y el tamaño de los ramdisks de Linux (/dev/ram0 - /dev/ram15)?

Tiempo de compilación del núcleo

Hay dos opciones de configuración del kernel que puede establecer en su .config archivo:

CONFIG_BLK_DEV_RAM_COUNT=1
CONFIG_BLK_DEV_RAM_SIZE=10485760

Esto configuró mi kernel para crear un ramdisk que es 10G en el momento del arranque.

Notas:

  • CONFIG_BLK_DEV_RAM_SIZE está en KB.
  • No especifique más memoria de la que realmente tiene en su computadora.
  • En menuconfig busque en Controladores de dispositivos->Bloquear dispositivos.

Tiempo de arranque

Puede especificar el tamaño de los discos ram que crea a través del parámetro de arranque del kernel ramdisk_size . Por ejemplo:

kernel /vmlinuz-2.6.32.24 ro root=LABEL=/ rhgb quiet ramdisk_size=10485760

Ahora puedo iniciar mi máquina y crear un sistema de archivos en ella, montarla y usarla exactamente como un dispositivo de bloques.

# mkfs.xfs /dev/ram0
# mount /dev/ram0 /mnt/ramdisk

Fuentes:

  1. http://www.vanemery.com/Linux/Ramdisk/ramdisk.html [muerto]
  2. https://www.kernel.org/doc/Documentation/blockdev/ramdisk.txt

Deberías usar tmpfs para eso en su lugar.

mount -t tmpfs -o size=10g none /mnt/point

Para crear un disco ram grande después del arranque sin perder el tiempo con los parámetros del núcleo. Use tmpfs, cree un archivo, móntelo a través de un bucle y móntelo a través de un sistema de archivos:

mount -t tmpfs -o size=200M tmpfs temp/
cd temp/
dd if=/dev/zero of=disk.img bs=1M count=199
losetup /dev/loop0 disk.img
mkfs.ext4 /dev/loop0
cd ..
mount /dev/loop0 temp2/

Probablemente una pequeña penalización en el rendimiento al pasar por varias capas diferentes... pero al menos funciona.


Linux
  1. Cómo reemplazar un disco duro fallido en el software RAID de Linux

  2. Linux:¿Diferencia entre /dev/console, /dev/tty y /dev/tty0?

  3. ¿Cómo codificar en base64 /dev/random o /dev/urandom?

  4. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

  5. Cómo usa Linux /dev/tty y /dev/tty0

tty (/dev/tty) vs pts (/dev/pts) en Linux

¿Qué son los archivos /dev/zero y /dev/null en Linux?

Linux:diferencia entre /dev/console, /dev/tty y /dev/tty0

kernel:deshabilitar /dev/kmem y /dev/mem

¿Está mal vincular /dev/random a /dev/urandom en Linux?

Diferencias entre /dev/sda y /dev/sda1