OT: Re: [Vienna-pm] Linux-Ram-Disk

Bernd Petrovitsch bernd at firmix.at
Tue Feb 22 03:25:29 PST 2005


On Tue, 2005-02-22 at 11:20 +0100, Carl A. Schreiber wrote:
[...]
> Das Ganze ist für ein Minimal-Linux also ohne X (Firewll und Fileserver, die 
> ständig laufen sollen. Ich will hauptsächlich erreichen, dass die Zugriffe 
> auf die Festplatte stark minimiert werden, um so die Lebensdauer der hd zu 
> erhöhen. Es gibt zwar 

Erhöht das tatsächlich die Lebensdauer? Davon hab ich noch nie gehört.

> aber nach dem Booten durch ein script (Damit das Ganze nahe an der original 
> Installation bleibt!!). Dorthin möchte ich die drei Ordner 
> 	/etc, /tmp und /var 
> kopieren (Frage: /tmp muss ich eigentlich nur erzeugen, da alles da drin 
> sowieso neu erstellt wird - oder?), lt. du zusammen < 55 MB, es sollten also 

Ja.

> Also wenn ich mit
> 	mke2fs /dev/ram0
> 	mount /dev/ram0 /ram
> 	    (Frage: könnte es nicht auch ein 
> 		type tmpfs oder ein ramfs sein 
> 		 - oder besser nicht? Unterschied?)
> 	cp -r /etc /var /ram
> ein Ram erzeuge, dann erzeuge ich auf der HD (die ich ja entlasten will) 
> das /dev/ram0 und /ram und läuft dann nicht jeder Zugriff doch über die HD?

Was heißt "auf der Harddisk" und warum sollte das so sein (maW *wo* auf
der Harddisk soll was passieren?).

> ABER: was muss ich jetzt tun, dass Linux statt auf /etc auf /ram/etc zugreift 
> ohne die HD zu 'berühren'? Geht das überhaupt?

a) einen SymLink anstatt /etc machen 
b) Mit `mount --bind' drüber mounten.
Du hast ein kleines Problem bei der Sache: Beim Booten von der Disk
brauchst du /etc auf der Disk (zumindest ein paar relevante Files udn
Dirtectories), nachher willst du ein anderes im RAM haben (auch wenn es
identen Content haben soll) und trotzdem das auf er Disk weiterhin
irgendwie lesen und schreiben können.

Ohne den Link gelesen zu haben: Es scheint mir einfacher, über eine
geeignete initrd ein Rootfilesystem im RAM zu haben und die Filesysteme
irgendwo zu mounten - entweder passend, wenn es geht oder geeignete
SymLinks oder `mount --bind`s zu machen.
Ja, das ist ist mbMn mehr Arbeit und du wirst mit einer intrd umgehen
lernen (müssen).

> Zusatzfrage, wie kann ich überprüfen ob die RAM-Disk existiert, für mich gibt 
> es nach 
> 	mke2fs /dev/ram0
> 	mount /dev/ram0 /ram
> einen Ordner /ram und drin einen Ordner /lost+found, wie aber weiß ich,  dass 
> der nicht auf der Platte liegt?

1) Du schaust im Source nach, wie das Device /dev/ram0 implementiert ist
und überzeugts die selber.
2) Etwas empirischer und einfacher: Du machst es. Dann schaltest du die
HD ab (softwaremäßig!). Dann machst du alles mögliche
(lesen/schreiben/sync/...) und die Disk sollte dann nicht anspringen.
Springt die Disk dann doch an, dann wird es mühsam, weil auich andere
Programme auf die Disk schreiben könnten.
3) Ganz einfach ohne Aufwand: Du glaubst es einfach.

	Bernd
-- 
Firmix Software GmbH                   http://www.firmix.at/
mobil: +43 664 4416156                 fax: +43 1 7890849-55
          Embedded Linux Development and Services



More information about the Vienna-pm mailing list