Tempo di compilazione del kernel
Ci sono due opzioni di configurazione del kernel che puoi impostare nel tuo .config
file:
CONFIG_BLK_DEV_RAM_COUNT=1
CONFIG_BLK_DEV_RAM_SIZE=10485760
Questo ha configurato il mio kernel per creare un ramdisk che è 10G al momento dell'avvio.
Note:
CONFIG_BLK_DEV_RAM_SIZE
è in KB.- Non specificare più memoria di quanta ne hai effettivamente nel tuo computer.
- In
menuconfig
guarda sotto Device Drivers->Block Devices.
Tempo di avvio
Puoi specificare la dimensione dei dischi ram che crei tramite il parametro di avvio del kernel ramdisk_size
. Ad esempio:
kernel /vmlinuz-2.6.32.24 ro root=LABEL=/ rhgb quiet ramdisk_size=10485760
Ora posso avviare la mia macchina e creare un file system su di essa, montarla e usarla esattamente come un dispositivo a blocchi.
# mkfs.xfs /dev/ram0
# mount /dev/ram0 /mnt/ramdisk
Fonti:
- http://www.vanemery.com/Linux/Ramdisk/ramdisk.html [morto]
- https://www.kernel.org/doc/Documentation/blockdev/ramdisk.txt
Dovresti invece usare tmpfs per quello.
mount -t tmpfs -o size=10g none /mnt/point
Per creare un disco ram di grandi dimensioni dopo l'avvio senza fare confusione con i parametri del kernel. Usa tmpfs, crea un file, montalo tramite loop e montalo tramite un filesystem:
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/
Probabilmente un po' di penalizzazione delle prestazioni attraverso più livelli diversi... ma almeno funziona.