Kernel-Kompilierungszeit
Es gibt zwei Kernel-Konfigurationsoptionen, die Sie in Ihrem .config
einstellen können Datei:
CONFIG_BLK_DEV_RAM_COUNT=1
CONFIG_BLK_DEV_RAM_SIZE=10485760
Dies hat meinen Kernel so konfiguriert, dass er beim Booten eine Ramdisk erstellt, die 10 GB groß ist.
Hinweise:
CONFIG_BLK_DEV_RAM_SIZE
ist in KB.- Geben Sie nicht mehr Speicher an, als Ihr Computer tatsächlich über RAM verfügt.
- In
menuconfig
schau mal unter Gerätetreiber -> Geräte blockieren.
Startzeit
Die Größe der von Ihnen erstellten Ramdisks können Sie über den Kernel-Boot-Parameter ramdisk_size
festlegen . Zum Beispiel:
kernel /vmlinuz-2.6.32.24 ro root=LABEL=/ rhgb quiet ramdisk_size=10485760
Jetzt kann ich meine Maschine booten und ein Dateisystem darauf erstellen, es mounten und genau wie ein Blockgerät verwenden.
# mkfs.xfs /dev/ram0
# mount /dev/ram0 /mnt/ramdisk
Quellen:
- http://www.vanemery.com/Linux/Ramdisk/ramdisk.html [tot]
- https://www.kernel.org/doc/Documentation/blockdev/ramdisk.txt
Sie sollten dafür stattdessen tmpfs verwenden.
mount -t tmpfs -o size=10g none /mnt/point
Um nach dem Booten eine große RAM-Disk zu erstellen, ohne mit Kernel-Parametern herumzuspielen. Verwenden Sie tmpfs, erstellen Sie eine Datei, hängen Sie sie über eine Schleife ein und hängen Sie diese über ein Dateisystem ein:
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/
Wahrscheinlich eine kleine Leistungseinbuße beim Durchlaufen mehrerer verschiedener Schichten ... aber zumindest funktioniert es.