ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Debian 12 手动安装避坑指南:磁盘分区、引导与软件源配置

Debian 12 手动安装避坑指南:磁盘分区、引导与软件源配置

简介:「Debian 安装基础教程」是一套面向 Linux 入门者和需要从零搭建 Debian 系统的用户的图文课件。教程按十步流程组织,覆盖安装前准备、启动介质制作、网络设置、磁盘分区、用户与 root 配置、软件包选择、时区语言调整以及安装后的首次系统维护,同时给出常用更新命令和 UFW 防火墙配置思路,可边看边操作、对照排错。包内含 98 个文件,以 80 张 PNG 步骤截图为主线,配合 15 个 HTML 页面组成网页版课件,另有样式表和图标辅助阅读,整体压缩包约 959KB,打开即可按章节浏览,无需额外环境。这套资源已有 1331 人浏览学习,适合作为 Debian 安装实操的入门参考,也可用于教学演示或快速复习安装要点。

1. 装前不看会翻车:为什么 Debian 12 值得你手动装一遍

总有人以为装 Debian 就是把光盘一插、点几下“下一步”,等它自己把系统倒腾完就万事大吉。结果某台旧服务器 BIOS 里藏着 UEFI 和 Legacy 的坑,硬盘上还躺着旧数据,默认分区策略一套下去全盘被抹,等系统起来才发现网卡驱动没加载、软件源指向国外的慢速地址,光一个 apt update 就能卡到怀疑人生。本文既不教你无脑下一步,也不拿教科书套路糊弄人,全程拉一遍 Debian 安装基础过程的真实操作:从选版本、烧 U 盘、手动分区,到装完换软件源、验证系统跑通。适合第一次接触 Debian 的新手,也适合以前全凭感觉安装、出过问题回来补课的人——照着这一套走完,至少不会在引导、分区、源这三座山上再翻车。

2. 准备安装盘:镜像下载、U 盘烧录与 BIOS 设置

2.1 版本选择与镜像下载

Debian 目前主流安装的是 12 (bookworm) 版本,这个版本既有长期更新支持,软件仓库里的包也足够新。很多人在这一步会犯的第一个错是随便下个最新测试版或旧版 DVD,前者 API 变动频繁、第三方软件兼容性差,后者装完一堆软件版本太老,连安全补丁都少。我的建议是只认准 bookworm 正式发布版,文件名里带 amd64 的 ISO。如果你的机器是很老的 32 位 CPU,那另说,但大部分人手里的机器都已经 amd64 起步了。下载时优先选离你近的镜像站,别去挤主站,主站在高峰期慢得离谱,也容易断流;国内环境下多找几个本地镜像比较一下速度再动手,这会省下不少时间。

拿到 ISO 之后别急着烧录,先记下它的大小和校验值。官方或镜像站页面会给 SHA256 校验结果,下载完用sha256sum命令算一遍,数值对不上就重新下,这一步不算玄学,是防止拿到半截文件烧出启动盘的可靠手段。常见做法是把 ISO 直接下发到本地,再拿来和页面上公布的校验值对比,一致后才进入烧录环节。

2.2 U 盘烧录:dd 命令与常见烧录工具

U 盘烧录是新手事故高发区。最容易犯的错误是没有分清 U 盘设备号,直接把整个硬盘给写了。所以在 Linux 下操作时,我一般会先执行:

lsblk -o NAME,SIZE,MODEL,TRAN

这个命令会列出所有块设备,重点关注TRAN一列显示usb的条目,然后记下它的盘符名称,比如/dev/sdb或/dev/sdc。确认后再用dd写入:

sudo dd if=debian-12.0.0-amd64.iso of=/dev/sdb bs=4M status=progress oflag=sync

这里if是输入文件,也就是刚才下载的 ISO;of是输出设备,必须是完整的 U 盘设备而不是某个分区;bs=4M代表每次读写 4MB,提升写入速度;status=progress让你看到实时进度;oflag=sync确保数据写完再结束。如果of写成了/dev/sdb1这种带数字的分区名,大概率做完之后 U 盘无法引导。Windows 下没有dd,我通常让用户去找一款支持以 DD 镜像模式写入的烧录工具,烧录时模式必须选对,否则 U 盘只会变成一个普通存储盘。

2.3 BIOS/UEFI 设置与引导方式确认

