發表文章

目前顯示的是 7月, 2025的文章

Ubunt 24.04 加裝XFCE桌面環境

圖片
 微軟的Copilot一直推薦我使用XFCE來取代GNOME桌面: 為了讓你在 XRDP 下獲得穩定的使用者體驗,尤其是在登入後不閃退、不依賴 GNOME 和 systemd --user ,我建議你使用 XFCE 或 MATE 桌面環境,並重新配置 session 啟動鏈條。  我就信它一次, 來試試看: 🧰 1. 安裝 XFCE 桌面環境(推薦) sudo apt update  sudo apt install xfce4 xfce4-session xfce4-goodies dbus-x11 為什麼選 XFCE: 它不依賴 systemd --user ,且在 XRDP 下表現穩定、資源消耗低。 📝 2. 編輯 /etc/xrdp/startwm.sh 請將內容改成如下: #!/bin/sh  . /etc/profile  . ~/.profile  exec startxfce4 ✅ 確保該檔案可執行: sudo chmod +x /etc/xrdp/startwm.sh  ⚙️ 3. 設定 PAM 與 D-Bus 相容性(選用) 確認 XRDP session 使用 PAM 載入環境: sudo grep pam_systemd /etc/pam.d/xrdp-sesman || echo "session required pam_systemd.so" 如果沒有該行,可加入: echo "session required pam_systemd.so" | sudo tee -a /etc/pam.d/xrdp-sesman  🧹 4. 清理殘留 .Xauthority 及 lock file(首次修復建議) sudo rm -f /tmp/.X11-unix/X*  sudo rm -f /tmp/.X*-lock  rm -f ~/.Xauthority  touch ~/.Xauthority  chown ops:ops ~/.Xauthority 🚀 5. 重啟 XRDP sudo systemctl restart xrdp  sudo systemctl...

Ubuntu 24.04 XRDP+GNOME桌面狀況(黑畫面+閃退)

圖片
 Ubuntu 24.04的GNOME桌面, 使用XRDP, 由遠端桌面工具登入時, 使用界面真的很棒。非常現代化的設計, 多個桌面任你增減, 應用程式隨你拖拉, 非常直覺的設計, 而且反應流暢快速, 令人愛不釋手。   但是我碰到許多問題, 一開始是用遠端桌面連線工具程式連入時, 畫面卡住, 只看到滑鼠遊標變成X, 就是所謂的黑畫面。找了一下, 有人說是將/etc/xrdp/startwm.sh加入以下幾行: unset DBUS_SESSION_BUS_ADDRESS unset XDG_RUNTIME_DIR . $HOME/.profile 一開始, 還管用, 但不久又出狀況, 用遠端桌面連線工具程式連入時, 打完帳號密碼, 就立刻閃退。又找了一下, 網上有人說, 可以在client端的機器, 找default.rdp這個檔案, 把檔案的這行: use redirection server name:i:0 改成 use redirection server name:i:1 試了一下, 可以哦! 連進去了。 但好景不常, 沒幾天, 它自己斷線, 然後就再也連不進去了, 一直閃退!  所以開始和Copilot一起找問題: 1. 先看/etc/xrdp/xrdp.ini, /etc/xrdp/sesman.ini, 沒什麼特別問題 2. 查看/var/log/xrdp-sesman.log, Copilot看完後說: " XRDP session 啟動順利地完成使用者驗證並啟動了 Xorg,但在 window manager 啟動階段卻快速崩潰。這是造成 session 秒斷的主要原因。" 然後它建議我檢查 /etc/xrdp/startwm.sh, 我就直接把這個.sh檔案內容給它看。它回答看起來就是預設的寫法, 依賴/etc/X11/Xsession來啓動桌面環境。並建議我大改/etc/xrdp/startwm.sh, 我覺得不知道在改什麼, 就告訴它, 重開機就可以連進去, 但一段時間後會斷線, 然後就連不進去。於是它要我試試:   2-1 檢查之前連線殘存的lock file     ls -la /tmp/.X11-unix/     ls -la /tmp/.X*-loc...

