# Ramdisk

## AntonWert

Hallo,

ich suche eine Möglichkeit eine Ramdisk anzulegen ohne den Kernel modifizieren zu müssen, einfach als root in der Komandozeile.

Geht sowas überhaupt?

Anton

----------

## Max Steel

Gibt es ja. Hier wurde eine Möglichkeit beschrieben:

http://gentoo-wiki.stefreak.de/de.gentoo-wiki.com/Eigene_LiveCD_bauen_ohne_catalyst.html#Das_initrd_Abbild_erstellen

Was du auch noch machen könntest wäre genkernel --no-mrproper --no-clean --oldconfig ramdisk Aber ich weiß leider nicht ob dabei trotzdem der Kernel modifiziert wird.

----------

## Yamakuzure

Sollten diese beiden Optionen:

```
CONFIG_TMPFS=y

CONFIG_TMPFS_POSIX_ACL=y
```

Bei dir gesetzt sein, kannst du einfach "mount" verwenden.  :Wink: 

Hier steht mehr dazu:

```
less /usr/src/linux/Documentation/filesystems/tmpfs.txt
```

----------

## SinoTech

 *Yamakuzure wrote:*   

> Sollten diese beiden Optionen:
> 
> ```
> CONFIG_TMPFS=y
> 
> ...

 

CONFIG_TMPFS - Sollte bereits gesetzt sein da /dev in der Regeln in einem tmpfs liegt

CONFIG_TMPFS_POSIX_ACL - Braucht er nicht

Wenn das was er mounten will eine Datei ist, muss das immer über loop gehen. Entweder über losetup ein device anlegen und dann mounten (wie im Wiki), oder die Option "-o loop" beim mounten angeben.

Mit losetup:

```

dd if=/dev/zero of=/boot/initrd bs=1024k count=8

losetup /dev/loop0 /boot/initrd

mke2fs /dev/loop0

mkdir /mnt/initrd

mount /dev/loop0 /mnt/initrd

```

Ohne losetup

```

dd if=/dev/zero of=/boot/initrd bs=1024k count=8

mke2fs /boot/initrd

mkdir /mnt/initrd

mount -o loop /boot/initrd /mnt/initrd

```

Cheers,

Sino

----------

## Yamakuzure

Aha!

Ich wollte mit dem tmpfs eben darauf hinaus, dass es eh immer gesetzt ist, er also den Kernel nicht zu ändern braucht. (Nein, die Access Control Lists sind nicht zwingend erforderlich, ein grep brachte bei mir nur beide ans licht.)

Klar, wenn es eine Datei werden soll, also ein Container und _keine_ Ramdisk, ist Sinos Weg ideal. (Ich wäre dann so faul das ohne losetup zu machen  :Wink: )

 *Wikipedia zu Ramdisk wrote:*   

> Eine RAM-Disk, auch RAM-Floppy oder Ramdrive ist ein virtueller und temporärer Datenträger im Arbeitsspeicher eines Computers. Sie wird hauptsächlich eingesetzt, wenn andere physikalische Speichermedien zu langsam oder, während der Rechner neu aufgesetzt wird, nicht verfügbar sind.

  *Wikipedia zu Loop Device wrote:*   

> unter Linux ein Blockdevice, das keinem physischen Gerät entspricht, sondern als zugrundeliegenden Speicher eine Datei nutzt. Da der Kernel nur Dateisysteme mounten kann, die sich auf Blockdevices befinden, werden Loop-Devices in der Regel genutzt, um als Dateien vorliegende Dateisystem-Images zu mounten.

 

----------

## SinoTech

 *Yamakuzure wrote:*   

> 
> 
> [...]
> 
> Klar, wenn es eine Datei werden soll, also ein Container und _keine_ Ramdisk, ist Sinos Weg ideal. (Ich wäre dann so faul das ohne losetup zu machen )
> ...

 

War mir nicht sicher ob AntonWert eine RAM-Disk (also temporär ein Dateisystem im RAM) oder eine InitRD (initialize Ram-Disk) wollte. Der Link von Max Steel läuft jedenfalls auf eine Initrd raus.

In ersterem Fall reicht natürlich schon der folgende Befehl:

```

$ mount -t tmpfs -o size=100M none ${DESTINATION}

```

Das erstellt eine RAM-Disk der Größe 100 MB unter "DESTINATION".

Cheers,

Sino

----------

## Yamakuzure

Und wichtig zu erwähnen: Eine Ramdisk mit tmpfs verhält sich wie die gute alte Amiga Ramdisk. D.h. sie verbraucht nur so viel Speicher, wie auch drin ist. Die Größenangabe beim Mounten ist ein Limit, und keine reservierte Größe.

----------

## Max Steel

 *SinoTech wrote:*   

>  *Yamakuzure wrote:*   
> 
> [...]
> 
> Klar, wenn es eine Datei werden soll, also ein Container und _keine_ Ramdisk, ist Sinos Weg ideal. (Ich wäre dann so faul das ohne losetup zu machen )
> ...

 

Huch... Ich hab RAM-Disk und Kernel gelesen, dann kam mir sofort die Idee von wegen initrd ^^ Das es auch RAM-Disks sein könnten hatte ich nicht mehr drüber nachgdacht ^^

----------

