Debian

来自Tsetien’s Wiki
跳转到导航 跳转到搜索
  • 一個裝有 KDE 桌面的 Debian 13.
  • 一個只裝了 X 的 Debian 13.

虛擬機器初始設定與安裝前準備

對於新建的空白虛擬機器的 vmx 檔案,

變更
ehci.present = "FALSE"
ethernet0.virtualDev = "vmxnet3"
並添加
logging = "FALSE"
mainMem.useNamedFile = "FALSE"
MemTrimRate = "0"
mks.enable3d = "TRUE"
mks.forceDiscreteGPU = "TRUE"
monitor.virtual_exec = "hardware"
monitor.virtual_mmu = "hardware"
nvme0:0.virtualSSD = "1"
sched.cpu.latencyTracking = "FALSE"
svga.vramSize = "536870912"
usb_xhci.present = "TRUE"
vassert.enforce = "FALSE"
vmm.isa.disableMMIO = "TRUE"
vprobe.enabled = "FALSE"
bios.forceSetupOnce = "TRUE"

然後在首次開機後將啟動順序調整為:卸除式裝置 > 光碟機 > 硬碟 > 其他。

之後掛上再生龍的 LiveCD, 對硬碟進行初步處理——先使用 fdisk/dev/nvme0n1 創建 GUID 磁碟分割表,並進而將硬碟分割為一個 8 MB 的磁碟分割和剩餘部分為一個磁碟分割(步驟為 sudo fdisk /dev/nvme0n1 G N +8M N W )。之後再使用 mkfs.btrfs -f/dev/nvme0n1p2 進行格式化。

一個有趣的點就是,如果希望為 /dev/nvme0n1p2 起一個有趣的卷標,比如 ‘C:\’, 則命令應寫為 sudo mkfs.btrfs -f -L "C:\\" /dev/nvme0n1p2.

完成後透過 sudo shutdown now 來關機,換上 De­bian 的安裝鏡像,之後開始安裝。

安裝 (目前就是在虛擬機器中安裝)

在 ‘Con­fi­gure the net­work’ 並要求輸入 ‘host­name’ 那裡(左圖),其實輸入的是「電腦名稱」,也即在 Ter­mi­nal 中顯示在 @ 後面的部分。因此此處的名稱與網路無關,只是指定一個電腦的名稱。而下一頁 ‘do­main name’ 那裡則可以留空不設。

之後便是設定磁碟分割那裡,依照如下所示者設定即可。

此外便無過多需要注意的或修改的內容,一路輕車熟路便可安裝完成了。

需要注意的是,De­bian 13 預設並未含帶 sudo, 因此初次登入時尚不可用,需後續安裝;初始狀態亦不可透過 shutdown 來關機(不,root 使用者也不行),需要登入至 root 使用者或是透過 su 命令臨時調用 root 權限,然後透過 systemctl poweroff 來關機、透過 systemctl reboot 來重新開機(待安裝了 sudo 後就可以使用 sudo shutdown nowsudo reboot 了)。

初始設定

首先登入 root 使用者賬戶,然後透過 apt install sudo 來安裝 sudo, 之後使用 usermod -aG sudo username 來將個人使用者賬戶添加為 ‘sudoer’. 之後重新開機,個人使用者賬戶便可以使用 sudo 了。

執行一次 sudo systemctl enable --now fstrim.timer.

透過 sudo apt install curl 來安裝 curl, 並進而透過以下指令碼來安裝 7z.

install-7z.sh
#!/bin/bash
curl https://www.7-zip.org/download.html -o /tmp/7znvdlinterim.html
href=$(grep -oP 'href="a/7z[0-9]{4}-linux-x64\.tar\.xz"' /tmp/7znvdlinterim.html | head -n 1 | cut -d'"' -f2)
url="https://www.7-zip.org/$href"
curl -L -o /tmp/7znvdlinterim.tar.xz "$url"
tar -xJf /tmp/7znvdlinterim.tar.xz -C /tmp/ --transform='s/7zz/7znvdlinterim/' 7zz
sudo install -m 755 /tmp/7znvdlinterim /usr/local/bin/7z
rm -rf /tmp/7znvdlinterim*

