2020年2月7日 星期五

剛灌好的 windows 10 出現惱人的 NVIDIA Control Panel is not found 解決辦法及移除方式

若顯示卡是 NVIDIA 的,剛灌好的 windows 10 在右下角會出現


重點是關也關不掉也無法移除,又醜又惱人。
以下是解決方式:
1. WIN + R 執行 services.msc

2. 找到 NVIDIA Display Container LS

3. 左鍵點兩下,開啟內容,啟用類型選"已停用",服務狀態選"停止"

4. 就會發現醜醜的 NVIDIA 提示不見了,打完收工。

2020年2月6日 星期四

Ubuntu DHCP Server

sudo apt install isc-dhcp-server
修改 DHCP 設定檔
nano /etc/dhcp/dhcpd.conf
default-lease-time 3600;
max-lease-time 28800;

subnet 192.168.1.0 netmask 255.255.255.0 {
 range 192.168.1.121 192.168.1.220;
 option subnet-mask 255.255.255.0;
 option routers          192.168.1.254;
}
重啟 DHCP SERVER
sudo systemctl restart isc-dhcp-server isc-dhcp-server6
檢查是否有啟動成功
sudo systemctl status isc-dhcp-server isc-dhcp-server6
sudo netstat -tulnp | grep dhcp

2020年2月1日 星期六

Proxmox VE two nodes + qdevice HA Cluster 雙節點叢集

在GUI 的資料中心介,有 pve1 , pve2 和 qdevice (ip : 192.168.1.30)
一般都是用 Raspberry Pi 做 qdevice,但因為剛好有台 windows 10 常開,所以我就用 windows 10 裡的 hyper-V 灌 Ubuntu 18.043 LTS Server 來當 qdevice

在  hyper-V 上安裝好 Ubuntu 後記得要為固定 IP 以及讓 SSH 允許 root 登入
nano /etc/ssh/sshd_config
修改以下內容
PermitRootLogin yes
再來安裝 corosync-qnetd
apt install -y corosync-qnetd
接著在 PVE1 和 PVE2 上安裝 corosync-qdevice
apt install -y corosync-qdevice
PVE1 及 PVE2 都裝好之後,找一台下指令
pvecm qdevice setup 192.168.1.30
執行後會發現跳出錯誤
...
..
.
INFO: start and enable corosync qdevice daemon on node 'pve1'...
Synchronizing state of corosync-qdevice.service with SysV service script with /l                                                                                                                                                             ib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable corosync-qdevice
update-rc.d: error: corosync-qdevice Default-Start contains no runlevels, aborti                                                                                                                                                             ng.
command 'ssh -o 'BatchMode=yes' -lroot 192.168.1.90 systemctl enable corosync-qd
evice' failed: exit code 1
查了許久,原來是bug!!
所以要到 PVE1 及 PVE2 修正,在 /etc/init.d/corosync-qdevice 裡找到 Default-Start 加入 2 3 4 5
### BEGIN INIT INFO
# Provides:  corosync-qdevice
# Required-Start: $remote_fs $syslog corosync
# Required-Stop: $remote_fs $syslog corosync
# Default-Start: 2 3 4 5
# Default-Stop:  0 1 6
# Short-Description: Corosync Qdevice daemon
# Description:  Starts and stops Corosync Qdevice daemon.
### END INIT INFO
然後分別在 PVE1 及 PVE2 上執行
update-rc.d -f corosync-qdevice remove
update-rc.d -f corosync-qdevice defaults
重新載入 corosync-qdevice,
載入完後, PVE1 及 PVE2 上執行 (注意!兩台 PVE HOST 都要執行)
systemctl enable corosync-qdevice.service
然後查詢狀態
pvecm status
看到有三台 vote,就設定完成
Cluster information
-------------------
Name:             LAB
Config Version:   3
Transport:        knet
Secure auth:      on

Quorum information
------------------
Date:             Sun Feb  2 01:38:55 2020
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          0x00000001
Ring ID:          1.150
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   3
Highest expected: 3
Total votes:      3
Quorum:           2
Flags:            Quorate Qdevice

Membership information
----------------------
    Nodeid      Votes    Qdevice Name
0x00000001          1    A,V,NMW 192.168.1.90 (local)
0x00000002          1         NR 192.168.1.20
0x00000000          1            Qdevice

