Debian 12 安装与优化完全指南:从分区规划到 Docker 部署
2026/9/18 10:19:30 网站建设 项目流程

最近总有人问我 Debian 12 到底怎么装,是不是跟 Ubuntu 一样无脑下一步就行。我给出的回答通常很直接:装 Debian 比 Ubuntu 还要省心,但前提是你得懂它在安装流程里那些“看着无关紧要、实则要命”的选择。Debian 12(代号 bookworm)是 2023 年发布的稳定版,内核 6.1 LTS,默认带 non-free 固件之后,硬件兼容性好了一大截,很多以前装完系统没网卡、没显卡驱动的坑已经少了大半。这篇文章就把我反复折腾 Debian 12 的完整经验梳理一遍,覆盖 ISO 下载、U 盘启动、分区、软件包选择、换国内源、SSH 优化,还有 Debian 12 上装 Docker 的高效路径。无论你是第一次装 Linux 的新手,还是想从其他发行版迁过来的老手,照着做基本都能一次成功。

我最早接触 Debian 是在一台只有 512MB 内存的老笔记本上,当时为了让它跑起一个桌面系统,折腾了整整两个晚上。后来在服务器上长期用它,才慢慢理解为什么那么多生产环境都选它——稳定、透明、社区规则清晰,出了任何问题都能在官方文档和邮件列表里查到根因。Debian 12 这一代,给我的感觉是“稳中带新”,既有长期支持的内核版本,又保留了非常克制的软件包更新节奏,适合真正想好好用系统的用户。

这篇内容很长,建议收藏了慢慢看。你会学到的不只是“点哪个按钮”,而是每一步背后的原理和我在实操中踩过的真实教训。

1. 安装前的准备与方案选型

1.1 版本选择与 ISO 镜像下载

很多人一上来就问“哪个 Debian 12 版本最好用”,这个问题其实得分场景。Debian 12 有 netinst 和完整 DVD 两种主流镜像,netinst 只有几百 MB,安装时通过网络拉取需要的软件包;完整 DVD 镜像约 3.7GB,适合离线环境或者网速不太好的情况。

我的建议是优先使用 netinst。它的下载时间短,而且安装过程中选择的软件包默认就是当前仓库里的最新版,省得装完系统还要大量升级。但有一个前提——你的网络环境在安装阶段必须通畅,而且最好提前确认 DNS 设置正常,否则软件源拉包时很容易卡住。

Debian 官方下载地址是 debian.org/distrib/,进去之后选择“Small CDs or USB sticks”就能拿到 netinst 镜像。如果你用的是比较新的设备,我还推荐下载带有固件包的版本(firmware 版本),它把常见网卡、WiFi、显卡的非自由固件直接打包进镜像里,这可以避免装完系统发现无线网卡起不来的尴尬情况。

下载完成后,一定要校验 SHA512 校验值。官方页面会同步给出对应镜像的校验码列表,Windows 下用 PowerShell 输入 Get-FileHash .\debian.iso -Algorithm SHA512 就能比对,别嫌麻烦,这一分钟可能省掉你后面装到一半发现镜像损坏的折腾。

1.2 启动盘制作与固件模式确认

ISO 拿到手之后,制作启动盘的工具我试过很多,Windows 下日常用的是 Rufus,Linux 下用 dd 命令最可靠。Rufus 选择“DD 镜像模式”写入 U 盘兼容性最好;如果使用“ISO 镜像模式”写入,有时候 UEFI 引导会找不到启动项。

Linux 下直接执行:

sudo dd if=debian-12.5.0-amd64-netinst.iso of=/dev/sdX bs=4M status=progress oflag=sync

注意这里的 /dev/sdX 是整个 U 盘设备,不能写成 /dev/sdX1(第一分区)。写错盘的后果是灾难性的,所以执行前记得用 lsblk 确认设备名。

