關於設定Debian Jessie /etc/default/tmpfs遇到的狀況 [論壇 - 新手村]
正在瀏覽:
1 名遊客
關於設定Debian Jessie /etc/default/tmpfs遇到的狀況 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2010/9/16 14:08 所屬群組:
已註冊使用者 等級: 25
HP : 0 / 619
![]() |
系統環境預設值為 Debian Jessie + gnome + 硬體:4GB RAM
系統預設值環境在"系統監控"可以查到: 裝置 tmpfs 目錄 /dev/shm 總數 2.1GB 可用空間 2.1GB 已經使用 225.3kB 然而我進入 /dev/shm 裏頭查看 可以發現 有好幾個 檔案容量均為 67.1MB的 pulse-shm-XXXXXXXXXX 檔案。 接下來,"我需要"擴充 /dev/shm 裏頭的空間,我需要增大到2.5GB, 我會利用這個空間來 擺放/指向 例如 gimp的"置換檔",網路瀏覽器的cache路徑等等。 /dev/shm下的資料,我是"不需要"另存檔案的,關機後消失沒有差。 於是我開始查閱 /etc/default/tmpfs 檔案的內容該怎麼設定??? 有嘗試man tmpfs了,個人英文文件能消化的有限, 我把 SHM_SIZE= 這行開頭的井字註解拿掉,並且填入數值 2500000000 存檔重開機後,發現"沒有"效果, 裝置 tmpfs 目錄 /dev/shm 總數仍然還是 2.1GB 。 我該怎麼去修改tmpfs的參數設定值??? 我原本的這套做法,在debian wheezy+ gnome是有效的, 為什麼在Debian Jessie + gnome就無效了??? 我該修改些什麼才能再生效???
2015/5/22 13:18
|
||||||||||
----------------
個人網路文字作品集: MacOSX10.5.8 安裝、設定、使用,個人經驗分享,正體中文版;以Windows思維用Linux,GNOME桌面篇;PDF http://www.scribd.com/ianian1979 全字庫注音輸入法表格檔2019 (搭配CNS11643中文全字庫規格的Unicode格式傳統注音輸入法對照表) https://sites.google.com/site/ianho7979/InputMethodTables |
|||||||||||
![]() |
回覆: 關於設定Debian Jessie /etc/default/tmpfs遇到的狀況 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
IanHo 寫到: 想起來「這篇」有討論相關的。 但這部份,我也沒實作過,也沒概念,所以只是先貼網址給你。 盼有沒有人有經驗的,來分享一下作法。 ![]()
2015/5/22 17:06
|
||||||||||
![]() |
回覆: 關於設定Debian Jessie /etc/default/tmpfs遇到的狀況 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
剛查詢「SHM_SIZE tmpfs」
查到「這篇」,「這篇」,「這篇」 然後根據剛剛提到的「這篇」 在「/etc/fstab」 加入下面這一行
或是執行下面的指令加入
存檔重開機後 執行下面的指令查看
就會看到「/dev/shm」的大小有變了 另外發現 若沒有在「/etc/fstab」設定掛載「/run/shm」的話 「/run/shm」,預設是「symbolic link」到「/dev/shm」。 可以執行下面的指令觀看
顯示
也可以直接下面的指令,直接更改大小,不過下次開機還是依據剛剛「/etc/fstab」的設定就是了。
另外我觀看 $ man tmpfs 會看到
主要提的是「Maximum size of /run/shm (was previously /dev/shm)」, * 注意是「/run/shm」,而非「/dev/shm」。 * 可是剛上面是「/run/shm」,預設是「symbolic link」到「/dev/shm」。 * 還有「Maximum」,指的應該是最大值吧。 這部份我就不知道要怎麼觀看,設定「SHM_SIZE」後,會怎麼影響了。 等會再來測試其他的目錄 ![]() samwhelp 寫到:IanHo 寫到:
2015/5/22 18:57
|
||||||||||
![]() |
回覆: 關於設定Debian Jessie /etc/default/tmpfs遇到的狀況 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2010/9/16 14:08 所屬群組:
已註冊使用者 等級: 25
HP : 0 / 619
![]() |
我需要修正我的提問內容:
系統環境預設值為 Debian Jessie + gnome + 硬體:4GB RAM 系統預設值環境在"系統監控"可以查到: 裝置 tmpfs 目錄 /dev/shm 總數 2.1GB 可用空間 2.1GB 已經使用 225.3kB 然而我進入 /dev/shm 裏頭查看,可以發現有好幾個檔案容量均為67.1MB的 pulse-shm-XXXXXXXXXX 檔案。 接下來,"我需要"擴充 /dev/shm 裏頭的空間,我需要增大到2.5GB, (若我的主機有8GB RAM,我會要把 /dev/shm 增大到5GB) 我會利用這個空間來 擺放/指向 例如gimp的"置換檔",網路瀏覽器的cache路徑等等。 /dev/shm下的資料,我是"不需要"另存檔案的,關機後消失沒有差。 我期望/需求的操作設定情境是,在"不需要"額外於終端機內下指令的"前提"下, 不需造再新增更多字串的"前提"下(但是可以改字串/新增數值/改數值) “有沒有”哪個"現成的"某個路徑下的"參數設定檔案"內的某個字串,可以讓我修改/新增數值? 然後重開機之後,裝置 tmpfs 目錄 /dev/shm "總數"的空間, 就可以是我填入的數值(或著很接近的數值)??? 我有查閱 /etc/default/tmpfs 檔案的內容。 有嘗試man tmpfs了,個人英文文件能消化的有限, 我把 SHM_SIZE= 這行開頭的井字註解拿掉,並且填入數值 2500000000 存檔重開機後,發現"沒有"效果, 裝置 tmpfs 目錄 /dev/shm 總數仍然還是 2.1GB(主記憶體的一半)。
2015/5/22 19:38
|
||||||||||
----------------
個人網路文字作品集: MacOSX10.5.8 安裝、設定、使用,個人經驗分享,正體中文版;以Windows思維用Linux,GNOME桌面篇;PDF http://www.scribd.com/ianian1979 全字庫注音輸入法表格檔2019 (搭配CNS11643中文全字庫規格的Unicode格式傳統注音輸入法對照表) https://sites.google.com/site/ianho7979/InputMethodTables |
|||||||||||
![]() |
回覆: 關於設定Debian Jessie /etc/default/tmpfs遇到的狀況 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
剛有發現一個資料夾「/etc/tmpfiles.d/」,裡面空空,不知道有什麼作用。
執行下面的指令,查詢是屬於哪個套件的
顯示
是屬於「systemd」這個套件。 尚未了解「/etc/tmpfiles.d/」的作用,先貼出來 ![]() ## 參考文件 * man tmpfiles.d * man systemd-tmpfiles
2015/5/22 19:51
|
||||||||||
![]() |
回覆: 關於設定Debian Jessie /etc/default/tmpfs遇到的狀況 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
剛發現有個檔
「/lib/init/tmpfs.sh」 還沒研究透徹,先貼已經探索的 跟「/etc/default/tmpfs 」一樣。都是屬於「initscripts」這個套件的 執行
顯示
執行
顯示
============================================================== 可以看到「/lib/init/tmpfs.sh」這個檔, 裡面有一段引用「/etc/default/tmpfs」這個檔。
============================================================== 可以看到「/var/lib/dpkg/info/initscripts.postinst」 一開頭有一段
============================================================== 可以看到「/lib/init/mount-functions.sh 」 裡面有定義一個function
============================================================== 從「/etc/init.d/mountdevsubfs.sh」這個檔可以看到「mount_shm」的呼叫
============================================================== 從「/etc/init.d/mountall.sh」這個檔可以看到「mount_shm」的呼叫
============================================================== 執行
顯示
執行
顯示
執行
顯示
執行
顯示
============================================================== 若有設定「/etc/default/tmpfs」裡面的參數「SHM_SIZE=3G」 執行
或是執行
後 再執行
顯示
原來的是
可以看到 從原來的
變成
再根據上面查到的來看 表示「/etc/init.d/mountall.sh」和「/etc/init.d/mountdevsubfs.sh」這兩個初始script是會根據「/etc/default/tmpfs」的設定的 所以要確認的就是「/etc/init.d/mountall.sh」和「/etc/init.d/mountdevsubfs.sh」這兩個初始script,在開機有沒有被執行了, 因為Debian 8 (Jessie)最大的變化,就是改用Systemd,所以猜想這部份可能有影響。 只是還沒查到文件,看到相關的說明。所以就先用人工來探索。 執行
顯示
執行
顯示
先紀錄到這了,其他的再找時間研究了 ![]() ## 更多參考 * Debian Reference / Chapter 3. The system initialization * Debian Wiki / BootProcess * Debian Wiki / systemd Integration * Ubuntu Community Help Wiki / UbuntuBootupHowto * Ubuntu Community Help Wiki / UpstartHowto * Ubuntu Community Help Wiki / InitScriptList * Ubuntu Wiki / Systemd For Upstart Users * 淺析 Linux 初始化 init 系統,第 1 部分: sysvinit * 淺析 Linux 初始化 init 系統,第 2 部分: UpStart * 淺析 Linux 初始化 init 系統,第 3 部分: Systemd
2015/5/22 22:33
|
||||||||||
![]() |
回覆: 關於設定Debian Jessie /etc/default/tmpfs遇到的狀況 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2010/2/9 18:20 所屬群組:
已註冊使用者 等級: 31
HP : 0 / 758
![]() |
IanHo 寫到: 一般來講,我們不會想把檔案寫進/dev/shm,且那邊其實是直接顯示記憶體的空間狀況(總記憶體 - 被mount成tmpfs的容量) 所以一般而言,沒必要特別去指定/dev/shm的容量(而且,其實他的值+所有tmpfs的值>實際記憶體的話,系統會報錯誤,極有可能開機失敗) 所以,常見的實做通常是控制/tmp IanHo 寫到:我會利用這個空間來 擺放/指向 例如gimp的"置換檔",網路瀏覽器的cache路徑等等。 CACHEDIR=/tmp/cache-$USER [[ ! -d $CACHEDIR ]] && install -dm700 $CACHEDIR rm -rf ~/.cache && ln -sf $CACHEDIR ~/.cache 把上面那串讀懂以後,寫進去~/.bashrc IanHo 寫到:我期望/需求的操作設定情境是,在"不需要"額外於終端機內下指令的"前提"下, 在/etc/fstab中,該mount設定那行的options後面加上size=?G或size=?M就好了,例如: # <file system> <dir> <type> <options> <dump> <pass> tmpfs /tmp tmpfs nodev,nosuid,size=2G 0 0 如上所述,/dev/shm本身是換算的結果,直接改那邊根本不應該要有效果 且結果也與預期相符合,因為預設/tmp沒指定尺寸的話,就是主記憶體的一半,那想當然,/dev/shm就會是另外一半 假如真有心要親手搞定這玩意兒的話,建議是一邊查一邊讀man,通常man都有寫得很清楚了 但很可惜,查錯方向了。 你應該去查man fstab,而它會建議你去查 man mount,而有關mount options的東西,man mount裡都寫的詳詳細細,尤其是tmpfs options那邊,就有提到要怎麼指定tmpfs的容量大小 簡單的講,fstab只是一個讓系統開機時順著讀過去給mount這隻程式運作的script而已
2015/5/23 16:33
|
||||||||||
![]() |
回覆: 關於設定Debian Jessie /etc/default/tmpfs遇到的狀況 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
我大概知道原因了,給我一些時間,正在寫說明
![]()
2015/5/23 17:01
|
||||||||||
![]() |
回覆: 關於設定Debian Jessie /etc/default/tmpfs遇到的狀況 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
samwhelp 寫到: 以下測試,是在「Debian 8 (Jessie) Gnome 32位元」環境下測試的 執行下面的指令
會看到
註:本來應該會有一行「tmp.mount disabled」,不過我剛剛測試完後就消失了,下面我會用到。 =============================================================== 把「mountall.service」這個「service」給「unmask」
再執行下面的指令確認
結果還是「masked」
=============================================================== 執行下面的指令,將「tmp.mount」給「enable」。
會顯示
所以就發現了一個很重要的資料夾「/lib/systemd/system/」
就會顯示
你會發現
上面幾個檔案,都被「symbolic link」到「/dev/null」,所以我猜,再怎麼「unmask」也沒用。 但「tmp.mount」並沒有,所以剛可以啟用。 不過還不了解這個怎麼用,爾後再來研究。
回到主題,上面的檔,可以對照「/etc/init.d」底下的 「available service script」。
會顯示
=============================================================== ## 小結 我用我目前理解到的概念來說明。 「/etc/fstab」是一套機制。 「/etc/default/tmpfs」又是另一套機制。 「/etc/default/tmpfs」他是樓主原本想要的功能。 只要更改「/etc/default/tmpfs」,簡單的設定參數。 開機就可以設定這些「tmpfs」的大小了。 而啟用的模式是透過舊制的「/etc/init.d」裡面的「mountall.sh」和「mountdevsubfs.sh」來啟用的, 只是根據「/etc/default/tmpfs」的設定重新掛載「tmpfs」。 可以參考我上面的「回覆」和「這篇」,「這篇」。 而新式的「systemd」,參考「這篇」。 是會兼容舊式的「Sevice」啟用方式。 兼容機制應該是是有。 只是不曉得debian要把「mount」這一段都停用了。 不知道是還沒寫好「systemd」的「service」,還是有啥考量,刻意關閉的,這就有待釐清了。 所以現在最簡單的方式,還是回歸到,撰寫「/etc/fstab」這一段來做,也就我一開始「回覆」提到的作法。 我個人猜想,若堅持想要用「/etc/default/tmpfs」這個機制。 就要想辦法去把「/lib/systemd/system/mountall.service」寫出來。 然後只要執行
讓開機時,「systemd」可以執行這個「service」。也就是執行「/etc/init.d/mountall.sh」。 以上釐清 ![]() =============================================================== ## 更多參考 * 「這一篇」下面有一個列表「表 2. Systemd 命令和 sysvinit 命令的對照表」 可以快速的了解「systemctl」這個指令怎麼使用。 * 「這一篇」下面有一個列表「表 2.service 命令和 initctl 命令對照表」 可以快速的了解「service」和「initctl」這個指令怎麼用, 不過「initctl」是「upstart」。若是使用「systemd」,基本上就不需要了。 但「service」還是可以使用,只是個「script」,可以觀看「/usr/bin/service」裡面寫的內容。 若是使用「systemd」,還是會呼叫「systemctl」。 若是使用「upstart」,就會去呼叫「initctl」。 * 「這一篇」則是有列「sysvinit」的一些基本的指令,大部分應該會很熟悉。 * 另外應該還有「start」,「stop」...相關的指令, 只要研究「sysvinit」「upstart」「systemd」相關的套件和其中的指令,搭配上面的文章來看。 很多概念就會拼湊起來了。
2015/5/23 18:14
|
||||||||||
![]() |
回覆: 關於設定Debian Jessie /etc/default/tmpfs遇到的狀況 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2010/9/16 14:08 所屬群組:
已註冊使用者 等級: 25
HP : 0 / 619
![]() |
嗯~~~
不是很好消化~~~ 我盡量了~~~
2015/5/23 20:02
|
||||||||||
----------------
個人網路文字作品集: MacOSX10.5.8 安裝、設定、使用,個人經驗分享,正體中文版;以Windows思維用Linux,GNOME桌面篇;PDF http://www.scribd.com/ianian1979 全字庫注音輸入法表格檔2019 (搭配CNS11643中文全字庫規格的Unicode格式傳統注音輸入法對照表) https://sites.google.com/site/ianho7979/InputMethodTables |
|||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.