- 將常用帳號加入 sudo 群組
- 輸入「su -」以及 root 密碼後,提升權限。注意不能只輸入 su,不然會找不到 usermod
- usermod -aG sudo your_user_name
- 修改語系
- 以 root 權限執行 dpkg-reconfigure locales
- 安裝 fcitx4
- sudo apt install fcitx-table-boshiamy fcitx-rime fcitx-frontend-gtk2 fcitx-frontend-gtk3 fcitx-chewing
- 在「設定/應用程式/調校」中的「初始啟動應用程式」中加入 Fcitx,這樣登入後就會自動啟動 fcitx
- 在 $HOME/.xsessionrc 中加入以下設定:
- export LANG=zh_TW.utf8
export LANGUAGE=zh_TW
export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx - 參考資料:石頭閒語所寫的《Debian 10 安裝筆記升級篇》
- 讓 Bash 的提示字串更好用
- 修改 ~/.bashrc 將原來是註解的 force_color_prompt=yes 那一行移除註解符號
PS1='${debian_chroot:+($debian_chroot)}\[\033[1;32m\]\u@\033[00m\]\[\033[1;32m\]$(pwd)\033[0m\] \[\033[1;37m\]$(date +"%Y-%m-%d %A %T")\033[0m\]\n\$'- 從 Backports 更新 Kernel
- 新增 backports 來源:echo deb http://deb.debian.org/debian bookworm-backports main contrib non-free-firmware | sudo tee /etc/apt/sources.list.d/bookworm-backports.list
- 更新 sudo apt update
- 安裝新的 Linux 核心和 Firmware:sudo apt install -t bookworm-backports linux-image-amd64 firmware-linux
- 參考資料:How to upgrade the Debian 10 kernel from backports without recompiling it from scratch
- 安裝 onedrive 來同步 OneDrive 的資料
- onedrive 官方網站
- 進入 OpenSUSE Build Service 頁面後選擇 Debian 並按照說明安裝
- 參考資料:使用 OneDriver GUI 工具在 Linux 中掛載 Microsoft OneDrive
- 安裝 LINE
2024-01-17
新安裝 Debian 12(Bookworm)之後的調整
2023-03-03
Linux 上用 Solaar 連接羅技的 Unifying 滑鼠或鍵盤
在 Debian Linux 上可以使用 Solaar 來管理羅技的 Unifying 滑鼠或鍵盤,可以透過「管理/軟體」搜尋 Solaar 並安裝,也可以透過指令:「sudo apt install solaar」來安裝。
啟動 Solaar 後按照畫面指示插拔接受器,並與滑鼠或鍵盤配對即可。
配對之後,滑鼠的選項中有個「Scroll Wheel HID++ Scrolling」不要勾,不然中間的滾輪會失效。
2021-10-03
修正 mdadm: No arrays found in config file or automatically 錯誤
前言
最近因為 VirtualBox 的 VM 硬碟空間不夠了,調整 VDI 檔容量之後,利用 GParted 將硬碟分區重新調整一下,原本的硬碟分區規畫為:
/dev/sda1 / /dev/sda5 swap其中的 swap 是在 logical partition 裡的,但是我後來調整為
/dev/sda1 / /dev/sda2 swap
也就是移除了 logical partition,新增一個 primary partition 做為 swap。也就是這個動作使得 swap 磁碟分區的 UUID 改變了,於是開機時出現了以下的錯誤訊息:mdadm: No arrays found in config file or automatically同時 swap 也不見了(當然!),因為在 /etc/fstab 中記載的 UUID 找不到了。釐清了錯誤發生原因,解決問題的方法就簡單分成三個步驟:
- 找出現有 Partition 的 UUID
- 更新 /etc/fstab 中的 UUID
- 更新 initramfs 和 GRUB 的設定
列出各 Partition 的 UUIDsudo blkid -o list輸出的結果是如下很整齊的表格形式更新 /etc/fstab 中的 UUID
將原本 /etc/fstab 中的 SWAP 磁區 UUID 改成正確的。更新 initramfs 和 GRUB 的設定update-initramfs -u update-grub完成之後重開機,在開機過程中就沒看到錯誤訊息,swap 也有 mount 上了。參考網址:
2021-03-13
將 XFCE 改造成 Mac 外觀
在 Reddit 的 Linux Mint 板看到一張 screenshot,覺得介面很乾淨,作者說是參考影片 Customize Your Xfce Desktop Look Like MacOS Big Sur 做出來的,但是有改了些許步驟。
Manjaro Linux 更新 GRUB 後無法抓到 Windows
最近 GRUB2 因為安全性的關係需要更新到最新的版本,但更新之後原本的多重開機選單就會失效,抓不到原本安裝的 Windows 了,搜尋了一下原來並不是只有我這樣,而 Manjaro Linux 的公告[Stable Update] 2021-03-08- Kernels, Plasma 5.21.2, Haskell, Kodi, Grub, KDE-Dev裡就有寫怎麼解決這個問題了。
- Grub got some needed security updates 65. Note that os-prober is now disabled by default for security reasons: broken patch 40; fixed patch 61. More infos about it here 176. To restore the old behavior, open a terminal and issue
sudo echo GRUB_DISABLE_OS_PROBER=false >> /etc/default/grub && sudo update-grub
如想恢復開機選單,要在 /etc/default/grub 裡加入一行
GRUB_DISABLE_OS_PROBER=false之後執行
sudo update-grub後就好了。
2021-02-23
Debian buster 使用 backports 的 Linux kernel
紀錄一下如何安裝 backports 的新版 Linux Kernel,stable 的 Kernel 比較舊,有時候不支援新一點的硬體,就要換成新版的 Kernel 才可能支援。
- 新增 backports 到 source.list,並更新資料庫
- 安裝 Linux Kernel 及韌體
echo deb http://deb.debian.org/debian buster-backports main contrib non-free | sudo tee /etc/apt/sources.list.d/buster-backports.list sudo apt update
sudo apt install -t buster-backports linux-image-amd64 firmware-linux firmware-linux-nonfree
參考網址:How to upgrade the Debian 10 kernel from backports without recompiling it from scratch
2020-06-02
Fedora Linux 上使用 ddclient 更新動態 DNS
安裝 ddclient
sudo dnf install ddclient
修改 /etc/ddclient.conf
ddclient.conf 裡已經準備好許多動態 DNS 服務所需的設定,但沒有給 no-ip 用的,所以請自行加入以下這段## No-IP protocol=noip use=web, web=checkip.dyndns.com/ server=dynupdate.no-ip.com login=no-ip 的帳號 password='no-ip 的密碼' no-ip.domain # 在 no-ip 申請的域名
執行 ddclient
sudo ddclient
可以登入 no-ip 的網站,去看看所設定的域名 IP 有沒有更新,可能不會馬上更新要等一下。
參考網頁:
Linux 上移除 No-IP 的 Dynamic DNS Update Client
照著官方的教學安裝時,遇到「make: not founded」的訊息,在 Fedora Linux 下使用以下的指令就能安裝 make
sudo dnf group install "Development Tools"之後照著官方教學即可。
問題來了,官方的 DUC 不能使用,所以我想將它移除,找了一下終於知道要怎麼移除了,先在 no-ip.2.1.9-1/Makefile 最後面加上以下這段
uninstall: ${TGT}
rm ${BINDIR}/${TGT}
rm ${CONFDIR}/no-ip2.conf
要注意 rm 前的空白是 Tab 造成的不是空格,如果使用空格會有錯誤。之後 cd/usr/local/src/no-ip.2.1.9-1/ 執行
sudo make uninstall sudo remove就能移除 DUC 了。
參考網頁:
Linux 自動網路校時
網路校時的指令是
sudo ntpdate time.stdtime.gov.tw選用的 NTP 伺服器是 time.stdtime.gov.tw。接著將正確時間寫入硬體時鐘
sudo hwclock -w
利用 crontab 定期校時
*/30 * * * * root (/usr/sbin/ntpdate time.stdtime.gov.tw && /sbin/hwclock -w) &> /dev/null
原先我是設定每 6 小時校時一次,沒想到過了一晚再看虛擬機器裡的時鐘竟然慢了 12 小時,只好改成每 30 分鐘就校時一次,希望能有所改善。
在查資料的時候,才發現原來 Hyper-V 本身就有讓 VM 與 Host 對時的服務,但我不知道為什麼我的電腦上沒有作用。可能是因為語系的關係,查詢有開啟「時間同步化」服務的 VM 的 powershell script 要改成如下:
Get-VMIntegrationService -VMName * | Where {$_.Name -eq '時間同步化'} | Select-Object VMName, Name, Enabled
參考網址:
2020-05-29
Linux 掛載 Windows 的網路芳鄰
sudo mount -t cifs //xxx.xxx.xxx.xxx/share_folder /Linux/mount_point -o username=USER_NAME,password=PASSWORD可以直接將 Windows 的共用資料夾掛載起來。也可以寫在 /etc/fstab 裡,一開機就自動掛載,但如果 Windows 當機或故障了,在 Linux 才可能產生連帶問題,可以透過 autofs 套件可以在用到網路芳鄰的時候,自動掛載資源到指定的資料夾,比直接寫在 /etc/fstab 裡還好。
我的 Host OS 是 WINDOWS,利用 Hyper-V 建立以 Fedora Linux 32 為 Guest OS 的虛擬機器,如果使用其他 Distro. 只有在安裝套件時會稍稍不同,設定檔的寫法則是一樣的。
- 安裝 autofs 和 cifs.utils套件
- 建立認證用的帳號密碼文件,我放在 /home/User_Name/.secret.txt,中間不能有空白
- 先在 /etc/auto.master 新增一筆紀錄如下,表示要將設定檔 /etc/auto.myneighborhood (待建立)中設定的網路芳鄰資源掛載到 /mount_point,而 /mount_point 必須已存在。
- 接著新增 /etc/auto.myneighborhood
- 重新啟動 autofs 服務
- 「使用」 /home/User_Name/mount_point/folder_name,例如進入 folder_name。
- 參考資料:
- How to mount remote Windows shares
- Samba Client CentOS 使用 Windows 網芳磁碟設定
- Linux systemd 系統服務管理基礎教學與範例
- 將sqlite放在windows-share上跨平台使用 (提到的 nobrl 參數解決了 SQLite 資料庫被鎖的問題)
sudo dnf install autofs cifs.utils
# /home/User_Name/.secret.txt username=USER_NAME_in_WINDOWS password=PASSWORD_of_USER將 .secret.txt 的權限改成 600(rw-------)
chmod 600 /home/User_Name/.secret.txt
# /etc/auto.master /mount_point /etc/auto.myneighborhood
# /etc/auto.myneighborhood folder_name -fstype=cifs,rw,noperm,credentials=/home/User_Name/.secret.txt,uid=User_Name,gid=User_Group,nobrl ://xxx.xxx.xxx.xxx/share_foldercredentials 後面接認證用的帳號密碼文件,避免直接將帳號、密碼寫在設定檔裡;nobrl 選項可以避免 SQLite 資料庫被鎖起來。
sudo systemctl stop autofs.service sudo systemctl start autofs.service
cd /home/User_Name/mount_point/folder_name當「使用」到 folder_name 時 autofs 才會自動掛載,剛開始不知道,想說為什麼 start autofs.service 以後,ls -l /home/User_Name/mount_point 看不到內容,後來才知道要真的進到該目錄才會真正掛載。
2020-04-07
Hyper-V 搬移硬碟
匯入的類型選擇第三種「複製虛擬機器(建立新的唯一識別碼)」,存放虛擬機器的資料夾必須和原來的不同。匯出時會連同檢查點一起匯出,不是單純的把虛擬硬碟匯出。
兩個需求
- Base 和其他後來建立機器的映像檔放在同一個資料夾
- Base 映像檔已經合併了所有的檢查點( 快照,Snapshot)
合併 Snapshot 並指定新檔名
CentOS 啟動網路
我的 Base 是 CentOS 8,在建立新虛擬機器後,遇到沒有網路的問題,以下是啟動網路的方法。- 用 ifconfig 指令查看網路,如果沒有就先看一下 /sbin/ 底下有沒有 ifconfig,再沒有就安裝 net-tools
# 安裝 net-tools sudo dnf install net-tools
- 啟動網路,我的是 eth0,就輸入以下指令
sudo ifup eth0
- 如果希望開機便自動啟動網路,修改檔案 /etc/sysconfig/network-scripts/ifcfg-eth0,將 ONBOOT=no 改為ONBOOT=yes
利用差異磁碟可節省實際硬碟空間
將父磁碟設為唯讀,新增子磁碟為「差異磁碟」,在建立新虛擬機器時連接至子磁碟,這樣可以節省硬碟空間,不過一旦虛擬機器太多時,父磁碟將成為效能瓶頸。參考網頁
2020-03-29
解決總是出現「請輸入解鎖登入鑰匙圈的密碼」提示訊息的困擾
2020-03-23
Manjaro Linux 安裝後的調整
設定 Locale
- 查看目前系統使用的 locale
locale
- 列出已經安裝生成的語系
locale -a
- 切換語系到 zh_TW.UTF-8
sudo localectl set-locale LANG=zh_TW.UTF-8
- 如果想要換的 locale 還沒有生成,先編輯 /etc/locale.gen 取消註解之後,執行以下指令生成
sudo locale-gen
安裝並設定輸入法 fcitx
- 安裝 fcitx
sudo pacman -Syu fcitx-gtk2 fcitx-gtk3 fcitx-qt5 fcitx-table-extra fcitx-configtool fcitx-chewing
- 編輯 ~/.profile 檔,內容如下,可先將舊檔改名留存,之後要重開機
export QT_IM_MODULE=fcitx export GTK_IM_MODULE=fcitx export XMODIFIERS="@im=fcitx"
- 新增鍵盤輸入法為嘸蝦米(boshiamy),並進行細部設定
- 參考網址: Chakra Linux 安裝 Fcitx 中文輸入法教學
同步 Linux 與 Windows 的時間認定
- Linux 下原本是將 BIOS 時間認定成 UTC+0,要查看原來的設定可以輸入以下指令:
timedatectl | grep local
會看如下的結果RTC in local TZ: no
- 想讓 Linux 使用本地時間,指令如下:
sudo timedatectl set-local-rtc 1 --adjust-system-clock
- 設定裡頭的「時間與日期」也可以達到同樣的效果
設定右下角時鐘顯示格式
- 滑鼠右鍵點擊右下角的時鐘後,選擇「設定組態」
- 在「設定組態」裡選擇「使用自訂日期格式」並在「日期格式」欄中輸入
%Y-%m-%d %n %H:%M:%S
安裝常用的軟體
- Chromium、TeXLive、noto-fonts-cjk、VS Code、Notepad ++、Seahorse
pacman -Syu texlive-bin texlive-core texlive-latexextra texlive-langchinese texlive-science texlive-pictures seahorse
2020-01-30
Windows 10 更新後,開機出現 grub rescue
步驟上跟參考網址的第1篇大致相同,但在 insmod normal 之後還是不能進入作業系統,所以以下按照我的電腦實際狀況寫一遍解決流程:
- 利用 ls 指令查詢磁區情形
- 逐一以 ls 看能不能查詢,我的是 Linux 磁區是 (hd0,msdos3),輸入 ls (hd0,msdos3) 之後會顯示 filesystem 是 XFS,其餘的磁區則是 unknown。
- set 指令查詢現在的 prefix 和 root 設定值
- 利用 set 指令將 prefix 和 root 改為正確的磁區
- 切換到 normal 模式
- 之後開始和參考網址的內容不同,我選擇 Windows 10 和 Linux 都無法進入作業系統。移動光條到 Linux 選項式後,輸入「e」編輯內容,發現其中的 root 磁區和實際的情形不同,將其改為正確的 (hd0,msdos3) 之後即可開機進入 Linux
- 安裝 GRUB,我的開機磁碟是 /dev/sda
- 更新 GRUB 選單
ls (hd0,msdos3)
set root=(hd0,msdos3) set prefix=(hd0,msdos3)/boot/grub
insmod normal normal
sudo grub-install /dev/sda
sudo grub-update
參考網址:
2020-01-07
Manjaro Linux 為 VirtualBox 的 Guest OS 時的調整
安裝 VirtualBox Guest Addition
- 在 VM 選單的「裝置」中選取「插入 Guest Additon CD 映像」
- 加入映像檔之後會自動執行安裝,如果沒有自動執行那就自己執行 VBoxLinuxAdditions.run
./VBoxLinuxAdditions.run
- 然後重新開機即可
安裝 VirtualBox Extension Pack
- 安裝 VirtualBox Extension Pack,之後可以支援 USB 2.0
pamac build virtualbox-ext-oracle
- 將自己的帳號加到 Vboxusers 使用者群組
sudo gpasswd -a $USER vboxusers
- 登出後再登入,設定就會生效,如果不想登出,則可以使用下列指令
sudo modprobe vboxguest vboxvideo vboxsf sudo systemctl enable --now vboxservice.service
參考資料:Manjaro Wiki - VirtualBox
Manjaro Linux 更新 Mirror list
稍微查詢了一下發現 pacman 的設定檔是在 /etc/pacman.conf,可以將套件的 server 位址寫死在 pacman.conf 裡面,也可以從 /etc/pacman.d/mirrorlists 讀入 server 的位址。
但我發現 /etc/pacman.d/mirrorlists 檔案裡沒有任何 server 的位址,於是參考 Pacman-mirrors 裡的說明,執行下列指令就能自動新增 mirror 站的位址。
sudo pacman-mirrors --country Taiwan && sudo pacman -Syyu
其中 sudo pacman -Syyu 是同步資料庫並且更新系統。
參考資料:Pacman-mirrors
2019-02-25
設定 VirtualBox 的共用資料夾,以 Manjaro Linux 為 Guest OS
- 查詢目前 Kernel 的版本
- 安裝下列套件,其中 xxx 是前步驟查到的 Kernel 版本編號,如我目前安裝的是 4.19.24-1.MANJARO,則 xxx = 419
- 將使用者加入 vboxsf 群組,編輯 /etc/group 並在 vboxsf 最後一個冒號加上使用者帳號
- 安裝 Guest Additions
- 在 VirtualBox 中插入 Guest Additions CD 映象,會自動掛載到 /run/media/user-name/ 底下
- 進入該目錄後執行安裝指令
- 在 VirtualBox 中設定共用資料夾後重新開機
uname -r
virtualbox-guest-dkms virtualbox-guest-utils linux-headers-virtual linux-headers-xxx
sudo ./VBoxLinuxAdditions.run
2019-02-10
Fedora 上讀寫 exFAT 格式的隨身碟
- 設定 RPM Fusion Repository
- 安裝 exfat-utils 及 fuse-exfat 套件
- 插入 USB 隨身碟即會自動掛載 USB 隨身碟,如果沒有自動掛載,可利用下面指令掛載:
- 建立 USB 隨身碟掛載點
- 查詢 USB 隨身碟所在,可利用磁區大小判斷何者為隨身碟
- 掛載 USB 隨身碟
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install exfat-utils fuse-exfat
sudo mkdir /mnt/usb
lsblk
sudo mount -v -t auto /dev/sdX /mnt/usb
參考網址:
Installing Free and Nonfree Repositories
教學:在 Fedora 上面讀寫 exFAT 格式硬碟
2018-11-14
Fedora 28 升級到 Fedora 29
- 更新原系統上已安裝的軟體
- 安裝 DNF plugin
- 透過 DNF 更新系統
- 升級並重開機
- 如果升級之後發生問題,可以參考 Resolving post-upgrade issues
sudo dnf upgrade --refresh
sudo dnf install dnf-plugin-system-upgrade
sudo dnf system-upgrade download --releasever=29
sudo dnf system-upgrade reboot
2018-08-28
移除使用者的密碼
- sudo visudo 將該帳號 user_account 加入 NOPASSWD
- 再以 user_account 身份執行
sudo passwd -d `whoami`
即可。
user_account ALL=(ALL) NOPASSWD:ALL
參考資料:https://askubuntu.com/questions/281074/can-i-set-my-user-account-to-have-no-password