现在的主板大多默认 UEFI 模式,也有部分老机器默认 Legacy BIOS。这两种模式对应的分区要求不一样:UEFI 需要 EFI 系统分区,Legacy 则要求磁盘分区表是 MBR。所以烧完 U 盘后,先进 BIOS 确认启动模式,我一般会做三件事:

  • 把 SATA 模式改成 AHCI,避免装了系统后硬盘识别异常;
  • 关掉 Secure Boot,Debian 的第三方驱动和 GRUB 引导加载程序跟它经常不对付;
  • 在启动顺序里把 U 盘排到第一位,有些主板要按 F12 或 Esc 临时选启动项。

如果你不确认机器是哪个模式,可以在 U 盘启动列表里同时看到 UEFI 前缀项和纯 U 盘型号项,选择 UEFI 前缀的那一个,现在的新机器、新系统基本都走 UEFI,磁盘也建议用 GPT 分区表。这套设定影响后面分区方案和引导程序的安装位置,最好在开机之前就确认好,别等到安装向导走一半才发觉模式不协调。

3. 分区与安装:给硬盘一个清晰的布局

3.1 安装向导中的网络与语言设置

启动 U 盘进入引导菜单后,选择图形化安装,出来的第一步是语言和键盘布局,这里按需选就够了。紧接着会询问主机名与域名,对于个人使用,主机名填一个你能认出来的短名字即可,比如debian-dev。网络配置方面,如果在局域网内开了 DHCP,向导会自动获取 IP,这通常没问题;但如果后续访问软件源很慢,可以等装完系统再改用静态配置。

网络配置过程中最值得留意的坑是如果你的机器有无线网卡,安装界面可能只显示有线网络选项,而无线网卡固件有时不包含在默认安装介质中,需要额外加载固件包。我习惯在出现“继续而不配置网络”的选项时,先尝试联网,实在连不上就跳过,网络问题后续装完系统再修也不迟。反正最终 apt 配置软件源时还要回来处理网络,别让这步卡死分区之前。

3.2 手动分区方案与挂载点规划

分区这一步,我强烈建议选择“手动”而不是“使用整个磁盘”或“使用整个磁盘并设置 LVM”。默认自动分区省事,但对多系统、旧数据保留场景极不友好,而且默认的 LVM 方案在初学者眼里就是个黑匣子,分区表长什么样完全不可控。所以我直接选手动,先把分区表设为 GPT(如果是 UEFI 模式),再按下面这张表逐块分配:

挂载点分区大小文件系统说明
/boot/efi512 MBFAT32仅 UEFI 需要,放引导文件
/boot1 GBext4内核与 initramfs,独立分区便于多内核管理
/30~50 GBext4根分区,系统软件安装位置
swap与内存相等或 2 GB 左右swap内存小于 8GB 时建议等于内存大小
/home剩余全部ext4用户数据独立分区,重装系统不丢文件

根分区的大小不需要贪多,真正的用户文件放在/home里,这样以后系统出问题重装,只格式化/分区就能保住个人数据。如果你打算在服务器上玩容器或编译大项目,就提前把/var/lib/docker这类路径在分区表里单列出来,免得根分区被撑爆。

3.3 安装引导加载程序与账号设置

分区规划完并确认写入后,系统开始拷贝基础文件,期间让设置 root 密码和普通用户。Debian 的默认安装不会启用 sudo,所以安装向导里给普通账号勾选 sudo 权限这一步很关键,没有它你得切到 root 才能装软件,输入命令时也容易被提示 “user not in the sudoers file”。我一般会把 sudo 权限直接给到主要使用账号,然后在后续命令里避免长期以 root 身份操作。

安装进度条走完后,会询问是否要把 GRUB 引导加载程序安装到主引导记录或 EFI 分区。很多人就卡在这一步:如果 U 盘还在机器上插着,GRUB 可能装到 U 盘里,拔掉 U 盘后系统直接无法引导。我习惯在安装 GRUB 的界面里确认“目标设备”指向硬盘设备而不是/dev/sdb之类的 USB 设备。这一条出了错,后面无论怎么调 BIOS 都救不回来,只能重新引导安装盘。

4. 第一轮配置:软件源与基础工具链

4.1 更换软件源:解决更新被网络条件卡死

