sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #03684
Re: RAM-drev
Allan Nielsen <an@xxxxxxxxxxxxxx> writes:
> Er der nogen der ved hvordan man laver et 20M RAM-drev under linux, samt
> fjerner det igen???
Jeg har lige fundet ud af det her på min kerne 2.0.36. Ramdisk-driveren er
bygget som modul. Default-størrelsen er 4 MB, men den kan ændres med en
parameter når man loader modulet. Her i 2.0.36 er "ramdisk_size" (nævnt i
Documentation/ramdisk.txt) _ikke_ det rette navn; det er derimod "rd_size"
(fundet i drivers/block/rd.c):
# modprobe rd.o rd_size=20480 # Load modul med size 20 MB
# tail -2 /var/log/messages # Check beskeder...
[...] kernel: Ramdisk driver initialized : 16 ramdisks of 20480K size
[...] kernel: RAMDISK: Loaded as module.
# dd if=/dev/ram1 bs=1k | wc -c # Test læsning. Ignorer I/O-fejlen.
dd: /dev/ram1: Input/output error
20480+0 records in
20480+0 records out
20971520
# mke2fs -vm0 /dev/ram1 20480 # Lav EXT2-filsystem på en hel ramdisk
[...]
5136 inodes, 20480 blocks
0 blocks (0.00%) reserved for the super user
# mkdir /mnt/ram # Lav et mount-punkt
# mount /dev/ram1 /mnt/ram # Mount filsystemet på mount-punktet
# chmod 1777 /mnt/ram # Giv samme adgang som til /tmp
# ls -la /mnt/ram
total 14
drwxrwxrwt 3 root root 1024 Mar 5 19:11 .
drwxr-xr-x 6 root root 1024 Mar 5 18:49 ..
drwxr-xr-x 2 root root 12288 Mar 5 19:11 lost+found
Så er den klar til brug. Fjernes igen:
# umount /mnt/ram
# modprobe -r rd.o
Hvis du ofte skal bruge en 20 MB ramdisk, så prøv at skrive
options rd rd_size=20480
i /etc/conf.modules, og undlad modprobe-kommandoerne. Modulet skulle nu
blive autoloadet korrekt når /dev/ram* tages i brug, og blive auto-fjernet
når det ikke længere bruges (efter umount).
For 2.2-kerner er det vist lidt anderledes. Det må andre svare på.
Hilsen Ulrik
--
% uname -a; uptime
Linux laks.kampsax.dk 2.0.36 #1 Sun Dec 6 20:05:12 MET 1998 i686 unknown
7:46pm up 88 days, 23:12, 3 users, load average: 0.07, 0.04, 0.01
References
-
RAM-drev
From: Allan Nielsen, 1999-03-05