
前几天帮一位朋友收拾一台退役的老笔记本他手里攥着一张好几年前刻录的 Debian 安装盘装完之后发现只有个光秃秃的基础系统中文输入法、网卡固件、甚至一部分常用工具都得自己联网抓。他问我的问题很朴素镜像站上那一排 netinst、CD-1、DVD-1、BD-1到底差在哪为什么有的只有六百多兆有的却有三四个 G。这类关于debian 安装介质里cd和dvd之间区别的疑问几乎每隔一段时间就会在各种技术群里冒出来一次尤其是刚接触linux的人面对官方镜像目录里几十个文件很容易挑花眼。我打算把这件事一次讲透。不只是回答哪个大哪个小这种表面问题而是把 CD 和 DVD 这两类介质背后的设计逻辑、软件包收录策略、适用场景、以及在新版本里发生的变化都摊开讲。看完之后你应该能做到两件事第一知道自己的场景该下哪个文件第二如果拿到的是一张离线光盘知道怎么把它挂成 apt 源、怎么验证完整性、怎么避免装完发现少东西。适合刚上手 Debian 的新人也适合需要做离线批量部署的老手因为 CD 和 DVD 的取舍在离线场景里是个绕不开的决策。1. 先把 Debian 官方镜像站里的安装介质理清楚1.1 光盘时代的四类镜像各自负责什么如果你打开 Debian 的官方镜像目录会看到文件名里带着一堆后缀netinst、CD-1、DVD-1、BD-1、live。这五类东西在早期版本里是平行存在的各自有明确分工。netinst是最小安装镜像只包含安装器本身和最基础的核心系统体积控制在 700MB 以内剩下的软件包全靠安装过程中从网络仓库下载。它的定位是我需要一个干净系统网络条件还不错。CD-x是一整套光盘的第一张、第二张、第三张……直到把主仓库里的软件包全部装完。DVD-x做的是同一件事但因为它单张容量更大需要的张数更少。BD-x是蓝光版本单张 25GB 起步通常一到两张就能覆盖完整仓库。live则是另一个体系是可以直接跑起来体验的桌面环境镜像同时附带安装功能和前面几类不是一回事。这里有个特别容易被忽略的点CD-1和DVD-1里的1不是版本号是套盘里的第一张。当你看到CD-3、DVD-2时它们必须和同套的第一张配合使用才能组成完整软件源。很多人只下了一张CD-3结果发现压根没法引导安装就是因为CD-1才带引导扇区。1.2 文件名怎么读别被一长串字符绕晕拿一个典型的文件名举例debian-12.5.0-amd64-DVD-1.iso。拆开看debian是发行版名12.5.0是版本号12 是大版本代号 bookworm5.0 是第几次小版本更新amd64是 CPU 架构对应 64 位 Intel/AMDARM 机器会是 arm6432 位老机器是 i386DVD-1就是介质类型加套盘序号.iso是光盘镜像格式。架构这一项特别值得留意。老笔记本如果是 2008 年之前的 32 位处理器amd64的镜像根本引导不了得找i386。而近几年的 ARM 开发板、部分国产化平台上的机器走的是arm64或armhf。下错架构的镜像表现是开机后卡在引导界面或者直接黑屏不会给你任何友好提示所以下载前确认架构这一步别省。顺带说一句题外话如果你在搜索引擎里搜debian cd很可能混进来一堆讲shell 命令 cd的结果——那个cd是 change directory 的缩写跟光盘完全没关系。这也是很多人第一次查资料时被带偏的原因搜的时候记得带上安装介质或者iso这类限定词。2. CD 与 DVD 的本质差异容量决定了软件包数量2.1 700MB 和 4.7GB 是从哪来的CD 的标准容量是 700MB约 80 分钟音频这是上世纪 80 年代定下的规格几十年没变过。DVD 单层是 4.7GB双层是 8.5GB通常说 DVD 就是单层那个数。6.7 倍的容量差距直接决定了同样的 Debian 仓库用 CD 装需要多少张盘、用 DVD 装需要多少张盘。这个容量差距最直观的体现是套盘张数。以一个完整主仓库的体量来估算Debian 主仓库加 contrib、non-free 之后二进制的 deb 包总量在几十 GB 量级。分成 700MB 一张的 CD得十几到二十张分成 4.7GB 的 DVD三四张就够换到 25GB 的蓝光一两张能收工。注意具体张数每个版本都不一样因为软件包整包体积一直在涨我这里给的是量级概念实际张数以官方目录列表为准。2.2 首张盘可用和完整软件集是两种目标这里有个设计哲学上的区别比容量数字更重要。CD 和 DVD 的镜像制作目标其实分两种思路。第一种思路是最小可安装只保证第一张盘的容量里塞下安装器和核心系统让你能把机器启动到命令行或者基础桌面然后剩下的东西联网解决。netinst就是纯这种思路很多CD-1也带着引导安装的能力。第二种思路是离线可完成希望你在完全没有网络的环境下把一整套系统装到可用的程度包括桌面环境、开发工具、常用库。这就需要把所有 deb 包都放进镜像里于是就有了 DVD 多张、BD 多张的完整集。CD 的尴尬之处就在这中间地带。单张 700MB 想塞下完整桌面环境加常用软件几乎不可能所以 CD 完整集只能靠多张盘换盘来补足容量这也是为什么网上会有cd 换盘这种搜索——装到一半提示插入第 5 张盘是 CD 时代的常态体验。DVD 因为单张容量大多数人的实际体验是一张 DVD-1 装完就基本够用换盘这件事几乎遇不到。2.3 一张表看清两类介质的差别对比维度CD 系列DVD 系列单张容量约 700MB约 4.7GB完整集张数量级十几到二十张三到四张单张能否装出可用桌面通常需要联网补包DVD-1 往往够用换盘频率高安装过程可能多次提示低多数场景一张到底老光驱兼容性好2000 年前后的光驱基本都吃差早期光驱可能读不出写U盘耗时短长4GB 起跳适合场景网络好、只要最小系统离线装机、批量部署引导能力CD-1 带引导DVD-1 带引导这张表里最值得单独拎出来说的是老光驱兼容性。2005 年以前的笔记本很多配的是纯 CD 光驱物理上读不了 DVD 盘片。如果你手上正好是这种机器又只有光驱这一条路那 CD 系列就不是次选而是唯一选。反过来只要机器能读 DVDDVD 在便利性上是碾压 CD 的。3. 新版本里 Debian 还发不发 CD这件事变了3.1 Debian 11 及以前CD 完整集还在在 Debian 11bullseye及更早的版本里CD 完整集是官方正式提供的你确实能在镜像站上看到CD-1一直到十几张的完整列表。那个年代的装机教程里下载全部 CD 镜像然后配置本地源是一套标准玩法尤其在校园网、企业内网这类带宽紧张的环境里很常见。当时这么做的理由很实在早期网络速度慢与其装系统时慢悠悠地从公网拉几百兆甚至几个 G 的包不如一次性把十几张 CD 下下来做成一个本地离线源后面装多少台机器都不再耗公网流量。这套玩法在批量部署场景下非常划算。3.2 Debian 12 之后完整 CD 集基本退出舞台到了 Debian 12bookworm情况有了明显变化。官方的完整 CD 系列被砍掉了只剩下netinst、DVD和BD三类。原因不复杂现代桌面环境和开发工具的软件包体积早就不是 700MB 能装得下的了硬凑成 CD 完整集张数会膨胀到二十多张实用性很差。与其维持一个几乎没人用的完整集不如把资源集中在 DVD 和 BD 上。所以现在你在官网看到的所谓CD严格说主要是netinst这种体积控制在 CD 容量范围内的镜像它不是完整集只是一张最小安装盘。这一点特别容易误导人新人看到netinst只有六百多兆以为CD 就是小巧版下完发现装完什么都没有还得联网。其实netinst的定位从来就不是离线可用它是网络优先。3.3 这对选盘意味着什么结论很直接如果你今天要给一台现代机器装 Debiannetinst是默认首选前提是有网络。如果你需要离线那就直接上DVD-1别再去翻 CD 完整集因为新版已经基本不提供了。只有当你的目标机器是纯 CD 光驱的老古董才需要特殊处理——这种情况下更现实的做法是用 U 盘安装或者用netinst光盘引导加网络仓库。这里插一句版本相关的小提醒。Debian 的大版本代号是玩具总动员的名字11 是 bullseye12 是 bookworm13 是 trixie。写sources.list的时候用代号比用stable更稳因为stable会随版本发布自动指过去某天你apt update之后突然发现一堆包要升级很可能就是因为stable换人了。4. 四种典型场景分别该下哪个文件4.1 有网环境、单机安装netinst 就够这是最常见的情况。家里有宽带、公司内网能出公网直接下debian-xx-amd64-netinst.iso六百多兆写个 U 盘两分钟搞定。安装过程里它会问你走网络源还是光盘源选网络然后从最近的镜像站拉包。netinst的好处是灵活。安装器会让你在任务选择阶段勾选要装的环境SSH server、标准系统工具、GNOME/KDE/XFCE 等桌面。勾了 SSH 不勾桌面装出来就是个干净的命令行服务器体积小、启动快、攻击面小拿来跑服务非常合适。这也顺带解决了另一个常见需求——很多人装完 Debian 之后想装 Docker、配静态 IP、关掉休眠用一个干净的最小系统做这些事比在一堆预装软件里翻找要省心得多。我自己的习惯是netinst 只勾 SSH server 和标准系统工具装完第一件事就是配sources.list换到就近镜像站然后apt update apt upgrade再按需装东西。这条路径跑了几十次稳。4.2 完全离线、必须一次装好上 DVD有些环境物理隔离机器不通外网你又必须把桌面环境装出来。这时候DVD-1是主力。Debian 的DVD-1里除了安装器还带上了完整桌面环境和大量常用包多数情况下装完就能进图形界面不需要联网补关键依赖。如果你连contrib、non-free里的网卡固件、显卡驱动都要备齐那DVD-1可能还不够得把DVD-2、DVD-3也下下来做成一套。判断方法很简单把几张小写字母连起来看官方目录里这一版有多少张 DVD全都下齐就是完整集。4.3 批量部署DVD 镜像做成本地 apt 源这是我处理机房时最常用的一招。把DVD-1的 iso 拷到内网一台机器上挂载成目录再用nginx之类的工具暴露成 HTTP 源或者干脆配成file://路径给同机使用。其他机器装系统时把sources.list指向这个内网地址几百兆的包在内网跑速度比公网快一个数量级。有意思的是这个方案的思路和CI/CD流水线里缓存依赖包的做法是相通的——都是把每次都从远端拉变成本地有一份直接用。区别只是流水线缓存的是 pip、npm 的包这里缓存的是 deb 包。4.4 U 盘还是刻盘顺手说说2020 年之后基本没人刻盘了U 盘才是主流。netinst写到 U 盘是几百兆几分钟DVD-1是 3.7GB 左右写入要几分钟到十几分钟取决于 U 盘速度。注意 U 盘要用 USB 3.0 以上的插在 USB 2.0 口上写 4GB 会很煎熬。如果你的 U 盘容量够大比如 32GB 以上可以考虑一次放多个 iso 的多启动方案用开源工具做引导菜单这样一张 U 盘里同时装 Debian、Ubuntu、Windows 的镜像装什么机器都够用。这个方案的代价是配置稍微麻烦点第一次搭要多花半小时。5. 实操从下载到把光盘挂成离线源5.1 下载和完整性校验这一步别偷懒下载完成后务必校验。iso 下载过程中损坏是真实存在的事尤其是通过不稳定的网络。官方目录里会有SHA256SUMS文件里面列了所有镜像的哈希值。# 计算本地文件的 SHA256 sha256sum debian-12.5.0-amd64-DVD-1.iso # 和官方列表对比可以只比对目标文件那行 grep DVD-1 SHA256SUMS两个值一模一样就没问题。如果还想更严格可以做 GPG 签名校验官方提供SHA256SUMS.sign用 Debian 的签名密钥验证确认这个校验文件本身没被人篡改过。gpg --verify SHA256SUMS.sign SHA256SUMS对于一般的个人使用SHA256 对比够用了对于企业环境或者对安全性要求高的情况GPG 这一步值得加上。5.2 写 U 盘dd 的坑和替代方案Linux 下最直接的方式是dd# 先确认 U 盘设备名别写错写错盘会丢数据 lsblk # 写入注意 of 后面是整个设备不是分区 sudo dd ifdebian-12.5.0-amd64-netinst.iso of/dev/sdb bs4M statusprogress oflagsyncstatusprogress让你能看到进度不然dd全程静默你不知道是在写还是卡死了。oflagsync保证数据真正落盘再返回避免拔盘时还没写完。注意of一定要写整盘设备比如/dev/sdb不能写成分区/dev/sdb1。写错目标盘的后果是不可逆的数据丢失执行前一定用lsblk确认清楚把 U 盘容量、厂商名对一遍。不习惯命令行的可以用图形工具写盘操作直观也基本不会选错设备。Windows 环境下同样有对应的写盘工具思路一致。5.3 把 DVD 镜像挂成 apt 源离线装机必备如果你用的是物理 DVD安装器通常会自动配好cdrom源。但如果你手上是 iso 文件想手动挂载使用做法是这样# 创建挂载点 sudo mkdir -p /mnt/dvd # 挂载 iso 文件注意用 loop 模式 sudo mount -o loop /path/to/debian-12.5.0-amd64-DVD-1.iso /mnt/dvd # 用 apt-cdrom 把它登记成源这一步会自动识别并写入 sources.list sudo apt-cdrom -d/mnt/dvd addapt-cdrom这个命令挺省事它会读取光盘里的Release文件自动判断发行代号和组件帮你写好配置。手写也不是不行在/etc/apt/sources.list里加一行deb [trustedyes] file:///mnt/dvd bookworm main contrib[trustedyes]是因为本地目录没有签名链加上这个选项 apt 才不会抱怨。生产环境里不建议长期保留这个选项装完需要的包之后就注释掉然后重新apt update让系统回到网络源上。5.4 装完之后的源配置别急着断电不管用哪种介质装的装完之后第一件事都应该是检查/etc/apt/sources.list。用netinst装的话安装器会问你用哪个镜像站选个近的就行用 DVD 装的话很多时候源还指着cdrom这时候你apt install任何不在盘里的包都会失败报错信息大概是无法定位软件包或者介质未插入。正确做法是切到官方源或者国内镜像站deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware deb https://security.debian.org/debian-security bookworm-security main contrib non-free注意 Debian 12 开始多了个non-free-firmware组件很多网卡驱动、无线固件都在里面少了它你会发现网卡认不出来。改完源之后sudo apt update sudo apt upgrade如果这时候发现apt update报 GPG 密钥错误多半是系统时间不对或者镜像站同步有问题先date看一眼时间再试一次。6. 常见问题与排查实录6.1 问题速查表现象可能原因处理方式装到一半提示插入下一张盘用的是 CD 完整集且没下齐下齐同套所有盘或改用 DVD-1装完没有图形界面用了 netinst 且没勾桌面环境重新安装并勾选桌面或 apt 装桌面元包装完 apt 装不了包提示介质错误sources.list 还指着 cdrom换成网络源或挂载好本地源光盘引导后黑屏架构不匹配或镜像损坏换对应架构镜像重新校验哈希老光驱读不出盘光驱只支持 CD盘是 DVD换 CD 介质或改用 U 盘安装装完网卡没驱动缺 non-free-firmware 组件或固件包补上组件或从其他机器拷固件 debdd 写入后 U 盘无法引导写错设备或没写引导扇区确认写的是整盘重新写入6.2 几个我踩过的坑说给你听第一个坑是只下第一张。早年我第一次搞离线装机看到DVD-1就以为是全部下完装上发现某个开发库找不到包折腾半天才反应过来还有DVD-2。判断方法去官方目录看那个版本下有几张别凭感觉猜。第二个坑是 U 盘格式的误解。很多人以为要先把 U 盘格式化成 FAT32 再拷 iso 进去就行这个做法对某些支持镜像解压方式的固件能用但对绝大多数情况是不行的U 盘必须经过 dd 这类逐扇区写入才有引导能力。判断标准很简单写完之后 U 盘在系统里看起来会变成一个光盘设备而不是一个可写文件夹。第三个坑是时间。dd写 4GB 的 DVD 镜像到普通 U 盘可能要好几分钟这期间没有任何输出的话会以为卡死。加上statusprogress就能看到速率一般 20MB/s 到 100MB/s 不等速率长时间为 0 才是真有问题。第四个坑是多余的分区。用 CD 完整集装机时安装器可能会把光盘源写进sources.list之后你插了新光盘却不重新apt-cdrom add就会一直报错。清理方式很简单把sources.list里所有cdrom开头的行注释掉就行。还有一个容易被忽略的细节光盘挂载点在安装完成后往往会消失因为你得先mount才能用。如果你做了离线源但重启后忘了重新挂载apt又会开始报错。把挂载写进/etc/fstab能避免这个反复操作或者干脆用 HTTP 方式暴露本地源一劳永逸。7. 我的实际经验现代场景里 CD 和 DVD 怎么选说到底CD 和 DVD 的区别在 2024 年之后已经被简化成一个非常现实的判断你的机器有没有网络你的光驱能不能读 DVD。有网络就netinst没网络就DVD-1起步、需要什么补什么。体积大不是缺点容量大反而意味着更少的换盘和更少的依赖下载。CD 的价值现在主要体现在两种场合一是纯 CD 光驱的老设备物理上别无选择二是你想把镜像体积压到最小比如塞进容量很小的 U 盘或者做网络引导的启动镜像。除此之外真没必要特意去追 CD 完整集尤其新版里它已经基本不提供了。我自己现在的主力做法是一张 32GB 的 U 盘里面放netinst加几个常用发行版的 iso配合一个多启动引导。装普通机器用netinst走网络装机房内网机器就临时挂一个内网的 HTTP 源速度飞快。这套配置用了两年多从桌面机到服务器到虚拟机全都能覆盖。最后分享一个小技巧如果你经常需要在虚拟机里装 Debian 做测试根本不用写 U 盘直接让虚拟机挂载 iso 文件当光驱就行装完立刻能跑。虚拟机里改sources.list、配静态 IP、关休眠这些操作练熟了再到物理机上操作会顺手很多——毕竟在虚拟机里搞坏了删掉重来只要几十秒。