装完系统第一件事,就是把/etc/apt/sources.list里的默认软件源换成镜像站。默认配置指向deb.debian.org,如果身处国内网络环境,访问速度可能会非常不理想,apt update能跑几分钟甚至卡住不动。这不算系统坏了,纯粹是网络路径太长。我通常会先用sed把所有deb.debian.org替换成身边更快的镜像地址:

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

用sed的好处是保持原来的文件路径和参数结构不变,只需要替换主机名段。命令里的|是分隔符,斜杠路径在替换时不需要反复转义。注意mirrors.example.com/debian中的路径结尾不要加多余的斜杠,否则后面 apt 拼接完整路径时容易多出双斜杠导致 404。

如果不想用sed,也可以直接编辑文件。Debian 12 的源文件里还有带有bookworm-updates和bookworm-security的 debian-security 仓库,这个安全更新源在更换镜像时很容易漏掉。常见做法是同时再开一个/etc/apt/sources.list.d/下独立文件来追加安全源,但最省事的是保持主文件统一替换掉主机名,让三条源都指向同一个镜像主机,这样不会出现主源很快、安全源连不上的混合速度问题。

4.2 更新系统与基础工具安装

换完源之后,执行更新与升级:

sudo apt update && sudo apt upgrade -y

apt update会拉取软件源索引,apt upgrade把当前系统里已安装的软件升级到源里对应版本。这里建议分两步跑而不是直接dist-upgrade,因为基础安装阶段的内核和固件升级可能会弹出交互式配置界面,分步执行能让你在每一步看清错误。升级完顺手装核心工具:

sudo apt install -y curl wget vim sudo ca-certificates

curl和wget解决后续下载需求,vim是文本编辑必备品,sudo按理在安装向导里已经配置好了,但如果用的是纯净容器或自动化脚本装出来的系统,这里再装一次保险。ca-certificates是为了让后续 HTTPS 下载不报证书错误。

4.3 网卡固件与硬件驱动的补充安装

最影响后续使用体验的其实是网卡固件和硬件驱动。安装过程中如果检测到缺失固件,系统会提示插入包含固件的 U 盘。很多人在这一步选择忽略,结果装完发现 WiFi 网卡、有线网卡根本不工作。我一般安装前就准备好firmware-*系列包,比如firmware-iwlwifi对应 Intel 无线网卡,firmware-realtek对应瑞昱网卡。安装后再执行一次固件检查:

sudo apt install -y firmware-linux firmware-linux-nonfree

这些包进入非自由软件仓库,所以要在/etc/apt/sources.list中确认 non-free 组件没有遗漏。Debian 12 默认把 main、contrib、non-free-firmware 分开配置,如果之前替换源时把整行复制错了,可能把 non-free-firmware 丢掉,导致固件包找不到。检查一下有没有包含non-free-firmware字符串,没有就补上再apt update。

5. 安装避坑指南:现场还原三大经典故障

5.1 安装完重启黑屏,图形界面起不来

现象:安装结束重启,屏幕停留在黑屏,只有一个光标在闪,或者直接显示 “nouveau” 相关错误信息后卡死。这种问题尤其在 Nvidia 显卡和老显卡机器上高发,本质是 Linux 内核默认加载的显卡驱动模块和显卡型号不兼容,驱动初始化时直接挂掉。

排查方向是用安装介质再次引导进入系统,在 GRUB 菜单按下e进入编辑模式,找到linux开头的那一行,在末尾加上nomodeset参数,然后按Ctrl+X启动。这个参数会告诉内核暂时不要加载显卡模式的设置,用基本显示模式启动系统,先把系统救回来。进去之后安装官方显卡驱动或专有驱动,再正常重启,问题就解决了。凡是遇到黑屏,第一反应加nomodeset基本上百试百灵。

5.2 安装时提示找不到 CD-ROM 或安装介质

现象:安装向导走到“加载安装组件”或“探测硬件”阶段,弹窗提示找不到 CD-ROM,明明 U 盘插着。这个坑多数是刻录工具没能把 ISO 写入为 DD 镜像模式,U 盘里只是出现了一个 ISO 文件,引导系统后并不能把它当作块设备来读取。另一个可能是 USB 3.0 的 U 盘插在 USB 3.0 口上,安装程序早期阶段没有对应驱动。

