Sous Linux, lorsque je démarre, j'ai automatiquement 16 disques RAM de 16 Mo. Cependant, je voudrais créer un très grand disque virtuel pour tester certains logiciels.
J'ai trouvé que je peux ajuster la taille des disques virtuels déjà sur le système avec le paramètre de démarrage du noyau ramdisk_size
, cependant, cela fait des 16 disques virtuels (/ dev / ram0 - / dev / ram15) la taille spécifiée. Donc, si je veux créer un disque virtuel de 1 Go, j'aurais besoin de 16 Go de mémoire.
Fondamentalement, je veux créer un disque virtuel de 10 Go qui serait / dev / ram0. Comment pourrais-je procéder? Je suppose qu'il existe un paramètre de démarrage du noyau, mais je ne l'ai tout simplement pas trouvé.
Pour créer un grand disque RAM après le démarrage sans déconner avec les paramètres du noyau. Utilisez tmpfs, créez un fichier, montez-le via une boucle et montez-le via un système de fichiers:
Probablement un peu de pénalité de performance en passant par plusieurs couches différentes ... mais au moins cela fonctionne.
la source
Une autre option consiste à utiliser les périphériques de boucle (par opposition à la fonction loobpack de mount comme mentionné précédemment):
Maintenant / dev / loop est un périphérique de bloc légitime sur lequel votre application agirait comme un périphérique physique ou un disque virtuel, sauf qu'il est sauvegardé sur fichier. Vous pouvez monter quelque part ou faire appliquer votre application sur le nœud de périphérique, qui implémente les ioctls de bloc standard. Enregistre votre RAM système et utile pour rester dans les tests, etc.
(Vous pouvez même fdisk myfs.img, créer des partitions dessus et utiliser --offset et --sizelimit avec losetup pour pointer chaque / dev / loopX vers des partitions spécifiques de l'image, donc loop0, loop1 deviennent exactement comme sdc1, sdc2, etc. )
la source
Vous pouvez utiliser un fichier de boucle à la place. Créez simplement un fichier de boucle de la taille souhaitée (si vous souhaitez le placer dans un ramdisk tmpfs, très bien), puis formatez le fichier de boucle et montez-le.
la source
L'objet d'un ramdrive est la vitesse. Tmpfs n'est pas un lecteur. Les périphériques en boucle ne sont pas des lecteurs, mais vous pouvez placer une image de lecteur sur un périphérique en boucle. Les disques RAM "sont" des lecteurs et des lecteurs très rapides. Essayez de courir:
et alors:
Vous verrez ce que je veux dire! Mais hdparm détruit parfois le lecteur RAM. Donc, vous devez recommencer.
Parfois, il n'y a pas de périphérique / dev / ram. Pour en faire un:
mais il n'aura aucune taille. Pour lui donner de la taille:
et il s'arrêtera lorsque le lecteur sera plein. La taille maximale est déterminée par le noyau config parm:
CONFIG_BLK_DEV_RAM_SIZE
.Ensuite, formatez-le simplement, c'est-à-dire
Et montez-le:
Un de mes préférés est le débogage du code stocké sur un lecteur RAM. Les compilations sont au moins 10 fois plus rapides que le code stocké sur un disque dur. Les tables de base de données stockées sur ramdrive volent également, mais vous devez disposer d'un script qui écrit régulièrement sur le disque dur. La plupart des administrateurs n'ont pas le courage de mettre des données sur des disques RAM. Et certaines tables sont trop grandes.
la source
Sur lighthouse 64 (puupy linux basé sur slackware), je l'ai fait;
Là vous avez un ramdisk monté en tant que répertoire
/mnt/dvd
où vous pouvez copier coller enregistrer tout faire comme vous le feriez dans un répertoire hd sauf dans ram. n'oubliez pas d'enregistrer vos fichiers sur hd avant l'arrêt.la source