安裝 Ubuntu Live Server 20.04
還是有些坑(也沒那麼深,說小洞吧),是該填一填。
- 版本 20.04.1
在前面文章提過,unetbootin 只認得 20.04.1,故就取此版來安裝。
ubuntu-20.04.1-live-server-amd64.iso
echo "443511f6bf12402c12503733059269a2e10dec602916c0a75263e5d990f6bb93 *ubuntu-20.04.1-live-server-amd64.iso" | shasum -a 256 --check
- 安裝前,bios boot mode 使用 legacy mode,否則以 EFI 啟動,將難規劃硬碟。
- 安裝時一定要插網路線,否則裝成進入系統,不知如何啟用網路。
筆者補述:不用插網路線,則進系統後更改 netplan 即可啟用網路。 - 安裝完成選擇略過更新,不然會等好久;事實上選略過也是要等好久好久。。。當下可打開觀看即時的 log 以消磨點時間。
- 故就裝好了。其當中會有套件可供選擇,筆者全不選,也有 openssh-server 的安裝,先裝為佳。而之所以筆者會想裝 server,就是因為它少了 GUI 介面,其因在 desktop 版本下的系統下查看 log 發現 GUI 好似都有些 error 出現。不過,此舉該是失望了因為,我們後續仍會安裝遠端桌面,仍是免不了該裝 mate 環境(筆者按:也試裝了 openbox,xfce4,cinnamon,還是 mate 反應最快最穩定),如此,並沒有少裝了 GUI 且並沒有彌除 GUI 所帶來的問題。
- 於此補充一點,若是裝了 server 但仍是想裝 GUI,則可參考此文章。原則上就是裝 display server 如 slim,再裝 desktop environment。而例如 slim,會控管一開始的登入畫面,所以相關的設定,例如 auto-login 就由此來修改 /etc/slim.conf。
https://phoenixnap.com/kb/how-to-install-a-gui-on-ubuntu - 以下是系統啟動後。對了,若 server 不是安裝在預設的 sda,則有可能無法 boot up,則需參考 clonezilla 那篇文章讓 server 可 boot up。
- wakeonlan 請參考前文章。查看一下狀態,或許需手動啟用。
- 初步的設定,請參考前文章。
- 為了遠端存取,所以 openssh 與 mate,x2go 都先裝好。
- 因此 server 是對外的,所以盡量推到前線,不再過路由器。故 noip 也先裝起來以方便存取。ufw 也打開;記得先讓 ssh 能過,且不要在 port 22。
- 以下遭遇到兩個問題:
- 有線網路 mtu 一直被反覆設成 1500 1280。造成此網卡與數據機無法正常通訊而連線無法建立。無知的解法如下;尚待尋正解。
於 /etc/netplan/00-installer-config.yaml,更改成如下:
並下 netplan generate; netplan apply; 套用。
# This is the network config written by 'subiquity'
network:
ethernets:
enp1s0:
dhcp4: true
dhcp6: true
match:
macaddress: ii:ii:ii:ii:ii:ii # note, this nic mac address
mtu: 9000
version: 2
- 裝了 mate 後,系統只要 idle 20 minutes/1200 seconds 便會進入 suspend。就算遠端登入有活動也必呈 idle。修改 gnome,mate 的 power 設定都無效。但記得 gnome,mate 的 power 設定都要去 survey/modify 過;安裝使用 dconf-editor。唯有強制停用 power saving 才行。當前無正解。
- 補充:後來,硬著頭皮嘗試不再遠端登入,掛上螢幕登入,想說,必須至少本地端登入一次讓設定套用。結果,失敗。看來,很可能非 gnome/mate 的問題;此 20 分鐘便 suspend 並不因我在 gnome/mate 將時間拉長而變更。
看似無解的參考:
https://ubuntu-mate.community/t/ubuntu-mate-auto-suspend-20-minutes-after-it-restart/17650/5 - 至於是 AC or Battery,因我們使用的是低耗能主機,不知 BIOS 如何設置主機角色,故兩者都要設定。
- 設定路徑如下:
/org/gnome/settings-daemon/plugins/power/sleep-inactive-ac-type
/org/gnome/settings-daemon/plugins/power/sleep-inactive-battery-type
/org/mate/power-manager/action-sleep-type-ac
/org/mate/power-manager/action-sleep-type-battery
- 禁用如下:
# 禁用 power saving
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
# 復用 power saving
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
- 最後,還有時區,在 GUI 下選擇符合的。
- 如果不打算安裝 GUI,則於 shell 下此指令作選擇,
sudo dpkg-reconfigure tzdata - 而語言設置,我們取用 desktop 版本的設定,/etc/default/locale,修改如下,之後重新登入:
- 細節可參考此連結
- https://samwhelp.github.io/note-ubuntu-18.04/read/howto/install/locale/
- https://askubuntu.com/questions/380746/changing-ubuntu-servers-language-to-english
- https://wiki.ubuntu.org.cn/Locale
- 註:
可下命令將看順眼的裝一裝 apt list | grep language-pack.*zh。其中,hans 代表簡體,hant 代表繁體。
又例如後來裝了 firefox,那麼執行 check-language-support,就會列出例如 firefox 的語言套件要裝未裝再裝。
# File generated by update-locale
LANG="zh_TW.UTF-8"
LANGUAGE="zh_TW:zh"
20210914 更新
- 筆者過了兩天又再重新安裝一次,並且有進展地追述如下。
- 首先談到語言設置,同樣地在 /etc/default/locale 內改寫如前。而隨後,因為要安裝 mate desktop,所以做法如下。
但若,有使用者不要安裝桌面,但在 terminal 底下一樣有中文語系的需求,則請參考前面貼的連結。
於此,此時(20220106)再作補充一次:/etc/default/locale 內容可如前述,也可累贅再多加幾行如下,並且關於方塊字的顯示的排解,可使用安裝另一套 shell,zhcon。
LANG="zh_TW.UTF-8"
LANGUAGE="zh_TW.UTF-8"
LC_NUMERIC="zh_TW.UTF-8"
LC_TIME="zh_TW.UTF-8"
LC_MONETARY="zh_TW.UTF-8"
LC_PAPER="zh_TW.UTF-8"
LC_NAME="zh_TW.UTF-8"
LC_ADDRESS="zh_TW.UTF-8"
LC_TELEPHONE="zh_TW.UTF-8"
LC_MEASUREMENT="zh_TW.UTF-8"
LC_IDENTIFICATION="zh_TW.UTF-8"
- 在 GUI 介面內,找尋 language support,於其內加裝正體中文語系即成。
- 而輸入法也是於 GUI/設定 中點取與設定,就行了。
- 接著談到有線網路,筆者的網路不僅有 mtu 反覆變動的問題,還有要等兩分鐘,網路才會啟用,後者原因參考底下連結
- https://magiclen.org/ubuntu-start-job-wait-network/
- (補充,等兩分鐘的問題,可在 netplan nic 下加 optional true 解決。請搜尋參考。)
- (不過,若每個 i.f. 都加 optional true,也可能適得其反;最好是有佔用掉的網孔的,就不要加 optional 或反之之嘗試。)
- netplan 的參考
- https://netplan.readthedocs.io/en/stable/examples/
- https://details.nl/netplan-configuration-examples/
- https://www.heelpbook.net/2020/ubuntu-what-is-netplan/
- https://ubuntu.com/blog/ubuntu-bionic-netplan
- https://blog.miniasp.com/post/2021/07/25/How-to-Assign-Static-IP-Address-on-Ubuntu-2004-LTS-Server
- 而前者,應是數據機想使用 mtu 1280,但我們軟體預設下是 1500,所造成的。若知真正原因的讀者可分享之。故筆者新的設定檔如下,以解決此二問題。沒錯,筆者這台機器有六個網孔。故要多插,就需拿掉註解以打開。
# This is the network config written by 'subiquity'
network:
renderer: networkd
ethernets:
enp1s0:
dhcp4: true
dhcp6: true
mtu: 1280
# enp2s0:
# dhcp4: true
# dhcp6: true
# enp3s0:
# dhcp4: true
# dhcp6: true
# enp4s0:
# dhcp4: true
# dhcp6: true
# enp5s0:
# dhcp4: true
# dhcp6: true
# enp6s0:
# dhcp4: true
# dhcp6: true
version: 2
# if bond is to be used, as follows.
#network:
# version: 2
# renderer: networkd
# ethernets:
# enp1s0:
# dhcp4: false
# dhcp6: false
# enp2s0:
# dhcp4: false
# dhcp6: false
#
# note: need to add a line "bonding" in /etc/modules
# bonds:
# bond0:
# macaddress: xx:xx:xx:xx:xx:00
# interfaces:
# - enp1s0
# - enp2s0
# dhcp4: true
# dhcp6: true
# mtu: 1500
# parameters:
# mode: 802.3ad
# lacp-rate: fast
- 再來,就是 20 minutes after,suspend。依然無解,除非強制禁用。不過,多加了以下命令供便利使用。
- 查詢關鍵字
gsettings list-recursively | grep -i 1200
將會列出所有有 1200 的設定行
gsettings list-recursively | grep -i suspend
將會列出所有有 suspend 的設定行 - 讀取 key 值
gsettings get org.gnome.settings-daemon.plugins.power time-low - 設定 key 值
gsettings set org.gnome.settings-daemon.plugins.power time-low 0 - 參考連結
https://qastack.cn/ubuntu/403859/how-to-control-lightdm-power-saving-preferences
https://unix.stackexchange.com/questions/27484/set-default-global-gnome-preferences-gnome-3
https://stackoverflow.com/questions/20292578/setting-gsettings-of-other-user-with-sudo/20292933
https://askubuntu.com/questions/1101043/prevent-sleep-suspend-when-not-logged-in-to-a-specific-account - 開關 GUI
https://linuxconfig.org/how-to-disable-enable-gui-on-boot-in-ubuntu-20-04-focal-fossa-linux-desktop - 那麼,我們可能會走這最後一步,也就是上兩行之一:
在我們裝完 mate 之後,系統自動掛上 GUI 介面,而此介面是無人登入的。所以,省電模式就會走 gdm 預設。
因此,兩種正解,把 GUI 取消掉,自然不會有省電模式的問題。其二,使用正確的 gsettings 命令;因為此前所設定者都是相依於哪個使用者登入的設定。故既無使用者登入,便是走 gdm 預設。改動預設便得解了。 - 正解一(不要在 gui 下執行;確保起見,在沒有 gui 執行下,透過 ssh 去改):
sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
sudo -u gdm dbus-launch gsettings set org.mate.power-manager action-sleep-type-ac 'nothing'
sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
sudo -u gdm dbus-launch gsettings set org.mate.power-manager action-sleep-type-battery 'nothing'
- 正解二:
- 關閉自動載入 GUI
sudo systemctl set-default multi-user - 開啟自動載入 GUI
sudo systemctl set-default graphical - 手動啟動 GUI
sudo systemctl start gdm3 - 手動關閉 GUI(登出)
gnome-session-quit - 最後,停用 GUI 後,於主終端機下,發現執行指令都會 hang 住。但 SSH 登入不受影響。不知為何。留下了一絲遺憾。
移除 cloud-init
- 抑制此 service 執行
sudo touch /etc/cloud/cloud-init.disabled - 啟動變更組態,將所有選擇取消,最後一行 none checked。
sudo dpkg-reconfigure cloud-init - 應是要 reboot
- 移除套件
sudo apt purge cloud-init - 清除剩下的
sudo rm -rf /etc/cloud/ && sudo rm -rf /var/lib/cloud/ - 重啟。
結語
- 使用 server,筆者好像只為了不使用 GUI 介面。
- 而 X2GO 無法使用 Gnome,原因是 Gnome 可能只能實例一份。但或許主機端不啟動桌面,則或許遠端便能使用。但按此邏輯,與 mate 的差異便是 gnome 只能遠端一人,mate 不限。所以說起來使用 server + mate 還是較符合需求。
- 不過據觀察,server 還會多裝一些管理員的軟體,故常駐與動態行程,ubuntu server 與 ubuntu desktop 的數量還是差不多的,反倒一些必要基礎軟體,desktop 已預設有裝,server 反之。因此總結此二者還是很難取捨決擇。
- 但令人失望的是,筆者將此網站移至新的,比原先 desktop based with caddy v1 web server 的更快的 server 新主機 with nginx,以作測。測果就是下圖最後兩行,其餘的都是前者(效率愈來愈差就是跟隨 php 版本的進展),相當意外地失望。當然有不小的原因是 php 8.0 新版效率更差了(但 desktop 亦使用 8.0,倒數三四行)。而筆者仍有感(僅供參考),那些常駐行程,server 比 desktop 耗用更多 CPU 時間。
- 因此筆者給未來的筆者建議是,還是。。。用 desktop 吧。
再補充
- 筆者後來又重裝了一次,改用 desktop 版本並取消進入 gui。
- 透過 Alt + F1 to F6 切換 tty1 to tty6。
- 在 tty 下會有亂碼,如前述,是因中文語系支援未到位。筆者並未去尋解;有需要者請自行之。故並沒有什麼問題,只是中文字顯示不正常而已。仍可盲操作。
- 筆者將系統一安裝完,隨即安裝 ssh server,並打開 ufw,因為網路雜訊太多了。但提醒,別忘了 ssh 改 port 之餘,還要去改 sshd_config。不然就被防火牆擋住進不去了。
- 前述的取消 gui 後,仍有相關的行程在常駐與運行,故尚需更乾淨的處置。並且 X2GO client 仍無法以 ubuntu or gnome 運作,仍需裝 mate。
20221122 再補充
- 當我們裝完 server 版後,GUI 是不存在的,而欲安裝的 mate 是不包含 display manager 的。故裝完 mate 需再加裝 lightdm 參考如下,
- sudo apt install mate-desktop-environment
- sudo apt install lightdm lightdm-gtk-greeter
- 便可由 systemd 來開關 GUI。
- https://wiki.mate-desktop.org/introduction/installation/