コンテンツにスキップ

「RAM ディスク」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
編集の要約なし
 
Tmpfsへの転送ページ
 
(同じ利用者による、間の1版が非表示)
1行目: 1行目:
#redirect[[tmpfs]]
[[Category:ファイルシステム]]
[[de:Ramdisk]]
[[en:Ramdisk]]
[[es:Ramdisk]]
[[fr:ramfs]]
RAM ディスクは RAM の一部を利用したディスクです。多くのディストリビューションでは /dev/ram を利用しますが、Archでは /dev/ram がないので [[Fstab|/etc/fstab]] を使って RAM ディスクを作成します。RAM ディスクを使用するにあたって覚えなくてはならないことは、RAM ディスクは RAM 上にあるため揮発性であることです。RAM ディスク上のデータは PC を止めたり電源を失うと全て失われます。したがって、もしデータを保存したい時は RAM ディスクからハードディスクに保存する必要があります。

==なぜ RAM ディスクを使うのか?==

RAM ディスクは RAM 上にあるので、往来のファイルシステムより非常に高速です。つまり、ファイルを高速に処理したいとき、RAM ディスクを使うことはベストの選択になりえます。参考に、/tmp や [[Firefox Ramdisk|Firefox プロファイル]] などでの利用が人気があります。

==RAM ディスクの作り方==

RAM ディスクをマウントされたファイルシステムとして扱うことで RAM ディスクを作ることができます。デバイスファイルに任意の名前 (ここでは "none") をつけて:

mount -t ramfs none /path/to/location

RAM ディスクを常駐させたいときは、場所を決めて /etc/fstab に次のように加えて下さい:

none /path/to/location ramfs defaults 0 0

余分な RAM をあまり多く持っていない時は、'ramfs' の代わりに 'tmpfs' を使うことが推奨されています。tmpfs は RAM 容量が尽き始めた時にスワップを使いますが、ramfs は使いません。勿論、スワップを食べることは RAM のパフォーマンスの利点を失いますが、余分な RAM を多く持ってないなら意味があります。

==利用サンプル==

/tmp、/var/cache/pacman、/var/lib/pacman を RAM に置くために編集するファイルは /etc/fstab、/etc/rc.local、/etc/rc.local.shutdown で、シャットダウンする前にディスクに同期させます。トピックに関係のないファイルの一部はスペースを節約するために削除されました。

'''/etc/fstab:'''
none /tmp ramfs defaults 0 0
none /mnt/ramdisk ramfs defaults 0 0

'''/etc/rc.local:'''
chmod 777 /tmp
touch /etc/ramdisk.sh
/bin/cat - >> /etc/ramdisk.sh << EOT
#!/bin/sh
cd /var/ && /bin/tar cf abs.tar abs/
cd /var/cache/ && /bin/tar cf pacman.tar pacman/
cd /var/lib/ && /bin/tar cf pacman.tar pacman/
/bin/mkdir /mnt/ramdisk/var/
/bin/mkdir /mnt/ramdisk/var/cache/
/bin/mkdir /mnt/ramdisk/var/lib/
/bin/mv /var/abs /mnt/ramdisk/var && /bin/ln -s /mnt/ramdisk/var/abs /var/abs
/bin/mv /var/cache/pacman /mnt/ramdisk/var/cache && /bin/ln -s /mnt/ramdisk/var/lib/pacman /var/lib/pacman
/bin/mv /var/lib/pacman /mnt/ramdisk/var/lib && /bin/ln -s /mnt/ramdisk/var/cache/pacman /var/cache/pacman
/bin/ln -s /tmp /mnt/ramdisk/tmp
/bin/chmod 777 /mnt/ramdisk/tmp
EOT
/etc/ramdisk.sh &

'''/etc/rc.local.shutdown:'''
echo "Saving contents of ramdisk to harddrive"
rm /var/abs
rm /var/cache/pacman
rm /var/lib/pacman
mv /mnt/ramdisk/var/abs /var
mv /mnt/ramdisk/var/cache/pacman /var/cache
mv /mnt/ramdisk/var/lib/pacman /var/lib

==Useful links==
* [https://bbs.archlinux.org/viewtopic.php?id=50893 How to mount Ramdisk]
* [https://bbs.archlinux.org/viewtopic.php?pid=326269 Ramdrive setup]
* [http://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt Official tmpfs documentation]
* [http://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt Official ramfs documentation]

2016年11月3日 (木) 00:04時点における最新版

転送先: