怎么選:CD、DVD與netinst區(qū)別實(shí)戰(zhàn))
裝機(jī)這件事做到第十幾個(gè)年頭你會(huì)發(fā)現(xiàn)真正卡人的從來(lái)不是分區(qū)表怎么劃、GRUB 裝到哪塊盤(pán)而是下載頁(yè)面上那一長(zhǎng)串 .iso 文件名——netinst、CD-1、DVD-1、live、BD密密麻麻排在一起光標(biāo)懸停在哪個(gè)上面全靠直覺(jué)。我最早接觸 Debian 是在一堆光盤(pán)盒子里翻 CD-2、CD-3 的年代裝個(gè)桌面環(huán)境要中途換盤(pán)四次光驅(qū)咔噠咔噠響個(gè)不停?,F(xiàn)在雖然大多數(shù)人一個(gè) U 盤(pán)就搞定了但CD 和 DVD 到底差在哪這個(gè)問(wèn)題依然每天有人在問(wèn)因?yàn)?Debian 官方至今同時(shí)掛著這兩套介質(zhì)誰(shuí)也不想辛辛苦苦下完 3.7GB 才發(fā)現(xiàn)自己其實(shí)只需要 600MB 的那個(gè)。順帶說(shuō)一句搜 cd 這個(gè)詞很有意思能搜出 shell 的 cd 命令、CI/CD 流水線、Windows 的 C 盤(pán)驅(qū)動(dòng)器全跟本文沒(méi)關(guān)系我們今天只聊光盤(pán)鏡像這一件事。這篇東西我打算把它寫(xiě)成一次完整的拆解從 Debian 安裝介質(zhì)的歷史脈絡(luò)講到鏡像內(nèi)部目錄結(jié)構(gòu)從軟件包索引機(jī)制講到我拿同一臺(tái)虛擬機(jī)分別用 CD-1 和 DVD-1 裝兩遍的實(shí)測(cè)記錄最后給出按場(chǎng)景直接抄的選型結(jié)論。寫(xiě)盤(pán)、校驗(yàn)、換源、離線補(bǔ)包這些操作步驟我都會(huì)附上能直接粘貼的命令。不管你是第一次裝 Debian 的新手還是常年給內(nèi)網(wǎng)批量裝機(jī)、需要在無(wú)外網(wǎng)環(huán)境里跑通全流程的運(yùn)維看完應(yīng)該都能少走幾段彎路。1. 先把 Debian 安裝介質(zhì)的家底摸清楚很多人一上來(lái)就問(wèn)CD 和 DVD 哪個(gè)好其實(shí)這個(gè)問(wèn)題問(wèn)得不完整因?yàn)樵?Debian 的語(yǔ)境里CD 和 DVD 不是兩個(gè)可以并列比較的選項(xiàng)而是同一套多盤(pán)介質(zhì)體系下的兩種容量規(guī)格。搞清楚這一點(diǎn)后面所有的選擇邏輯才立得住。1.1 從光盤(pán)時(shí)代留下的盤(pán)片編號(hào)傳統(tǒng)Debian 的安裝介質(zhì)在設(shè)計(jì)之初假設(shè)的是我手上只有一臺(tái)光驅(qū)網(wǎng)絡(luò)帶寬按 KB 算這種場(chǎng)景。所以它把整個(gè)軟件倉(cāng)庫(kù)拆成若干張盤(pán)每張盤(pán)放一部分 .deb 包裝機(jī)時(shí)按提示依次插入。這套機(jī)制在官方鏡像站上留下的痕跡就是文件名里的 CD-1、CD-2 和 DVD-1、DVD-2、DVD-3。我印象最深的是早年 i386 架構(gòu)的 CD 集能湊到十幾張裝一個(gè)完整的 KDE 桌面得準(zhǔn)備好一摞盤(pán)中途少一張就卡死。到了 amd64 成為主流之后包體積越來(lái)越大CD 的 700MB 容量明顯不夠用官方在 CD 系列上的盤(pán)數(shù)就逐步縮減有些架構(gòu)甚至只保留一張 CD-1 或者干脆只剩 netinst。DVD 那邊因?yàn)閱螌?4.7GB 的容量寬裕一張 DVD-1 就能把絕大多數(shù)常用包一次性塞進(jìn)去所以它順理成章變成了標(biāo)準(zhǔn)安裝盤(pán)的代名詞。你現(xiàn)在去鏡像站看list-dvd文件里通常寫(xiě)著三張盤(pán)而list-cd里的內(nèi)容會(huì)因架構(gòu)而差異很大。想確認(rèn)自己架構(gòu)下到底有幾張最靠譜的辦法是直接拉list-cd和list-dvd這兩個(gè)純文本文件看一眼別靠記憶。1.2 DVD-1 憑什么成了事實(shí)上的默認(rèn)選擇如果把 Debian 的所有安裝鏡像按下載量排個(gè)序DVD-1 大概長(zhǎng)期占據(jù)第一netinst 緊隨其后。DVD-1 的核心優(yōu)勢(shì)就三個(gè)字能離線。Debian 12 的 DVD-1 大概 3.7GB里面打包了五千個(gè)上下的軟件包GNOME、KDE Plasma、Xfce、LXDE、MATE、Cinnamon 這些桌面環(huán)境全都在盤(pán)上服務(wù)器這邊 Apache、Nginx、PostgreSQL、MariaDB、Docker 相關(guān)依賴也基本齊活。這意味著在一臺(tái)完全沒(méi)網(wǎng)的機(jī)器上你可以從這張盤(pán)裝出一個(gè)帶圖形界面的完整系統(tǒng)中途不需要任何外部資源。對(duì)工控機(jī)、內(nèi)網(wǎng)隔離環(huán)境、老機(jī)器救急這些場(chǎng)景這個(gè)特性能救命。代價(jià)也很明顯下載 3.7GB 對(duì)帶寬敏感的人是折磨寫(xiě) U 盤(pán)要等幾分鐘而且這些包是鏡像發(fā)布那一刻的快照你裝完系統(tǒng)第一件事還是得apt update apt upgrade把安全更新拉一遍否則上來(lái)就帶著幾個(gè)月前的漏洞。我一般把 DVD-1 定位成離線場(chǎng)景專用盤(pán)有網(wǎng)的時(shí)候反而不推薦沒(méi)必要為用不上的包浪費(fèi)時(shí)間和流量。1.3 netinst、Live、BD 這幾個(gè)容易搞混的成員除了 CD 和 DVDDe bian 還有幾個(gè)常被誤認(rèn)的成員必須區(qū)分開(kāi)。netinst網(wǎng)絡(luò)安裝鏡像只有 600MB 左右里面裝的是一個(gè)最小可引導(dǎo)系統(tǒng)加安裝器真正的軟件包全靠聯(lián)網(wǎng)從鏡像站拉。它的優(yōu)勢(shì)是體積小、下載快、裝出來(lái)的系統(tǒng)干凈沒(méi)有多余東西。缺點(diǎn)同樣直接沒(méi)網(wǎng)就廢了而且安裝過(guò)程對(duì)網(wǎng)絡(luò)穩(wěn)定性要求高中途斷網(wǎng)容易出岔子。我個(gè)人的習(xí)慣是只要目標(biāo)機(jī)器能上網(wǎng)首選就是 netinst裝完再按需apt install比在一堆用不上的包里挑挑揀揀舒服得多。Live 鏡像是另一條路線它本質(zhì)是一個(gè)可啟動(dòng)的完整系統(tǒng)帶桌面、帶瀏覽器開(kāi)機(jī)直接進(jìn)系統(tǒng)體驗(yàn)桌面上放一個(gè)安裝圖標(biāo)點(diǎn)進(jìn)去才是真正的安裝流程。它適合我先試試這個(gè)發(fā)行版對(duì)不對(duì)胃口或者我需要一個(gè)應(yīng)急啟動(dòng)盤(pán)來(lái)救數(shù)據(jù)的場(chǎng)景。Live 鏡像通常有 GNOME、KDE、Xfce 等多個(gè)桌面變體體積在 2GB 到 3GB 之間跟 DVD-1 差不多大但用途完全不同。BD 鏡像是藍(lán)光規(guī)格單張容量 25GB 起步官方會(huì)提供含有整套檔案庫(kù)的快照版本。這個(gè)一般只在搭建內(nèi)網(wǎng)離線鏡像倉(cāng)庫(kù)的時(shí)候才會(huì)用到普通人裝機(jī)基本不會(huì)碰。我見(jiàn)過(guò)有團(tuán)隊(duì)用它做內(nèi)網(wǎng) apt 源的種子一次寫(xiě)入長(zhǎng)期可用思路是對(duì)的但那是運(yùn)維工程而不是裝機(jī)范疇了。介質(zhì)類型典型體積是否需聯(lián)網(wǎng)主要用途適合人群netinst600MB 左右需要干凈系統(tǒng)、按需安裝有網(wǎng)環(huán)境、熟悉 apt 的人CD-1約 700MB通常需要補(bǔ)包歷史遺留、小體積引導(dǎo)極簡(jiǎn)場(chǎng)景、老硬件DVD-13.5-4GB不需要離線裝完整桌面內(nèi)網(wǎng)隔離、工控、救急Live2-3GB不需要部分試用系統(tǒng)、應(yīng)急維護(hù)新手評(píng)估、故障排查BD25GB 以上不需要內(nèi)網(wǎng)鏡像源種子運(yùn)維團(tuán)隊(duì)、批量部署提示CD 集在 amd64 等主流架構(gòu)上的盤(pán)數(shù)這些年一直在變選之前務(wù)必打開(kāi)鏡像站的list-cd文件核對(duì)不要憑舊記憶下單。2. CD 與 DVD 的真實(shí)差異不在容量在軟件包索引如果說(shuō)第一章解決的是有哪些選項(xiàng)這一章要解決的是它們內(nèi)部到底怎么運(yùn)作。把機(jī)制搞明白你以后看到任何一個(gè)新的鏡像變體都能自己判斷它值不值得下。2.1 拆開(kāi)一個(gè) ISO 看看到底裝了什么把一個(gè) Debian 的 DVD-1 用 loop 方式掛到本地目錄根目錄下能看到這么幾個(gè)關(guān)鍵位置/install/放的是安裝器本身包括內(nèi)核vmlinuz、初始內(nèi)存盤(pán)initrd.gz、以及各種安裝階段的腳本/dists/放的是軟件包索引Release文件記錄著這次快照的版本和組件信息main/binary-amd64/Packages是未壓縮的包列表里面每一個(gè)條目就是一個(gè) .deb 的元數(shù)據(jù)——包名、版本、依賴、大小、校驗(yàn)值/pool/才是真正的 .deb 文件存放地按pool/main/加軟件包首字母分目錄層層展開(kāi).disk/目錄比較隱蔽但很關(guān)鍵info文件里寫(xiě)著這張盤(pán)的完整名稱和版本cdrom/下面還有若干.info文件記錄本盤(pán)編號(hào)、總盤(pán)數(shù)這些信息。這里有個(gè)細(xì)節(jié)值得單獨(dú)拎出來(lái)CD 和 DVD 的區(qū)別最終體現(xiàn)在Packages索引覆蓋了多少條目以及/pool/里實(shí)際躺了多少個(gè) .deb。netinst 的Packages索引是空的或者只有極少量條目因?yàn)樗鼔焊鶝](méi)打算從本地裝包CD-1 的索引覆蓋一部分常用包DVD-1 的索引覆蓋量最大安裝器在圖形或文本安裝流程里能直接列出成百上千個(gè)可選軟件任務(wù)。掛載看一眼的命令很簡(jiǎn)單sudo mkdir -p /mnt/debiso sudo mount -o loop debian-12.x.x-amd64-DVD-1.iso /mnt/debiso cat /mnt/debiso/.disk/info ls /mnt/debiso/.disk/cdrom/ du -sh /mnt/debiso/pool跑完你會(huì)對(duì)這張盤(pán)到底裝了什么有個(gè)非常直觀的概念比看任何文檔都快。2.2 安裝器是怎么決定從本地拿還是上網(wǎng)拉的debian-installer 在裝基礎(chǔ)系統(tǒng)的階段會(huì)按一個(gè)固定的優(yōu)先級(jí)找包先看本地介質(zhì)上的Packages索引命中就直接從/pool/里取沒(méi)命中如果你配置了網(wǎng)絡(luò)源就從遠(yuǎn)端拉。這個(gè)順序決定了 CD 和 DVD 的核心體驗(yàn)差異。用 DVD-1 裝安裝器問(wèn)你要不要裝桌面環(huán)境的時(shí)候你勾上 GNOME它直接去盤(pán)上取幾百個(gè)包一路裝完不碰網(wǎng)絡(luò)。用 CD-1 裝你勾了 GNOME安裝器發(fā)現(xiàn)盤(pán)上沒(méi)有這個(gè)任務(wù)需要的包就會(huì)提示需要網(wǎng)絡(luò)然后你才需要配置網(wǎng)絡(luò)源繼續(xù)。如果這時(shí)候機(jī)器沒(méi)網(wǎng)安裝流程就只能退化到只裝基礎(chǔ)系統(tǒng)等你后面手動(dòng)補(bǔ)裝桌面。還有個(gè)相關(guān)的組件叫apt-setup它負(fù)責(zé)在基礎(chǔ)系統(tǒng)裝完之后給新系統(tǒng)寫(xiě)/etc/apt/sources.list。如果它是從光盤(pán)裝的寫(xiě)進(jìn)去的會(huì)是一條deb cdrom:[...]形式的本地源如果用的是 netinst 走網(wǎng)絡(luò)裝寫(xiě)進(jìn)去的就是正常 http 源。這個(gè)差別會(huì)直接影響你裝完系統(tǒng)之后的行為后面第五章我會(huì)專門(mén)講怎么改。2.3 請(qǐng)插入下一張 CD背后的換盤(pán)邏輯PC 時(shí)代過(guò)來(lái)的老鳥(niǎo)應(yīng)該都見(jiàn)過(guò)那句經(jīng)典的 Please insert the next CD它的原理其實(shí)很簡(jiǎn)單安裝器在安裝過(guò)程中要裝某個(gè)包先在當(dāng)前盤(pán)的索引里找找不到就去問(wèn)其他盤(pán)。DVD-1 因?yàn)楦采w率高這個(gè)提示幾乎不會(huì)出現(xiàn)CD 集就不一樣了你裝的東西稍微多一點(diǎn)它就得讓你換盤(pán)。這套機(jī)制在物理光驅(qū)上還算能忍放到 U 盤(pán)和虛擬機(jī)時(shí)代就很尷尬了——你要么得把多張 ISO 依次掛載到虛擬機(jī)光驅(qū)里要么得準(zhǔn)備多個(gè) U 盤(pán)或者干脆把多張 ISO 塞進(jìn)一個(gè)能切換掛載的啟動(dòng)工具里。我試過(guò)用某些支持多鏡像的啟動(dòng)工具做多盤(pán)確實(shí)能省事但配置步驟比直接下一個(gè) DVD-1 麻煩得多。這也是為什么我說(shuō)只要你的目標(biāo)不是我只有張 700MB 的空盤(pán)這種極端情況CD 集在今天基本沒(méi)有選擇價(jià)值。3. 同一臺(tái)機(jī)器裝兩遍CD-1 與 DVD-1 的實(shí)測(cè)對(duì)照光講原理容易飄我拿手頭這臺(tái)虛擬機(jī)做了兩組安裝把過(guò)程和數(shù)據(jù)記下來(lái)方便你直觀判斷。3.1 測(cè)試環(huán)境與準(zhǔn)備測(cè)試環(huán)境是 KVM 里的一個(gè)虛擬機(jī)4 vCPU、4GB 內(nèi)存、40GB 虛擬磁盤(pán)BIOS 引導(dǎo)配 UEFI 兩種都試了一遍。網(wǎng)絡(luò)部分第一次故意斷開(kāi)第二輪接上用來(lái)對(duì)比離線能力。兩個(gè) ISO 分別是同一版本的amd64 CD-1和amd64 DVD-1版本號(hào)保持一致避免節(jié)奏差異來(lái)自版本更新。準(zhǔn)備階段我先做了哈希校驗(yàn)這一步千萬(wàn)別跳過(guò)。下載大文件出錯(cuò)是小概率但后果嚴(yán)重的事中途幾個(gè)字節(jié)翻轉(zhuǎn)安裝過(guò)程會(huì)出現(xiàn)特別難查的詭異報(bào)錯(cuò)。校驗(yàn)用的官方SHA256SUMS加簽名文件流程在后面章節(jié)會(huì)寫(xiě)全。3.2 兩組安裝過(guò)程的實(shí)際記錄斷網(wǎng) DVD-1啟動(dòng)后進(jìn)圖形安裝流程語(yǔ)言選中文時(shí)區(qū)、鍵盤(pán)一路默認(rèn)。分區(qū)選了使用整個(gè)磁盤(pán) 單個(gè)分區(qū)因?yàn)橹皇菧y(cè)試環(huán)境。到軟件選擇這一步我勾了 GNOME 和 SSH server安裝器直接從盤(pán)上取包全程沒(méi)有任何需要網(wǎng)絡(luò)的提示整個(gè)安裝大概 12 分鐘重啟后直接進(jìn) GDM 登錄界面apt list --installed | wc -l數(shù)出來(lái)約 1600 個(gè)包。斷網(wǎng) CD-1同樣的流程走到軟件選擇我勾 GNOME安裝器直接告訴我盤(pán)上沒(méi)有所需的包無(wú)法繼續(xù)勾選桌面環(huán)境只能退回只裝基礎(chǔ)系統(tǒng)。裝完重啟進(jìn)的是純文本控制臺(tái)apt list --installed | wc -l大概 380 個(gè)包。想裝桌面必須先解決網(wǎng)絡(luò)問(wèn)題。有網(wǎng) CD-1接上網(wǎng)線勾 GNOME安裝器提示需要聯(lián)網(wǎng)獲取包配置好網(wǎng)絡(luò)源之后開(kāi)始下載下載量在 1.2GB 到 1.5GB 之間視你勾選的組件而定??偤臅r(shí)比 DVD-1 長(zhǎng)主要時(shí)間花在下載上。有網(wǎng) netinst這是我最常用的組合。安裝器只帶基礎(chǔ)系統(tǒng)下載量跟你選的任務(wù)直接相關(guān)裝個(gè)最小化的 SSH server 只要兩三百兆比 CD-1 那套先下個(gè) 700MB 再補(bǔ) 1.2GB的思路清爽太多。3.3 關(guān)鍵數(shù)據(jù)對(duì)照表對(duì)比維度CD-1斷網(wǎng)CD-1有網(wǎng)DVD-1斷網(wǎng)netinst有網(wǎng)鏡像下載量約 700MB約 700MB約 3.7GB約 600MB安裝時(shí)額外下載無(wú)功能受限1.2-1.5GB無(wú)按任務(wù) 0.3-1.2GB能否離線裝桌面否不適用是否裝完包數(shù)量GNOME約 380約 1600約 1600約 1600裝機(jī)總耗時(shí)估8 分鐘25-40 分鐘12 分鐘15-25 分鐘主要痛點(diǎn)功能殘缺下載時(shí)間長(zhǎng)鏡像太大依賴網(wǎng)絡(luò)質(zhì)量這張表里最值得琢磨的一行是裝完包數(shù)量。CD-1 斷網(wǎng)裝出來(lái)的系統(tǒng)只有基礎(chǔ)命令行跟 DVD-1 裝出來(lái)的是一套東西差了四倍多的包量。如果你以為CD 和 DVD 只是下載大小不同裝出來(lái)一樣那這個(gè)實(shí)測(cè)數(shù)據(jù)應(yīng)該能糾正這個(gè)印象。3.4 用哪個(gè)取決于你更怕什么我觀察下來(lái)選型時(shí)人真正在權(quán)衡的不是技術(shù)指標(biāo)而是我更怕下載慢還是更怕裝到一半發(fā)現(xiàn)沒(méi)網(wǎng)。怕下載慢、網(wǎng)絡(luò)又好的netinst 是最優(yōu)解怕斷網(wǎng)、或者目標(biāo)機(jī)器壓根不聯(lián)網(wǎng)的DVD-1 才能兜底CD-1 卡在中間體積沒(méi)小到極致離線能力又不夠?qū)儆诒粫r(shí)代擠到角落的選項(xiàng)。心得做過(guò)十幾次內(nèi)網(wǎng)裝機(jī)之后我的原則是——只要目標(biāo)環(huán)境有穩(wěn)定的外網(wǎng)出口就別下 DVD只要目標(biāo)環(huán)境一點(diǎn)外網(wǎng)都沒(méi)有就別碰 netinst老老實(shí)實(shí)下 DVD-1 或者把包源搬到內(nèi)網(wǎng)。4. 按場(chǎng)景選鏡像三種典型環(huán)境的結(jié)論前面講了原理和實(shí)測(cè)這一章直接給結(jié)論。我給場(chǎng)景分得粗一點(diǎn)因?yàn)閷?shí)際工作里就是這么分的。4.1 個(gè)人電腦、云主機(jī)、開(kāi)發(fā)機(jī)這類環(huán)境有網(wǎng)、帶寬還行、只需要一臺(tái)機(jī)器能跑起來(lái)答案很明確netinst。裝機(jī)快、系統(tǒng)干凈、按需安裝裝完之后apt install什么都能補(bǔ)。特別是給云主機(jī)裝系統(tǒng)很多服務(wù)商支持自定義 ISO 掛載用 netinst 掛上去裝比傳一個(gè) 3.7GB 的 DVD 鏡像省太多時(shí)間。這個(gè)場(chǎng)景里唯一要注意的是網(wǎng)絡(luò)配置本身。netinst 在安裝階段就要聯(lián)網(wǎng)如果你所在的環(huán)境需要靜態(tài) IP、需要指定 DNS得在安裝器里手動(dòng)填。Debian 安裝器支持手動(dòng)配置網(wǎng)絡(luò)遇到 DHCP 不生效的情況別慌選手動(dòng)配置網(wǎng)絡(luò)把地址、網(wǎng)關(guān)、DNS 填進(jìn)去就行。我遇到過(guò)不少次因?yàn)榫W(wǎng)段劃分特殊導(dǎo)致 DHCP 拿不到地址的情況手動(dòng)填完就通了。4.2 內(nèi)網(wǎng)隔離、工控、無(wú)外網(wǎng)的老機(jī)器這三個(gè)場(chǎng)景的共同點(diǎn)是裝的時(shí)候一定沒(méi)有可用外網(wǎng)那 DVD-1 就是標(biāo)準(zhǔn)答案。它能保證你從一張盤(pán)裝出帶桌面的完整系統(tǒng)。如果目標(biāo)機(jī)器需要一些 DVD-1 上沒(méi)有的冷門(mén)包還有兩條路一是下載完整的 DVD 集把 DVD-2、DVD-3 也帶上安裝時(shí)按提示換盤(pán)二是在有網(wǎng)的機(jī)器上把需要的 .deb 用apt-get download拉下來(lái)拷貝到 U 盤(pán)目標(biāo)機(jī)器上dpkg -i或apt install ./包名.deb安裝。第二條路我強(qiáng)烈推薦因?yàn)閷?shí)際用到的包往往就那么十幾個(gè)與其背三張 DVD不如精準(zhǔn)搬運(yùn)。apt-get download配合apt-rdepends能把依賴樹(shù)一并拉全再拷過(guò)去用apt install ./*.deb一次裝完效率比換盤(pán)高得多。4.3 批量部署、內(nèi)網(wǎng)鏡像倉(cāng)庫(kù)運(yùn)維角度講當(dāng)你有幾十上百臺(tái)機(jī)器要裝的時(shí)候糾結(jié) CD 還是 DVD 已經(jīng)沒(méi)有意義了正確做法是在內(nèi)網(wǎng)搭一個(gè)完整的 apt 鏡像源。做這件事有兩個(gè)思路用 BD 快照鏡像做種子導(dǎo)入或者用工具從上游鏡像站同步一份完整檔案庫(kù)到內(nèi)網(wǎng)服務(wù)器。內(nèi)網(wǎng)源搭好之后裝機(jī)就用 netinst但把sources.list指向內(nèi)網(wǎng)地址這樣既享受了 netinst 的輕量又不受外網(wǎng)限制。搭建工具環(huán)節(jié)我不在這里展開(kāi)只說(shuō)一個(gè)我踩過(guò)的坑內(nèi)網(wǎng)源的目錄結(jié)構(gòu)必須和官方保持一致dists和pool是并列的別自己拍腦袋改層級(jí)否則 apt 會(huì)報(bào)404或者簽名校驗(yàn)失敗排查起來(lái)非常繞。5. 從下載到裝完可直接照做的完整流程這一章是純操作把下載、校驗(yàn)、寫(xiě)盤(pán)、換源這幾步串起來(lái)。5.1 下載與哈希校驗(yàn)一個(gè)字節(jié)都不能錯(cuò)去官方鏡像站找到對(duì)應(yīng)版本目錄下載 ISO 的同時(shí)把同目錄下的SHA256SUMS和SHA256SUMS.sign也下下來(lái)。先驗(yàn)簽名再驗(yàn)哈希# 導(dǎo)入 Debian 鏡像簽名密鑰如果本地 keyring 里沒(méi)有 gpg --keyserver keyring.debian.org --recv-keys 0x988021A964C7DA67 # 校驗(yàn) SHA256SUMS 文件本身的真實(shí)性 gpg --verify SHA256SUMS.sign SHA256SUMS # 用校驗(yàn)和文件核對(duì) ISO sha256sum -c SHA256SUMS --ignore-missing--ignore-missing這個(gè)參數(shù)很實(shí)用因?yàn)镾HA256SUMS里列了幾十個(gè)鏡像文件你只下了一個(gè)不加這個(gè)參數(shù)會(huì)報(bào)一堆文件不存在。校驗(yàn)通過(guò)會(huì)輸出OK看到FAILED就重新下載別抱僥幸心理。5.2 寫(xiě)啟動(dòng)盤(pán)Linux、macOS、Windows 各一套Linux 和 macOS 下最直接的是dd但設(shè)備名一定要看準(zhǔn)寫(xiě)錯(cuò)盤(pán)會(huì)直接毀掉那塊盤(pán)上的數(shù)據(jù)lsblk -o NAME,SIZE,TYPE,MOUNTPOINT # 先確認(rèn)目標(biāo) U 盤(pán)設(shè)備名比如 /dev/sdb sudo umount /dev/sdb1 # 有掛載先卸載 sudo dd ifdebian-12.x.x-amd64-DVD-1.iso of/dev/sdb bs4M statusprogress oflagdirect convfsync syncoflagdirect和convfsync一起用能讓寫(xiě)入真正落盤(pán)避免dd命令返回了但數(shù)據(jù)還在緩存里你拔盤(pán)之后寫(xiě)了個(gè)半成品。這個(gè)是實(shí)打?qū)嵅冗^(guò)的坑早期我拔盤(pán)太急U 盤(pán)啟動(dòng)時(shí)報(bào)各種詭異錯(cuò)誤加上這兩個(gè)參數(shù)之后就沒(méi)再出過(guò)問(wèn)題。Windows 下推薦用開(kāi)源寫(xiě)盤(pán)工具注意區(qū)分鏡像模式和DD 模式Debian 的 ISO 是混合型鏡像應(yīng)該用 DD 模式或者專門(mén)的 raw 寫(xiě)入選項(xiàng)用普通文件復(fù)制模式做出來(lái)的盤(pán)引導(dǎo)不了。如果想一個(gè) U 盤(pán)同時(shí)放多個(gè) ISO可以用支持多鏡像的啟動(dòng)工具把鏡像直接拷進(jìn) U 盤(pán)分區(qū)即可安裝時(shí)在菜單里選。5.3 裝完系統(tǒng)立刻把 apt 源從光盤(pán)換到網(wǎng)絡(luò)如果安裝的時(shí)候用的是 DVD 或 CD安裝器很可能在/etc/apt/sources.list里寫(xiě)了一條deb cdrom:[...]的本地源。這條源會(huì)導(dǎo)致你每次apt update都提示需要插入光盤(pán)非常煩。改成網(wǎng)絡(luò)源sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo tee /etc/apt/sources.list /dev/null EOF deb http://deb.debian.org/debian bookworm main contrib non-free-firmware deb http://deb.debian.org/debian bookworm-updates main contrib non-free-firmware deb http://security.debian.org/debian-security bookworm-security main contrib non-free-firmware EOF sudo apt update sudo apt full-upgrade -y版本代號(hào)要按你的實(shí)際系統(tǒng)替換bookworm是 12 的代號(hào)其他版本用對(duì)應(yīng)的名字。non-free-firmware這個(gè)組件建議保留它關(guān)系到無(wú)線網(wǎng)卡、部分顯卡驅(qū)動(dòng)的可用性。注意 Debian 從 12 開(kāi)始把固件從non-free里獨(dú)立出來(lái)了寫(xiě)法跟老版本不一樣老教程里讓你加non-free的寫(xiě)法在新系統(tǒng)上不一定適用。5.4 離線環(huán)境下把 DVD 當(dāng)成本地主源如果你的機(jī)器確實(shí)沒(méi)網(wǎng)可以讓系統(tǒng)把 DVD 當(dāng)成 apt 源來(lái)用。把 ISO 掛到某個(gè)目錄然后用apt-cdrom注冊(cè)sudo mkdir -p /media/cdrom sudo mount -o loop /path/to/debian-12.x.x-amd64-DVD-1.iso /media/cdrom sudo apt-cdrom -d /media/cdrom add sudo apt updateapt-cdrom會(huì)往sources.list里寫(xiě)一條本地源之后裝包只要在盤(pán)上就能直接裝。這里有個(gè)細(xì)節(jié)它默認(rèn)會(huì)嘗試卸載再掛載光盤(pán)用-d指定的是掛載點(diǎn)別把它當(dāng)成掛載工具用掛載還得你自己來(lái)。另外這種方法源里的包是快照裝完之后還是要找機(jī)會(huì)聯(lián)網(wǎng)做一次全量升級(jí)。6. 踩坑記錄安裝介質(zhì)相關(guān)的典型問(wèn)題排查這一章全是血淚遇到問(wèn)題的時(shí)候按這個(gè)順序查基本能定位。6.1 安裝器提示請(qǐng)插入下一張 CD或找不到包出現(xiàn)這個(gè)提示說(shuō)明你當(dāng)前盤(pán)上的Packages索引里沒(méi)有你要裝的包。三種解法一是有網(wǎng)就配置網(wǎng)絡(luò)源讓它聯(lián)網(wǎng)拉二是換 DVD-1覆蓋率夠高基本不觸發(fā)三是把需要的 .deb 提前拷到 U 盤(pán)安裝器掛載后手動(dòng)指定路徑。有個(gè)隱藏坑虛擬機(jī)里換盤(pán)的時(shí)候如果光驅(qū)里掛著的是 CD-1而安裝器期望找到 CD-2你得在虛擬機(jī)設(shè)置里把 ISO 換掉但有些虛擬化平臺(tái)需要先斷開(kāi)再連接才會(huì)被識(shí)別直接替換文件路徑安裝器可能讀不到新盤(pán)。這個(gè)坑我在不止一個(gè)平臺(tái)上踩過(guò)。6.2 U 盤(pán)寫(xiě)完引導(dǎo)不了卡在光標(biāo)閃爍這是最高頻的問(wèn)題原因基本集中在三類。第一類是寫(xiě)盤(pán)方式不對(duì)用了普通文件復(fù)制模式而不是 DD 或 raw 模式引導(dǎo)扇區(qū)沒(méi)寫(xiě)進(jìn)去第二類是寫(xiě)盤(pán)沒(méi)落盤(pán)就拔了數(shù)據(jù)不完整第三類是固件模式和鏡像不匹配老機(jī)器純 Legacy BIOS 引導(dǎo)的鏡像拿到純 UEFI 機(jī)器上或者反過(guò)來(lái)。排查順序先在另一臺(tái)機(jī)器上看看 U 盤(pán)里能不能讀到 ISO 的內(nèi)容確認(rèn)寫(xiě)盤(pán)本身成功再進(jìn) BIOS 檢查引導(dǎo)模式設(shè)置Legacy 和 UEFI 都試一遍還不行就重寫(xiě)一次這次老老實(shí)實(shí)加上落盤(pán)參數(shù)。6.3 裝完發(fā)現(xiàn)無(wú)線網(wǎng)卡、顯卡驅(qū)動(dòng)不可用大概率是缺固件包。Debian 的官方鏡像出于授權(quán)原因一部分固件包不在主安裝鏡像里。解決辦法有兩個(gè)一是下載帶固件的鏡像變體官方在鏡像站上提供了這種版本二是把固件包firmware-*.deb單獨(dú)下載拷貝到 U 盤(pán)根目錄或者指定目錄安裝器在早期階段會(huì)自動(dòng)掃描并加載。我一般提前把目標(biāo)機(jī)型常見(jiàn)的無(wú)線固件準(zhǔn)備好放在 U 盤(pán)里裝完系統(tǒng)dpkg -i裝進(jìn)去重啟網(wǎng)卡就認(rèn)了。比裝完再折騰聯(lián)網(wǎng)下載方便得多特別是那些只有無(wú)線網(wǎng)卡的筆記本。6.4 裝完系統(tǒng) apt 一直提示插光盤(pán)這是sources.list里殘留了deb cdrom:條目導(dǎo)致的按 5.3 節(jié)的方案改成網(wǎng)絡(luò)源即可。注意改完之后要apt update一次刷新索引光改文件不更新是不生效的。6.5 常見(jiàn)問(wèn)題速查表現(xiàn)象最可能原因處理方式提示插入下一張 CD當(dāng)前盤(pán)索引不含所需包配置網(wǎng)絡(luò)源或換 DVD-1U 盤(pán)引導(dǎo)不進(jìn)安裝界面寫(xiě)盤(pán)模式錯(cuò)誤 / 未落盤(pán)用 DD 模式重寫(xiě)加 convfsync引導(dǎo)卡在 boot: 或黑屏引導(dǎo)模式與鏡像不匹配BIOS 里切換 Legacy / UEFI裝完無(wú)線不可用缺閉源固件換帶固件鏡像或手工裝 firmware 包apt 提示插光盤(pán)sources.list 殘留 cdrom 源替換為網(wǎng)絡(luò)源并 apt update哈希校驗(yàn) FAILED下載不完整或文件損壞重新下載注意用支持?jǐn)帱c(diǎn)續(xù)傳的工具虛擬機(jī)換盤(pán)讀不到光驅(qū)未重新連接斷開(kāi)再連接 ISO而非直接換路徑注意校驗(yàn)失敗不要試圖先裝著看損壞的 ISO 在安裝中途報(bào)錯(cuò)的位置完全隨機(jī)排查成本遠(yuǎn)高于重新下載一次。7. 這個(gè)選擇的影響范圍比你想的更大聊到這里其實(shí)CD 還是 DVD已經(jīng)不只是個(gè)下載選擇問(wèn)題它牽動(dòng)的東西比表面看起來(lái)多。從個(gè)人角度講它影響的是第一次裝 Debian 的體驗(yàn)。新手最容易被挫敗的環(huán)節(jié)就是裝到一半發(fā)現(xiàn)要聯(lián)網(wǎng)、要換盤(pán)、要手動(dòng)配源而這些問(wèn)題里有相當(dāng)一部分只要一開(kāi)始選對(duì)了鏡像就不會(huì)發(fā)生。我給身邊人推薦的原則一直是不確定就下 netinst確定沒(méi)網(wǎng)就下 DVD-1別在中間地帶糾結(jié)。從運(yùn)維角度講它影響的是批量部署的效率模型。你在一臺(tái)機(jī)器上多花的十分鐘乘上一百臺(tái)就是十六個(gè)小時(shí)。這也是為什么成熟團(tuán)隊(duì)最終都會(huì)走向內(nèi)網(wǎng)鏡像源把介質(zhì)選擇這件事從每次都決策變成一次搭好長(zhǎng)期復(fù)用。內(nèi)網(wǎng)源配上 netinst裝機(jī)和更新都走內(nèi)網(wǎng)千兆比外網(wǎng)拉包穩(wěn)定得多這個(gè)組合我在幾個(gè)項(xiàng)目里用過(guò)裝機(jī)時(shí)間能從半小時(shí)壓到十分鐘以內(nèi)。還有一個(gè)容易被忽略的層面是版本時(shí)效性。所有安裝介質(zhì)的軟件包都是發(fā)布時(shí)刻的快照Debian 的點(diǎn)版本更新會(huì)有新鏡像但安全更新是持續(xù)推的。這意味著無(wú)論你用了多完整的 DVD裝完之后那一輪apt full-upgrade都不能省。我見(jiàn)過(guò)有團(tuán)隊(duì)用一張半年前的 DVD 批量裝了幾十臺(tái)機(jī)器裝完直接上線結(jié)果安全掃描一通紅返工把所有機(jī)器重新升級(jí)一遍反而比自己搭內(nèi)網(wǎng)源麻煩得多。最后再補(bǔ)一個(gè)小技巧跟介質(zhì)本身無(wú)關(guān)但跟整個(gè)流程有關(guān)如果你需要頻繁在虛擬機(jī)里裝 Debian 做測(cè)試把 netinst 和一個(gè)本地預(yù)置配置文件preseed配合起來(lái)能實(shí)現(xiàn)全自動(dòng)安裝幾分鐘出一臺(tái)。這套東西的投入產(chǎn)出比極高配置一次后面每次測(cè)試都省事。介質(zhì)選對(duì)了加上自動(dòng)化裝機(jī)這件事才算真正從體力活變成了流水線。