如何按需创建 Block RAM 磁盘?

如何按需创建 Block RAM 磁盘?

我了解到,modprobe brd rd_nr=1 rd_size=4585760 max_part=1如果我想在 at 创建一个 ram 块设备,/dev/ram0但可以说我想刷新该设备(以释放 ram),然后删除它并创建另一个。我该如何执行此操作,modprobe brd rd_nr=1 rd_size=4585760 max_part=1再次运行似乎不会创建另一个内存设备/dev

重新创建步骤:

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,我的用例需要块设备

答案1

你不应该删除/dev/ram0自己。当您执行此操作时,它将被删除sudo rmmod brd,从而释放空间并删除模块。然后您可以从 重新开始modprobe

答案2

我不熟悉 /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

相关内容