固件模式方面,2020 年之后的 PC 基本默认 UEFI,老机器可能还在用 Legacy BIOS。安装 Debian 前建议先进入主板固件界面,把 SATA 模式设为 AHCI(不是 RAID),同时打开 UEFI 引导,并关闭 Secure Boot——Debian 12 对 Secure Boot 有支持,但第三方驱动和部分启动工具容易出问题,普通用户直接关掉省心。

1.3 安装方案的提前规划

在启动安装程序前,建议先想清楚一件事:这台机器装 Debian 12 是干什么用的?

如果是做服务器,我强烈不建议在初始安装阶段选择任何桌面环境,只装标准系统工具和 SSH Server,这样系统占用低,攻击面小,后续想加桌面随时可以用 apt 装上。如果是日常桌面办公,则可以考虑在选择软件包阶段勾选 GNOME 或 KDE Plasma。

分区方案同样要先想。新手的稳妥选择是“向导-使用整个磁盘”,然后按需选择是否将 /home 单独分区;习惯手动控制的人,我建议至少分三个区:EFI 分区(如果是 UEFI)、根分区 /、swap 分区。swap 不是必需品,但如果你预计会跑内存吃紧的应用,一份 2GB 左右的 swap 能提供缓冲。

我见过很多人装双系统时把 Windows 系统盘直接格式化掉,原因就是安装过程中没仔细看磁盘列表。Debian 安装程序默认不会对未分配区域自动进行破坏性操作,但进入手动分区后一切都要自己确认,这个环节千万别走神。

2. 安装全流程实操拆解

2.1 进入引导界面与安装语言选择

U 盘插好,开机按 F12 或 Esc 等方式选择从 U 盘启动。引导界面出来后,通常第一项是 Graphical install,选了它就能进入图形化安装流程;旁边还有 Install 文字版和 Advanced options 等入口。

我一般直接选 Graphical install,它把所有选项都做成列表和复选框,误操作概率更低。但如果你打算在远程控制台上安装,比如通过 IPMI 挂载 ISO 操作的服务器,那么文本模式的 Install 反而是更流畅的选择。

语言这地方有个小坑:如果你选了简体中文,安装过程确实全程中文显示,但装完后的系统目录名(比如桌面、文档文件夹)可能也会变成中文名,后续在使用终端时会出现路径里有汉字的情况,对写脚本不友好。所以我个人习惯安装界面语言选英文,装完系统后如果需要中文界面,再通过 locale-gen 和桌面环境的设置单独添加中文语言包,这样目录结构保持在英文,使用中最省事。

键盘布局选 English (US) 就够用,中文输入法等系统装好后再单独配置,不影响任何功能。

2.2 网络配置与镜像源选择

安装程序会自动探测 DHCP 网络,拿到 IP 后显示当前地址。如果你所在的网络环境没有 DHCP,需要手动配置 IP、网关、DNS,这一步配置错误会直接导致后续软件包下载失败。

进入“镜像源设置”环节时,Debian 12 会让你选择所在国家。选择中国后,下方会出现一组国内镜像地址,比如 mirrors.ustc.edu.cn、mirrors.tuna.tsinghua.edu.cn 或 ftp.cn.debian.org。实测下来中科大和清华的速度都比较稳定,这里选一个离你最近的即可。

这一步千万不要跳过。如果你保持默认的 deb.debian.org,在国内环境下下载软件包的速度会非常感人,一次完整的基础系统安装可能要等半小时以上。选国内镜像源后,通常三五分钟就能拉完所有基础包。

2.3 重点:分区与磁盘划分实操

分区是初学者最容易翻车的环节。如果你选择“向导-使用整个磁盘”,Debian 会给出几种风格:全部文件放一个分区、将 /home 单独分区、将 /var 单独分区。默认推荐第一个,对新手最友好。

如果你选择手动分区,我建议这样分:

  • 如果启动方式是 UEFI,安装程序会要求一个 EFI 系统分区,大小建议 512MB 到 1GB,挂载点填 /boot/efi,分区类型选 EFI System Partition。
  • 根分区 / 给 50GB 起步,文件系统选 ext4,给系统更新和应用安装留足余量。
  • 数据量大的话单独建 /home 分区,剩余空间给它。
  • swap 分区放在最后,大小按内存的 0.5 到 1 倍分配,也可以选择使用 swap 文件绕过分区限制。

