modprobe brd rd_nr=1 rd_size=4585760 max_part=1
でRAMブロックデバイスを作成する場合は/dev/ram0
を実行できることを学びましたが、デバイスをフラッシュして(RAMを解放するため)、削除して別のデバイスを作成するとします。 modprobe brd rd_nr=1 rd_size=4585760 max_part=1
をもう一度実行すると、/dev
に別のRAMデバイスが作成されないようです。
手順を再作成します。
1)ディスクを作成します:modprobe brd rd_nr=1 rd_size=4585760 max_part=1
2)RAMディスクを任意のタスクに使用します:例:dd if=/dev/zero of=/dev/ram0 count=1000
3)メモリを解放するblockdev --flushbufs /dev/ram0
4)デバイスファイルを削除します:rm /dev/ram0
5)別のものを作成してみてください:modprobe brd rd_nr=1 rd_size=4585760 max_part=1
6)ls /dev/ram*
でエラーが発生する
rd_nr
を好きな数に変更できることはわかっていますが、それらをその場で作成できるようにしたいと思っています。
編集:tmpfsを作成したくないので、ユースケースにはブロックデバイスが必要です
/dev/ram0
を自分で削除しないでください。 Sudo rmmod brd
を実行すると削除され、スペースが解放されてモジュールが削除されます。その後、modprobe
から再開できます。
私は/ dev/ramに精通していませんが、tmpfsとループデバイスで同様のことができます。
mkdir /ramdisks
mount -t tmpfs tmpfs /ramdisks
dd if=/dev/zero of=/ramdisks/disk0 bs=1M count=100
losetup /dev/loop0 /ramdisks/disk0
mke2fs /dev/loop0
...
losetup -d /dev/loop0
rm /ramdisks/disk0