Windows AD裡若有多台DC, 當其中一台出現問題時, 解決過程! (考古文)

 沒錯! 2025年了, 還在用Windows 2003 server的AD網域。所以, 最新版的Windows AD應該已經不會有這些問題了吧! 我不知道! 但是windows 2003的AD, 就已經可以有多台DC, 當然是為了防止單一台主機故障, 我們辛苦一筆一筆建立的使用者帳號就不見了。有了多台DC, 就可以把這些帳號資料同時存在不同的DC, 萬一有一台機器壞了, 還有其他DC保存個這些資料。   那麼平常使用AD帳號登入機器時, 自然也是去DC查詢帳號密碼對不對。是不是多台DC環境下, 只要有一台DC正常運作, 就可以了呢? 很多人都會理所當然的這麼想的, 但在2003, 其實不是這樣的。我們有一台主機, 在登入畫面, 當選擇登入AD網域時, 一直出現 "無法登入, 因為無法連線到網域" 的錯誤訊息。因為之前已經檢查了相關主機狀況, 所以我知道多台DC中有一台有點問題。它出現了以下幾個徵狀:     1. 在Active Directory使用者及電腦, 要查找使用者時出現問題     2. 查看事件檢視器的目錄服務分類, 看到一些複寫的錯誤及警告, 例如: ------------------------------------------------------------------------------------------------------------------------ 這個伺服器是下列 FSMO 角色的擁有者,但並不認為它是有效 的。對於含有 FSMO 的磁碟分割,這個伺服器自從重新啟動後即 未以任何它的協力電腦成功複寫過。複寫錯誤正阻礙這個角色的 確認。   要求連絡 FSMO 操作主機的操作將會失敗直到這個問題被更正 為止。   FSMO 角色: CN=RID Manager$,CN=System,DC=princo,DC=com,DC=tw   使用者動作:   1. 初始同步處理是系統啟動時所做的第一個早期複寫,初始 同步處理失敗可能說明了為什麼無法確認 FSMO 角色。這個程序 已在 KB article 305476 中說明。  2. 這個伺服器擁有一 或多個複寫協力電腦...

在Windows 2003 server裡備份檔案, 使用ShadowSpawn + robocopy (考古文)

 時光來到2025, 還在用Windows 2003 server, 大家就知道我的年資不少了。反正, 基於各種原因, 就是要用Windows 2003就對了。而且有備份檔案的需求, 上網找了一下可能的方案, 發現robocopy有不少愛好者, 評價很好。所以就想用, 而robocopy在windows 2003是透過resource kit提供。沒想到微軟的網站上, 已經找不到這個resource kit了, 所幸在Archive網站仍然可以找到。 Windows 2003 Resource Kit x86 Internet Archive的連結 注意一下, 似乎只支援x86, 還好的是我使用的那台機器是x86。安裝方法很簡單, 下載下來的 rktools.exe檔直接執行, 然後一直下一步就可以了。預設會在C:\Program Files\Windows Resource Kits\Tools目錄下安裝許多工具程式, 其中也包括robocopy。 Robocopy的使用方法, 可以參考這個網站:  Robocopy使用詳例 ********************************************************** 接著, 我發現了一件事: 有些檔案因為被鎖定, 所以一直沒有被robocopy備份到! 才想到要做Shadow copy! 又研究了一下, 發現ShadowSpawn的評價不錯, 它的網址:  Candera/shadowspawn  是GitHub的一個公開專案, 可是專案owner Candera說已經十多年沒認真使用Windows平台了, 目前也沒心力再支援這個專案了, 也希望有心人可以fork它的專案來接手維護。而且, 之前的已編譯好的可執行程式目錄也不見了。所以只能自己編譯了(還好有source code), 但我試了一下, 發現我編出來的程式, 沒辦法在Windows 2003上面跑, 因為使用的微軟開發環境太新了!  所幸, Candera有指出明路:  關於可在Windows 2003執行的ShadowSpawn可以在那裡找的討論文 , 所以下載這支程式, 不用安裝, 直接放到HD, 再安裝vcredist-2010_x86.exe (如果原本沒裝過的話...

在Ubuntu 24.04上使用nsd安裝一台Authoritative DNS Server

 我發現安裝Ubuntu 24.04 Server後預設會有systemd-resolved service在跑, 使用netstat -l指令查看, 會看到127.0.0.53之類的socket出現, 還有使用ls -l /etc/resolv.conf, 會發現這個檔案變成軟連結。問了Copilot, 它說: "127.0.0.53 是 Linux 系統(特別是使用 systemd 的發行版,如 Ubuntu)中 systemd-resolved 的本地 DNS stub resolver。它的作用是作為本機 DNS 中介,將應用程式的查詢轉發給實際的上游 DNS 伺服器。"而systemd-resolved的上遊是那台DNS server呢? 應該是放在 /etc/systemd/resolved.conf 這個設定檔, 這個檔可以如下設定: [Resolve] DNS=8.8.8.8 FallbackDNS=1.1.1.1 然後, 下指令: sudo systemctl restart systemd-resolved 重啓systemd-resolved, 應該就可以正常的ping的到主機名稱了。  問題是, 我要安裝nsd時, 會發現port 53已經被佔用, 不能安裝了。所以第一個動作, 我必須先禁用systemd-resolved, 改回使用原本的/etc/resolv.conf檔的老方法。Copilot告訴我的詳細作法: ------------------------------------------------------------------------------------------------------- 關閉 systemd-resolved 的完整步驟: - 停止並禁用服務 sudo systemctl disable --now systemd-resolved - 移除 /etc/resolv.conf 的符號連結(symbolic link) 預設這個檔案其實是連到 /run/systemd/resolve/stub-resolv.conf sudo rm /etc/resolv.conf - 建立一份你自己的 resolv.conf 檔案 你可以手動指定 DNS,例如使用 Google DNS: ...