实操中我发现很多人分完区后忘记修改根分区的“可引导标志”,导致装完系统后 BIOS 找不到系统。如果是 GPT/UEFI 模式,可引导标志不像 BIOS 模式那么关键,但如果你用的是老式 BIOS,请务必在主分区上启用 boot 标志。这一步在手动分区菜单里选中对应分区后按 B 键设置。

如果你选择 LVM 逻辑卷管理,需要注意默认安装程序会自动创建物理卷、卷组,然后自动分配逻辑卷。LVM 的好处是后期扩容方便,但如果你不了解它的结构,一旦系统出现问题想救数据会困难不少。没有特殊需求的话,普通分区足矣。

2.4 基础系统设置与软件包安装

分区完成后进入系统基础设置。主机名可以自定义,注意只使用字母、数字和短横线,不要使用下划线。域名一般留空,因为单机应用场景下不需要,配置了反而可能影响某些服务的解析顺序。

root 密码和普通用户账户在下一步设置。很多教程会让你给 root 设置密码,但我更推荐把 root 密码留空,然后通过普通用户加 sudo 的方式来管理。这样日常操作以最小权限运行,需要提权时再临时用 sudo,安全性好很多。Debian 12 默认不会给你装 sudo,需要在软件选择阶段额外勾选,或者装完后手动 apt 安装。

如果你选了“安装 SSH Server”这个软件,装完后系统便默认开启 sshd,但默认配置中是允许 root 密码登录的,这一点后续需要手动加固。软件包选择界面中,只选“SSH server”和“standard system utilities”两项,桌面环境一个都不选,这样的系统最干净。

安装过程最后阶段会提示“将 GRUB 引导程序安装到主引导记录”,这里务必保持勾选,设备选你系统盘对应设备名(如 /dev/sda),不要选分区名。装完后拔掉 U 盘重启,看到 GRUB 菜单的那一刻,基础系统就算安装完成了。

3. 安装后的初始化优化

3.1 切换国内软件源与系统更新

重启进入系统后,第一件事就是更新软件源。尽管在安装阶段选了国内镜像,但我建议还是打开 /etc/apt/sources.list 确认一下内容。Debian 12 官方源条目类似:

deb http://deb.debian.org/debian bookworm main contrib non-free-firmware deb http://security.debian.org/debian-security bookworm-security main contrib non-free-firmware

我目前的生产环境统一用阿里云和清华的源,切换方法是一条 sed 命令:

sudo sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list sudo sed -i 's|security.debian.org|mirrors.aliyun.com/debian-security|g' /etc/apt/sources.list

注意 Debian 12 的 security 仓库路径跟旧版不同,不能直接把整个前缀替换掉,否则会 404。这也是我多次切源时踩过的坑。切换完执行 sudo apt update,确保没有报错后,执行 sudo apt full-upgrade 把所有软件包升级到最新版本。

3.2 安装基础工具与配置普通用户 sudo

最小化安装的系统里面,很多常用命令是没有的,比如 curl、wget、tree、vim、net-tools。这一步按需补齐:

sudo apt install -y curl wget vim tree net-tools ca-certificates apt-transport-https gnupg

sudo 本身也要确认是否已安装。如果软件选择阶段没选上,用 root 登录先装 sudo,再把自己加入 sudo 组:

apt install sudo usermod -aG sudo 你的用户名

重新登录后,sudo 权限就生效了。接下来我强烈建议你立刻测试一下 sudo 是否正常,然后配置 SSH 登录。如果你的使用场景是远程管理,编辑 /etc/ssh/sshd_config,把 PermitRootLogin 设为 no,PasswordAuthentication 视情况保留或改公钥认证。

3.3 图形界面或轻量环境的补充方案

