GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich die Anzahl und Größe von Linux-Ramdisks (/dev/ram0 - /dev/ram15) ändern?

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:

  1. http://www.vanemery.com/Linux/Ramdisk/ramdisk.html [tot]
  2. 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.


Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0?

  3. So ordnen Sie /dev/sdX- und /dev/mapper/mpathY-Geräte vom /dev/dm-Z-Gerät zu

  4. Was sind /dev/zero- und /dev/null-Dateien in Linux

  5. Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

tty (/dev/tty ) vs. pts (/dev/pts) unter Linux

Wann sollte /dev/random vs. /dev/urandom verwendet werden?

Linux – Was bedeutet der Buchstabe „u“ in /dev/urandom?

Wie kann /dev/random oder /dev/urandom mit base64 codiert werden?

Kernel:/dev/kmem und /dev/mem deaktivieren

Unterschiede zwischen /dev/sda und /dev/sda1