透過 sudo nano /etc/fstab 將諸磁碟分割的選項改為——

ssd,noatime,nodiratime,compress-force=zstd:10,space_cache=v2,commit=120

透過 sudo nano /etc/default/grubGRUB_GFXMODE 改為 1152x864, 並添加一列 GRUB_GFXPAYLOAD_LINUX=keep. 如果認為開機時 GRUB 介面停留的時間過少,則可根據需要修改上方的 GRUB_TIMEOUT 的值。

完成後透過 sudo update-grub 來更新 GRUB.

— 可選環節:調整命令列外觀 —

透過 sudo apt install fonts-terminus 來安裝 Ter­mi­nus 這款字型。

之後透過 sudo dpkg-reconfigure console-setup 來設定 con­sole 的外觀。具體來說就是修改以下三處:

– 此頁選擇 ‘Gu­ess op­ti­mal cha­rac­ter set’.
– 此頁選擇 ‘Ter­mi­nus­Bold’.
– 此頁選擇 ‘10x20’.

這樣便可以讓原生的命令列介面顯得稍微更清楚一點,像下面這般,「好看」倒是說不上。

— 可選環節結束 —

透過加寫 bashrc 的方式來增添 clh 命令,以用來清除命令列歷史(順帶可以增添一個清除當前熒幕內容的 cls)。

~/.bashrc (ADDENDVM)
alias clh='history -c && history -w && > ~/.bash_history'
alias cls='clear && tput reset'

保存後執行 source ~/.bashrc 即可。

儘管編輯 bashrc 的做法我一向不喜歡(因為總會有這樣那樣的問題),但此處卻確實需要這樣做,因為如果此處寫成 ba­sh 指令碼然後放到 /usr/local/bin/ 中去,則會因為一些我所不能理解的原因而無法實踐。

ren 中的指令碼以及下方這兩段放入 /usr/local/bin/ 中,勿忘使用 chmod +x 使其皆成為可執行的。

