Si l'on veut utiliser 'initrd' il faut l'util
"freeramdisk" afin de lib�rer la m�moire de /dev/ramX.
Cet util n'�tant pas disponible sous mandrake et celui
de suse ayant des d�pendances qui n'ont rien � voir
avec les autres distribs, voici la source de
'freeramdisk' � compiler et � ins�rer dans /usr/bin.
ci-joint.
Forme: freeramdisk /dev/ramX
(X = le n� �tant celui sous lequel la m�moire a �t�
cr�e avec mke2fs)
Ex.: mk2fs -m0 /dev/ram0 300
Il s'agit ici du n� 0.
Eric MC
# Name: freeramdisk
#include <stdio.h>
#include <string.h>
#include <sys/mount.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
/*#include <linux/fs.h>*/
#include <errno.h>
main(int argc, char **argv)
{
char rname[256]="/dev/ram0";
char b[256];
int f;
if (argv[1]) strcpy(rname,argv[1]);
#if 0 /* don't use on a living system, /etc/mtab is not
updated */
if (umount(rname) && (errno != ENOENT)) {
sprintf(b,"freeramdisk: cannot umount %s
%d",rname,errno);
perror(b);
exit(1);
}
#endif
if ((f=open(rname,O_RDWR)) == -1) {
sprintf(b,"freeramdisk: cannot open %s",rname);
perror(b);
exit(1);
}
ioctl(f,BLKFLSBUF);
close(f);
}