Linux

如何按需創建塊 RAM 磁碟?

  • August 2, 2020

我了解到,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再次執行似乎不會在其中創建另一個 ram 設備/dev

重新創建步驟:

1)創建磁碟:modprobe brd rd_nr=1 rd_size=4585760 max_part=1

  1. 使用 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

引用自:https://unix.stackexchange.com/questions/433712