如果你装系统时没选桌面环境,后面想补一个轻量桌面,不一定要装完整的 GNOME,那是好几 GB 的依赖。我曾经在一台只有 4GB 内存的机器上想快速开个图形界面,结果装了 GNOME 后系统明显变卡。

如果想回归桌面,我建议优先考虑 Xfce:

sudo apt install -y xfce4 xfce4-goodies lightdm sudo systemctl enable lightdm sudo systemctl start lightdm

Xfce 轻量、稳定,能让老机器流畅跑起来。如果你追求更现代的外观和更完整的多显示器支持,再考虑 KDE Plasma(plasma-desktop 包)或 GNOME(gnome 包)。对桌面用户来说,安装完成后的第一步通常是安装中文字体和输入法框架,这一步配合本地 apt 源很快就能搞定。

4. Debian 12 上安装 Docker 的完整步骤

4.1 为什么要走 Docker 官方仓库

Debian 12 官方源里其实自带了一个名为 docker.io 的 Docker 软件包,直接 apt install docker.io 就能装,版本也能用。但为什么我始终推荐通过 Docker 官方仓库安装?

因为官方仓库里的 docker-ce 版本更新更快,修安全漏洞和 bug 的节奏比 Debian 源快得多。生产环境里,容器运行时多多少少会涉及安全补丁和功能修复,使用过老版本很容易踩到已知问题。所以只要网络条件允许,优先走 Docker 官方仓库。

安装前建议先确认没有安装过旧版本,执行 dpkg -l | grep docker 检查一下,如果有旧包先 apt remove 干净。

4.2 安装依赖与导入 GPG 密钥

Docker 官方仓库安装的完整过程我整理成一套命令,理解每一行的作用很重要,别直接无脑复制。

先安装依赖包:

sudo apt update sudo apt install -y ca-certificates curl gnupg

接下来创建目录存储 Docker 的 GPG 密钥:

sudo install -m 0755 -d /etc/apt/keyrings

导入 Docker 官方 GPG 密钥:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg

为什么要单独做这步?因为 Debian 的 APT 在安装软件包时会校验仓库签名,没有这个密钥,系统会拒绝信任 Docker 仓库,apt update 也会报错。

4.3 添加 Docker 软件源

添加源时需要根据 CPU 架构来写,x86_64 机器对应 amd64,ARM 设备对应 armhf 或 arm64。用下面的命令写入 sources 文件:

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

dpkg --print-architecture 会自动输出系统架构,$(. /etc/os-release && echo "$VERSION_CODENAME") 会拿到系统代号(Debian 12 输出 bookworm),所以这套命令在 32 位和 64 位机器上都能正确适配。

然后更新源,安装 Docker:

sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

docker-ce 是 Docker 守护进程,containerd.io 是容器运行时底层,buildx 是构建镜像的插件,compose-plugin 用于多容器编排。这一组都装上,之后的日常使用基本不用再补任何东西。

4.4 配置 Docker 服务与镜像加速

安装完成后,把当前用户加入 docker 组,免得每次操作都敲 sudo:

sudo usermod -aG docker $USER sudo systemctl enable docker --now

注意,加入 docker 组后需要重新登录才能生效。另外有个安全提示:docker 组的用户权限约等于 root,如果你只是单机自用没问题,但如果做多用户共享服务器,把用户加进 docker 组等于开放了特权入口,这一点要认真评估。

镜像加速配置在 /etc/docker/daemon.json,我目前使用的配置示例:

