我了解到,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