參考資料
Proxmox 6.1 Cluster Manager
Bug #1809682 "systemctl enable corosync-qdevice.service" fails

Proxmox VE 若不小心被防火牆擋在外面怎辦

到 command line
pve-firewall stop

2020年1月31日 星期五

Proxmox VE登入web GUI時,移除 “No Valid Subscription”的提示


Proxmox VE是個很不錯的開源虛擬化平台,每個人都可以免費地roxmox VE是個很不錯的開源虛擬化平台,每個人都可以免費地使用它,然而若沒有訂閱企業版,每次登錄 Web GUI 管理時都會出現一個“No Valid Subscription(無有效訂閱)”的提示:“You do not have a valid subscription for this server. Please visit  www.proxmox.com  to get a list of available options.”。要點“確定”或關閉它才能繼續訪問。

You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options.

移除方法很簡單,修改一個文件就可以取消掉這個提示。

目前在 Proxmox VE 5.1 以上都有效(包括 Proxmox VE 6.1.5 )

其中,5.1版的文件為“/usr/share/pve-manager/js/pvemanagerlib.js”,5.3以上的版本,文件換成了“ / usr / share / javascript / proxmox – widget – toolkit / proxmoxlib . js”。把其中的認購狀態檢查的判斷代碼修改一下即可,修改方法如下:

