十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Debian 12 安装与优化完全指南:从分区规划到 Docker 部署

Debian 12 安装与优化完全指南:从分区规划到 Docker 部署 最近总有人问我 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 下日常用的是 RufusLinux 下用 dd 命令最可靠。Rufus 选择“DD 镜像模式”写入 U 盘兼容性最好如果使用“ISO 镜像模式”写入有时候 UEFI 引导会找不到启动项。Linux 下直接执行sudo dd ifdebian-12.5.0-amd64-netinst.iso of/dev/sdX bs4M statusprogress oflagsync注意这里的 /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 gnupgsudo 本身也要确认是否已安装。如果软件选择阶段没选上用 root 登录先装 sudo再把自己加入 sudo 组apt install sudo usermod -aG sudo 你的用户名重新登录后sudo 权限就生效了。接下来我强烈建议你立刻测试一下 sudo 是否正常然后配置 SSH 登录。如果你的使用场景是远程管理编辑 /etc/ssh/sshd_config把 PermitRootLogin 设为 noPasswordAuthentication 视情况保留或改公钥认证。3.3 图形界面或轻量环境的补充方案如果你装系统时没选桌面环境后面想补一个轻量桌面不一定要装完整的 GNOME那是好几 GB 的依赖。我曾经在一台只有 4GB 内存的机器上想快速开个图形界面结果装了 GNOME 后系统明显变卡。如果想回归桌面我建议优先考虑 Xfcesudo apt install -y xfce4 xfce4-goodies lightdm sudo systemctl enable lightdm sudo systemctl start lightdmXfce 轻量、稳定能让老机器流畅跑起来。如果你追求更现代的外观和更完整的多显示器支持再考虑 KDE Plasmaplasma-desktop 包或 GNOMEgnome 包。对桌面用户来说安装完成后的第一步通常是安装中文字体和输入法框架这一步配合本地 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 ar /etc/apt/keyrings/docker.gpg为什么要单独做这步因为 Debian 的 APT 在安装软件包时会校验仓库签名没有这个密钥系统会拒绝信任 Docker 仓库apt update 也会报错。4.3 添加 Docker 软件源添加源时需要根据 CPU 架构来写x86_64 机器对应 amd64ARM 设备对应 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/nulldpkg --print-architecture 会自动输出系统架构$(. /etc/os-release echo $VERSION_CODENAME) 会拿到系统代号Debian 12 输出 bookworm所以这套命令在 32 位和 64 位机器上都能正确适配。然后更新源安装 Dockersudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugindocker-ce 是 Docker 守护进程containerd.io 是容器运行时底层buildx 是构建镜像的插件compose-plugin 用于多容器编排。这一组都装上之后的日常使用基本不用再补任何东西。4.4 配置 Docker 服务与镜像加速安装完成后把当前用户加入 docker 组免得每次操作都敲 sudosudo 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 导致线上服务全部断掉。修改完配置文件重启 Dockersudo systemctl restart docker执行 docker run --rm hello-world 验证安装是否正常能看到 Hello from Docker 的输出就是全流程成功。5. 常见问题与排查技巧实录5.1 开机直接黑屏或卡在 GRUB 界面这个情况我遇到的场景不少尤其是用在独立显卡的机器上。Debian 12 安装镜像虽然带 non-free 固件但 NVIDIA 闭源驱动并没有被默认加载所以装完系统第一次重启黑屏是常见的。排查思路很简单重启进入 GRUB 菜单选择内核条目后按 e 键在 linux 开头那行末尾加上 nomodeset 参数然后按 CtrlX 启动。这会禁用内核模式设置让系统用基本显示驱动加载。如果这样能进系统说明问题出在显卡驱动之后安装合适的闭源驱动或更新默认驱动即可。安装 NVIDIA 驱动时我建议从 Debian 的 non-free 仓库里装 nvidia-driver 包不要随便从英伟达官网下 run 文件硬装后者跟系统库版本很容易冲突。5.2 安装时卡在“正在安装系统”或 apt 拉包失败这类问题 90% 是网络问题。先确认网线和 DHCP 是否正常很多人在虚拟机里安装时网卡模式选错了导致没有网络。其次检查 DNS如果之前的镜像源域名解析太慢或解析失败可以试着手动把源改成 IP 地址方式或者临时切换镜像源。另一个很容易忽略的原因是时间不对。如果机器 BIOS 时间和实际时间相差太大HTTPS 握手会失败apt 源拉包时报证书错误。安装程序内进入终端CtrlAltF2可以先用 date 命令确认时间不对就执行 timedatectl set-ntp true 或手动 date -s 调整。5.3 双系统安装后 Windows 引导丢失装完 Debian 12 后只看到 GRUB 菜单没有 Windows 入口这不是系统坏了而是 GRUB 的 os-prober 没有找到 Windows 引导。确认 /etc/default/grub 中 GRUB_DISABLE_OS_PROBERfalse然后重新生成引导配置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 这套流程走通之后你会发现它的安装逻辑其实比很多一键安装的发行版更好理解——因为你能掌控每一个细节。
返回列表