解决办法是用支持 DD 模式写入的工具重新烧录一遍 U 盘,烧录完确认盘上不会看到可见的文件系统分区,反而是一个整体未分配区域。如果换烧录后还报同样错误,就把 U 盘换到 USB 2.0 接口上,安装完成后再换回来。

5.3 apt update 报错:无法解析域名或 404

现象:执行apt update时提示 “Failed to fetch” 或 “Temporary failure resolving”,或者是能解析但返回 404。解析域名失败基本是 DNS 配置不对,/etc/resolv.conf文件内容可能是空或者指向一个连不上的地址。我一般在安装时手动指定一个公共 DNS 地址,再确保/etc/resolv.conf里有对应配置,没有就写入:

nameserver 223.5.5.5 nameserver 114.114.114.114

404 错误大概率是软件源路径拼写错误。Debian 12 的源格式形如deb http://mirror/debian bookworm main contrib non-free-firmware,镜像站的路径结构普遍是/debian加版本代号。如果自定义镜像目录结构不同,把路径写成只有域名没有/debian后缀,apt 拉取索引时会返回 404。检查一下源文件里每行最后的版本代号,bookworm不能写成bullseye或者其他代号。

5.4 手动分区时误选整块磁盘,数据被覆盖

现象:手动分区界面里忘记切换系统盘,把装有旧数据的磁盘当成了/的挂载目标,分区确认后旧数据被格式化才后悔。这个事故没有技术修复手段,所以务必在执行“将分区表写入磁盘”之前跑一遍lsblk和df -h,确认所有磁盘的设备名和挂载关系。如果机器上有多块硬盘,装系统的那块会显示为/dev/sda或者/dev/nvme0n1,看清楚容量和型号再选。另外分区确认时安装器会问是否将改动写入磁盘,这一刻完全是最后的后悔药时间,逐行检查挂载点和分区大小,错了就选返回重新编辑。

5.5 重启后直接进入另一个系统,看不到 GRUB 菜单

现象:硬盘上原本就有 Windows 或其他 Linux,装了 Debian 到第二块盘后,开机直接进了 Windows,根本没有多系统选择菜单。这通常是因为 Debian 的 GRUB 没有写入主板引导优先级最高的那块硬盘,或者 BIOS 启动顺序仍是旧系统所在盘。解决思路是重新引导 Debian 安装介质进了救援模式,把 GRUB 安装到主板默认读取的第一块盘的 EFI 分区上,然后在 BIOS 里把开机启动顺序的第一项改成 Debian 引导项。装双系统时,优先让 Debian 的 GRUB 接管引导菜单,它默认会自动检测其他操作系统并生成入口,省去手动修grub.cfg的麻烦。

6. 装完怎么验证:半小时跑通基础环境

6.1 快速检查系统版本与硬件识别

重启进入桌面或命令行之后,先用下面这组命令确认系统是 Debian 12,并且硬件驱动加载状态正常:

cat /etc/os-release uname -a lspci | grep -i vga

os-release文件会显示版本号和代号,uname -a能看内核版本和系统架构,lspci确认显卡、网卡是否被识别。如果lspci查不到有线或无线网卡,优先查固件包是否安装正确,这比装任何应用软件都更基础。同时用free -h看交换分区有没有生效,lsblk确认挂载点没有异常占用。

6.2 网络连通性与软件源刷新验证

接着验证网络和软件源是否处于可用状态:

ping -c 4 223.5.5.5 sudo apt update apt list --upgradable

ping通了说明网络层没问题,apt update能正常结束表示源配置正确。如果这一串跑完没有任何 error 或 warning,软件源就稳了。我习惯顺手执行一次sudo apt dist-upgrade -y,把所有依赖关系一起升级到最新,但这一步在稳定跑生产服务的机器上可以先跳过,当前基础环境能通过以上检查就算干净。

6.3 模拟真实使用场景:装服务并访问

最后做一个真实场景验证,装一个轻量 Web 服务器并访问它:

sudo apt install -y nginx sudo systemctl enable --now nginx curl http://localhost

能看到 Nginx 默认页面说明系统服务、网络栈、软件源全部联动正常,也证明 DHCP 或静态 IP 配得不影响本机回环访问。如果你是用云服务器或虚拟机装的,尝试用局域网 IP 从另一台机器访问。这套验证我从上次踩过显卡驱动坑之后每次都会强制走一遍,新装系统先花半小时把基础流程过完,再往里搬数据,希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进