{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com" ], "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" }, "live-restore": true }

log-driver 和 log-opts 这两项作用很大。默认情况下,容器日志不限制大小,长期运行的应用比如 Nginx、Node,日志文件能涨到几个 GB 直到撑爆磁盘。限制为 10MB 每个文件、保留 3 个文件,基本能把日志增长框在可控范围内。

live-restore 的作用是让 Docker 守护进程升级或重启时,容器保持运行不中断。这个设置在生产环境非常实用,能避免重启 Docker 导致线上服务全部断掉。

修改完配置文件重启 Docker:

sudo systemctl restart docker

执行 docker run --rm hello-world 验证安装是否正常,能看到 Hello from Docker 的输出,就是全流程成功。

5. 常见问题与排查技巧实录

5.1 开机直接黑屏或卡在 GRUB 界面

这个情况我遇到的场景不少,尤其是用在独立显卡的机器上。Debian 12 安装镜像虽然带 non-free 固件,但 NVIDIA 闭源驱动并没有被默认加载,所以装完系统第一次重启黑屏是常见的。

排查思路很简单:重启进入 GRUB 菜单,选择内核条目后按 e 键,在 linux 开头那行末尾加上 nomodeset 参数,然后按 Ctrl+X 启动。这会禁用内核模式设置,让系统用基本显示驱动加载。如果这样能进系统,说明问题出在显卡驱动,之后安装合适的闭源驱动或更新默认驱动即可。

安装 NVIDIA 驱动时我建议从 Debian 的 non-free 仓库里装 nvidia-driver 包,不要随便从英伟达官网下 run 文件硬装,后者跟系统库版本很容易冲突。

5.2 安装时卡在“正在安装系统”或 apt 拉包失败

这类问题 90% 是网络问题。先确认网线和 DHCP 是否正常,很多人在虚拟机里安装时网卡模式选错了,导致没有网络。其次检查 DNS,如果之前的镜像源域名解析太慢或解析失败,可以试着手动把源改成 IP 地址方式,或者临时切换镜像源。

另一个很容易忽略的原因是时间不对。如果机器 BIOS 时间和实际时间相差太大,HTTPS 握手会失败,apt 源拉包时报证书错误。安装程序内进入终端(Ctrl+Alt+F2)可以先用 date 命令确认时间,不对就执行 timedatectl set-ntp true 或手动 date -s 调整。

5.3 双系统安装后 Windows 引导丢失

装完 Debian 12 后只看到 GRUB 菜单没有 Windows 入口,这不是系统坏了,而是 GRUB 的 os-prober 没有找到 Windows 引导。确认 /etc/default/grub 中 GRUB_DISABLE_OS_PROBER=false,然后重新生成引导配置:

sudo os-prober sudo update-grub

如果 os-prober 能识别出 Windows Boot Manager,更新后的 GRUB 菜单就会显示 Windows 启动项。如果执行后还没有,多半是 Windows 所在分区的 EFI 文件被破坏,可以用 Windows 安装盘进修复模式重建引导记录,再反过来修复 GRUB。

我用过最顺手的救援方案是准备一个 Ventoy U 盘,里面同时放着 Debian 安装镜像和 SystemRescue 镜像,出问题时用救援系统挂载分区,chroot 进 Debian,重新执行 grub-install 和 update-grub,基本都能救回来。

5.4 其他小坑:时间同步、swap 与磁盘空间

Debian 12 默认使用 systemd-timesyncd 进行时间同步,在桌面环境或虚拟机里偶尔会同步失败。安装 chrony 或 systemd-timesyncd 问题不大,但如果你的环境时间持续偏移,建议加装 chrony 并配置上游服务器。

swap 方面,如果安装时没分 swap 分区,事后想要一份 swap 文件可以这样做:

sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

最后提醒一下磁盘空间。Debian 12 基础系统大概占用 2GB 到 3GB,但如果日后安装大量软件或拉取 Docker 镜像,/var 目录会迅速膨胀。在分区时给根分区至少 50GB,是避免日后折腾扩容的明智选择。

写在最后

装 Debian 12 这件事,本质上只有两个地方容易出问题:一是分区时脑子不清醒,二是网络源没配对。其他的步骤,无非是顺着安装向导一步步来,遇到问题多看一眼日志,绝大多数都能解决。

我个人的习惯是每台服务器装完系统后,在 /root 下新建一个部署笔记,谁装的、用的什么源、装了什么包、改过哪些配置全都记下来。三个月后再回去看,这份笔记比任何教程都好用。Debian 12 这套流程走通之后,你会发现它的安装逻辑其实比很多一键安装的发行版更好理解——因为你能掌控每一个细节。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询