找到“if (data.status !== 'Active') {”,將其修改為“if (false) {”,建議在修改前應該備份好原本的文件。

然後存檔,再重啟 Proxmox VE 網頁服務
systemctl restart pveproxy
然後再登出 GUI 管理介面, CTRL+F5重新登入即可。

變更 mysql 資料庫數據的路徑

在 mysql 裡,查看當前的儲存路徑:
mysql> show variables like 'datadir';
停止 mysql 服務
service mysql stop
建立新的儲存路徑:
mkdir -p /data/mysql
複製 mysql 原來的資料
cp -rp /var/lib/mysql/* /data/mysql
chown -R mysql.mysql /data/mysql
chmod -R 700 /data/mysql
修改 mysql 配置文件
nano /etc/mysql/mysql.conf.d/mysqld.cnf
修改
datadir = /var/lib/mysql
為
datadir = /data/mysql
啟動 mysql 服務
service mysql start

ubuntu 19.10 建立 Sftp Server 設定

記錄如何在 Ubuntu Linux 上建立一個 SFTP Server,需滿足以下幾點條件:

使用者不可經由 SSH 登入
使用者可經由 SFTP 登入
使用者只可在指定目錄活動
使用者可上傳下載指定目錄內的檔案

環境
Ubuntu 19.10
以下操作皆默認 root 操作,如果你不是使用 root 操作,請在前面加上 sudo。

ubuntu 19.10本身就內建了 Sftp Server,所以只要做一些設定即可。
sftp 群組:sftp-users
sftp 使用者:sftp_user_XXX

新增 SFTP 群組
addgroup sftp-users
確認 group 有正確被建立
grep 'sftp-users' /etc/group

建立 SFTP 使用者
useradd -g sftp-users -s /sbin/nologin sftp_user_XXX
-g: 預設 group
-s: 預設 shell, nologin shell 一般用於系統帳號, 表示不可經由 ssh 登入
確認使用者有正確被建立
grep sftp_user_XXX /etc/passwd
如果使用者早已建立, 可直接更改使用者設定即可
usermod -g sftp-users -d /upload -s /sbin/nologin sftp_user_XXX
建立使用者的目錄
install -d -o sftp_user_XXX -g sftp-users /home/sftp_user_XXX/www
變更使用者的密碼
passwd sftp_user_XXX

SSH 設定
nano /etc/ssh/sshd_config

註解並新增
#Subsystem sftp /usr/lib/openssh/sftp-server 《==加#
Subsystem sftp internal-sftp

PasswordAuthentication yes
PermitRootLogin no
Match Group sftp-users
 ChrootDirectory /home/%u
 X11Forwarding no
 AllowTcpForwarding no
 PermitTTY no
 ForceCommand internal-sftp

重新啟動 sss 服務
systemctl restart ssh

PS:如有建立 web 目錄,記得要變更 user 目錄底下的權限
chown -R sftp_user_XXX:sftp-users www
chmod -R 755 www

2020年1月20日 星期一

Proxmox 啟動後,出現 LXC CT 啟動錯誤的解決方式

重開 proxmox 之後,出現以下訊息



用 systemctl status pve-container@102.service service 查
root@pve1:~# systemctl status pve-container@102.service
● pve-container@102.service - PVE LXC Container: 102
   Loaded: loaded (/lib/systemd/system/pve-container@.service; static; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2020-01-20 17:00:51 CST; 1min 27s ago
     Docs: man:lxc-start
           man:lxc
           man:pct
  Process: 3100 ExecStart=/usr/bin/lxc-start -n 102 (code=exited, status=1/FAILURE)

Jan 20 17:00:51 pve1 systemd[1]: Starting PVE LXC Container: 102...
Jan 20 17:00:51 pve1 lxc-start[3100]: lxc-start: 102: lxccontainer.c: wait_on_daemonized_start: 865 No such file or directory - Failed to receive the container state
Jan 20 17:00:51 pve1 lxc-start[3100]: lxc-start: 102: tools/lxc_start.c: main: 329 The container failed to start
Jan 20 17:00:51 pve1 lxc-start[3100]: lxc-start: 102: tools/lxc_start.c: main: 332 To get more details, run the container in foreground mode
Jan 20 17:00:51 pve1 lxc-start[3100]: lxc-start: 102: tools/lxc_start.c: main: 335 Additional information can be obtained by setting the --logfile and --logpriority options
Jan 20 17:00:51 pve1 systemd[1]: pve-container@102.service: Control process exited, code=exited, status=1/FAILURE
Jan 20 17:00:51 pve1 systemd[1]: pve-container@102.service: Failed with result 'exit-code'.
Jan 20 17:00:51 pve1 systemd[1]: Failed to start PVE LXC Container: 102.
Dec 3 15:57:40 sword systemd[1]: Starting PVE LXC Container: 102...
Dec 3 15:57:40 sword lxc-start[15552]: lxc-start: 102: lxccontainer.c: wait_on_daemonized_start: 865 No such file or directory - Failed to receive the container state
Dec 3 15:57:40 sword lxc-start[15552]: lxc-start: 102: tools/lxc_start.c: main: 329 The container failed to start
Dec 3 15:57:40 sword lxc-start[15552]: lxc-start: 102: tools/lxc_start.c: main: 332 To get more details, run the container in foreground mode
Dec 3 15:57:40 sword lxc-start[15552]: lxc-start: 102: tools/lxc_start.c: main: 335 Additional information can be obtained by setting the --logfile and --logpriority options
Dec 3 15:57:40 sword systemd[1]: pve-container@107.service: Control process exited, code=exited, status=1/FAILURE
Dec 3 15:57:40 sword systemd[1]: pve-container@107.service: Failed with result 'exit-code'.
Dec 3 15:57:40 sword systemd[1]: Failed to start PVE LXC Container: 102.
Dec 3 15:57:40 sword pvedaemon[15550]: command 'systemctl start pve-container@102' failed: exit code 1
Dec 3 15:57:40 sword kernel: [ 3234.588046] lxc-start[15562]: segfault at 50 ip 00007f7e8a656f8b sp 00007ffe43ae6f00 error 4 in liblxc.so.1.6.0[7f7e8a5fd000+8a000]
Dec 3 15:57:40 sword kernel: [ 3234.588073] Code: 9b c0 ff ff 4d 85 ff 0f 85 82 02 00 00 66 90 48 8b 73 50 48 8b bb f8 00 00 00 e8 8>0 78 fa ff 4c 8b 74 24 10 48 89 de 4c 89 f7 <41> ff 56 50 4c 89 f7 48 89 de 41 ff 56 58 48 8b 83 f8 00 00 00 8b
Dec 3 15:57:40 sword pvedaemon[1585]:  end task UPID:sword:00003CBE:0004EF8D:5DE6DA54:vzstart:107:kronvold@pam: comman>d 'systemctl start pve-container@107' failed: exit code 1

開機後 root zfs 正常啟動 但 ssd 的 zfs 沒有 mount 手動 zfs mount -a 就 okay

原因是
zpool.cache 髒了,zpool table 沒有建立。

解決方法
zpool set cachefile=/etc/zfs/zpool.cache <pool name>
例如:
zpool set cachefile=/etc/zfs/zpool.cache ssdpool1