cla
#!/bin/bash
sudo apt clean
sudo apt autoclean
sudo apt autoremove
sudo apt autoremove --purge
cll
#!/bin/bash
sudo truncate -s 0 /root/.bash_history
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
sudo rm -rf /var/cache/*
sudo rm -rf /var/lib/apt/lists/*
rm -rf ~/.cache/*
sudo rm -rf /var/crash/*
sudo rm -rf /var/lib/systemd/coredump/*
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
sudo truncate -s 0 /var/log/wtmp
sudo truncate -s 0 /var/log/btmp
sudo truncate -s 0 /var/log/lastlog
sudo find /var/log -type f -exec truncate -s 0 {} \;
sudo rm -f /var/log/apt/*.log
sudo rm -f /var/log/apt/term.log
sudo find /var/log -type f -name "*.gz" -delete
sudo find /var/log -type f -name "*.1" -delete
sudo find /var/log -type f -name "*.old" -delete

再向 /usr/local/bin/ 添加以下兩則可執行的指令碼,以便日後可透過 rb 來重新開機,透過 sd 來關機。且在重新開機或關機前都將一些瑣碎的可以清除的檔案以及記錄盡數清除。

rb
#!/bin/bash
cll
sudo reboot
經過「倒硬碟」後的虛擬機器大小 (~668 MB) 以及可以壓縮到的程度 (~317 MB).
sd
#!/bin/bash
cll
sudo shutdown now

最後向 /usr/local/bin/ 添加下面這樣一段可執行的指令碼——

cprs
#!/bin/bash
sudo systemctl daemon-reload
sudo update-grub
cll
sudo btrfs filesystem defragment -r -v -czstd /
sudo btrfs filesystem defragment -r -v -czstd /home
sudo btrfs filesystem defragment -r -v -czstd /d
sleep 2
sd

需要注意的是,如上方突顯列 7 所示,具體要執行壓縮作業的卷須視情況而定。像是此處就還有一個掛載到 /d 的卷。此外突顯列 4 使用的不是系統內置命令,而是前面自行設定的。

現在,先執行一遍 cla(應該清不出任何東西),然後 clh && cls, 進而透過 rb 來重新開機,之後執行 cprs. 待關機後便可以使用再生龍來倒硬碟了。

經過倒硬碟後的虛擬機器以及將其再用 7z 壓縮後的壓縮卷大小如右圖所示,原始虛擬機器大抵只有不到 670 MB, 壓縮後更是只有 300 MB 多一點。

之後便可以開始安裝 DE 或者 wm 或者探索更多僅在命令列下便可進行的玩法了。

X

安裝 X:

sudo apt install xorg xinit

初始 pur­ge (以在虛擬機器中使用為前提):

sudo apt purge xserver-xorg-input-all xserver-xorg-input-wacom luit xserver-xorg-video-amdgpu xserver-xorg-video-ati xserver-xorg-video-fbdev xserver-xorg-video-intel xserver-xorg-video-nouveau xserver-xorg-video-qxl xserver-xorg-video-radeon xserver-xorg-video-vesa xcvt

安裝字型檔:

ismt (install Sarasa Mono TC)
#!/bin/bash
wget -O /tmp/sarasafontupdateinterim.html https://github.com/be5invis/Sarasa-Gothic/releases/latest
wget -O /tmp/sarasafontupdateinterim.7z $(grep -oP 'href="https://github.com/be5invis/Sarasa-Gothic/releases/download/v[0-9.]+/SarasaMonoTC-TTF-[0-9.]+\.7z"' /tmp/sarasafontupdateinterim.html | head -n 1 | cut -d'"' -f2)
mkdir -p /tmp/sarasafontupdateinterim
7z x -y /tmp/sarasafontupdateinterim.7z -o/tmp/sarasafontupdateinterim
chmod -R 755 /tmp/sarasafontupdateinterim
sudo mv -f /tmp/sarasafontupdateinterim/* /usr/share/fonts/
rm -rf /tmp/sarasafontupdateinterim*
sudo fc-cache -f -v

配置 X:

~/.xinitrc
export XCURSOR_THEME=Adwaita
export XCURSOR_SIZE=48
vmtoolsd -n vmusr &
xrdb ~/.Xresources
xrandr --dpi 192
xrandr --output Virtual1 --mode 2560x1600
exec xterm
~/.Xresources
XTerm*geometry: 142x36
Xft.dpi: 192
XTerm*utf8: 1
XTerm*faceName: Sarasa Mono TC
XTerm*faceSize: 13
XTerm*renderFont: true
Xft.hinting: true
Xft.hintstyle: hintslight
Xft.antialias: true
Xft.rgba: rgb
XTerm*boldColors: false
XTerm*boldMode: false
XTerm*background: #003153
XTerm*foreground: #fcfcfc
XTerm*color0: #0C0C0C
XTerm*color1: #ff7165
XTerm*color2: #71d91c
XTerm*color3: #fff05a
XTerm*color4: #02b2f2
XTerm*color5: #faab19
XTerm*color6: #73ebe5
XTerm*color7: #fcfcfc
XTerm*color8: #767676
XTerm*color9: #E74856
XTerm*color10: #16C60C
XTerm*color11: #F9F1A5
XTerm*color12: #3B78FF
XTerm*color13: #B4009E
XTerm*color14: #61D6D6
XTerm*color15: #F2F2F2
XTerm*translations: #override Ctrl<Key>V: insert-selection(CLIPBOARD) \n Ctrl Shift <Key>V: insert-selection(CLIPBOARD) \n  Ctrl Shift <Key>C: copy-selection(CLIPBOARD)
XTerm*selectToClipboard: false

KDE

忠實顯示了趣味卷標的 Dolphin.
裝有 KDE 的 Debian 虛擬機器大小 (~3.46 GB) 以及可以壓縮到的程度 (~1.59 GB).
NB
需要注意的是,如果想要 purge 掉舊的 kernel, 則建議在安裝 KDE 之前就先 purge 掉。

安裝 KDE:

sudo apt install plasma-desktop konsole dolphin sddm
sudo systemctl enable sddm
sudo systemctl set-default graphical.target

安裝完畢進入 KDE 後,會發現 Dis­co­ver 不能正常運作,這時需要手動啟用 packagekit:

sudo systemctl enable --now packagekit

抑或 pur­ge 掉 Dis­co­ver:

sudo apt purge plasma-discover plasma-discover-common plasma-discover-backend-fwupd plasma-discover-backend-flatpak plasma-discover-backend-snap

以及,儘管安裝的是最精簡的 plasma-desktop, 仍舊有以下這些可以一氣 pur­ge 掉。

sudo apt purge bup bup-doc docbook-xml docbook-xsl fonts-noto-color-emoji git git-man gstreamer1.0-x kdeconnect kdenetwork-filesharing kdoctools6 khelpcenter khelpcenter-data kup-backup kwalletmanager libddcutil5 liberror-perl libfakekey0 libgit2-1.9 libgsettings-qt1 libhttp-parser2.9 libkf6contacts6 libkf6contacts-data libkf6people6 libkf6peoplebackend6 libkf6people-data libkf6texttemplate6 libkpmcore12 libmbedtls21 libmbedx509-7 libpowerdevilcore2 libxapian30 libxml2-utils media-player-info par2 partitionmanager plasma-disks plasma-firewall plasma-welcome powerdevil powerdevil-data power-profiles-daemon python3-fuse python3-ldb python3-pylibacl python3-pyxattr python3-samba python3-talloc python3-tdb python3-tornado qml6-module-org-kde-people qml6-module-qtquick-particles qml-module-gsettings qml-module-gsettings1.0 rsync samba-common samba-common-bin sgml-data smartmontools sshfs tdb-tools usbmuxd vim-common vim-tiny xserver-xorg-input-wacom xwaylandvideobridge

pur­ge 完畢之後,再執行一遍 cla 就好了。

當然,安裝了 KDE 後的 Debian, 無論再怎麼 pur­ge, 大小也是驟增的,如右圖所示。

雜談

關於倒硬碟

對於初裝完成後虛擬機器的 vmdk 硬碟檔案大小超過 25 GB 的,可以嘗試多次手動觸發壓縮然後用再生龍去倒硬碟,如下試驗結果所示,倒兩次硬碟後的壓縮檔的大小就相差不大了,但非壓縮檔時 vmdk 的大小似乎要倒三次才能不會在繼續倒的過程中見到明顯的收益。

DATE & TIME        SIZE              NAME
114-12-06 06:08    16,068,902,912    d-1.vmdk
114-12-06 06:40    14,173,536,256    d-2.vmdk
114-12-06 07:18    13,500,940,288    d-3.vmdk
114-12-06 08:38    13,458,341,888    d-4.vmdk
114-12-06 09:07    12,935,835,716    d-1.rar
114-12-06 09:28    10,663,506,573    d-2.rar
114-12-06 09:50    10,648,884,592    d-3.rar
114-12-06 10:14    10,626,573,184    d-4.rar

更為有趣的是,儘管在虛擬機器中,完成初次手動強制壓縮後,硬碟的使用量就基本固定了(廢話),但每次倒硬碟時在再生龍裡看到的硬碟的使用量卻不同,而且——唯有在第一次倒硬碟時,在再生龍裡看到的硬碟使用量最小,隨後幾次在再生龍裡看到的使用量反而會增大——卻又不是逐次均相較前次增大,而是倒第一次時最小,第二次增大,第三次又落回到一二次之間(但仍大於第一次時所見之大小),之後到了倒第四次時,在再生龍裡看到的硬碟使用量又增到了歷次最大。然而在宿主機器上的 vmdk 檔案以及其隨後的壓縮檔卻是逐次減小的(當然,如前段所述,vmdk 檔案在三次之後收益即不再明顯,壓縮檔在兩次後便不再有明顯收益)。以及,這次的試驗發現,經過多次倒硬碟後的 vmdk 內部的檔案似乎已經足夠「密實」,因此壓縮率只有約 80% 左右。