我正在使用帶有 Linux 的 BeagleBone 板。
當我輸入命令“df-h" ,我看到 tmpfs 被安裝了幾次。
這是否意味著所有這些條目都安裝在同一位置,或者 tmpfs 的不同部分?
這讓我想到了另一件事我不太明白。這個 tmpfs 檔案系統實際上是在哪裡建立的?我猜它是在 Linux 啟動時發生的。我應該能夠找到創建此文件系統的腳本嗎?
tmpfs 242.4M 0 242.4M 0% /dev/shm
tmpfs 242.4M 8.3M 234.2M 3% /run
tmpfs 242.4M 0 242.4M 0% /sys/fs/cgroup
tmpfs 242.4M 36.0K 242.4M 0% /tmp
tmpfs 242.4M 16.0K 242.4M 0% /var/volatile
tmpfs 242.4M 16.0K 242.4M 0% /var/lib
答案1
它們都是不同的檔案系統。它們的共同點是檔案系統類型:它們使用tmpfs
驅動程序,將資料儲存在記憶體中。不存在它們都是其中一部分的「超級 tmpfs」:所有實例都是獨立的。
顯示“設備列”是tmpfs
因為許多配置缺乏想像力,並且使用與檔案系統類型相同的字串作為設備名稱。 tmpfs 驅動程式會忽略“裝置名稱”,因為它不會從任何地方載入資料。
這些檔案系統是透過安裝它們來創建的,並透過卸載它們來銷毀它們。例如,以下命令會建立一個 tmpfs 檔案系統,其內容只是根目錄(所有 tmpfs 檔案系統都以這種方式開始),由 root 擁有並具有權限rwxrwxrwt
,最大大小為 100MB:
mount -t tmpfs -o size=100Mi,mode=1777 some_arbitrary_name /mnt
掛載呼叫是在引導腳本中完成的。在過去,您可以mount
在啟動期間執行的 shell 腳本中找到對該命令的呼叫。/var/lib
作為 tmpfs 掛載點並不常見,可以透過 進行設定/etc/fstab
。如今,大多數(如果不是全部)都是由 systemd 掛載的。
1這就是虛擬記憶體:RAM 或交換區。