我需要使用C++將虛擬機安裝到Linux中的目錄。我想讓它像一個用戶(沒有sudo
)。在Linux上使用C++創建虛擬硬盤
我需要在我創建的文件上調用一個應用程序,它會經常發生。將其寫入HDD非常緩慢。
我發現剛:
system("mkdir /mnt/ram");
system("mount -t ramfs -o size=20m ramfs /mnt/ram");
,但說不好。我想成爲一個普通用戶,並且命令mount
只能作爲root用戶調用。 我能做什麼?
我需要使用C++將虛擬機安裝到Linux中的目錄。我想讓它像一個用戶(沒有sudo
)。在Linux上使用C++創建虛擬硬盤
我需要在我創建的文件上調用一個應用程序,它會經常發生。將其寫入HDD非常緩慢。
我發現剛:
system("mkdir /mnt/ram");
system("mount -t ramfs -o size=20m ramfs /mnt/ram");
,但說不好。我想成爲一個普通用戶,並且命令mount
只能作爲root用戶調用。 我能做什麼?
我檢查if /tmp
是一個ramfs,但事實並非如此。它在HDD上創建文件。但是當我運行df -h
它輸出:
rootfs 25G 9,4G 15G 40%/
devtmpfs 1,9G 0 1,9G 0% /dev
tmpfs 1,9G 1,6G 347M 83% /dev/shm
tmpfs 1,9G 1,3M 1,9G 1% /run
/dev/mapper/vg_micro-root 25G 9,4G 15G 40%/
tmpfs 1,9G 0 1,9G 0% /sys/fs/cgroup
tmpfs 1,9G 0 1,9G 0% /media
/dev/mapper/vg_micro-stack 289G 191M 274G 1% /stack
/dev/mapper/vg_micro-home 322G 40G 266G 14% /home
/dev/sda2 485M 89M 371M 20% /boot
/dev/sda1 200M 19M 182M 10% /boot/efi
這意味着tmpfs
(的ramdisk)爲:/dev/shm
,/run
,/sys/fs/cgroup
和/media
。但是,其中只有一個是用於使用文件的進程之間通信的臨時ramdisk。 Here是/dev/shm
的說明和用法。唯一的是tmpfs
will not grow dynamically,但爲了我的目的,它將足夠(20MB - 1GB)。
正如我們注意到的那樣,'/ tmp'中的文件將在RAM中。不是因爲它是一個tmpfs,而是因爲文件緩存很懶。 – MSalters
對於用戶空間ramfs解決方案,可以使用python-fuse-ramfs。
您可以將文件讀取一次到內存並只處理內存中的表示。完成後,將其寫回磁盤。 – MadScientist
爲什麼不添加一個tmpfs條目到'fstab'文件?添加'用戶'標誌,以便用戶可以根據需要安裝它。或者只是使用內存映射文件。 –
我想獲得超級用戶權限是唯一的方法。這可以用一些C++代碼來完成,或者用setuid位給你的可執行文件root權限。 – Paolo