简介:Debian安装基础教程以图文形式完整演示操作系统从零开始的安装过程,适合刚接触Linux的新手,也适合需要回顾安装细节的老用户。教程按十余个小节组织,从安装前的硬件兼容、网络连接、镜像下载讲起,再依次介绍用Rufus或Etcher制作启动盘、选择图形化安装、配置DHCP或静态IP、使用自动分区或LVM逻辑卷管理、创建普通用户与root账户、挑选软件包并安装安全补丁,以及安装后调整时区语言、更新系统和配置UFW防火墙等维护操作。每个步骤都配有实际界面截图和文字说明,可对照练习。资源包共98个文件,核心包含80张PNG截图和15个HTML网页教程,另有样式表、图标等辅助文件,压缩包仅959KB,按课程章节归入不同目录,用浏览器打开即可逐课学习。目前已有1331人学习下载,是一份轻量而实用的Debian入门参考。
1. Debian 安装 教程:从下载镜像到引导修复的完整链路
给一台旧服务器装 Debian,第一次自己上手的人大概率会在两个地方卡住:分区表选错导致重启找不到系统,或者 GRUB 装完直接进 Grub Rescue。这份《Debian 安装 教程》正好把这条链路上的每一步都拆开了——从镜像选型、写盘校验、分区 LVM,到装完后的软件源和网络配置,最后还能反向修复引导。适合准备第一次独立装机的新手,也适合像我这样装了很多次却在引导和固件上反复翻车的老手。全文的关键就一句:装 Debian 不是点完 Next 就完事,你得知道装完那一刻系统是怎么被拉起来的。
2. 安装前的准备:镜像选型、校验写盘与固件排查
2.1 镜像怎么选:netinst、DVD 与 Live 的取舍
Debian 的安装镜像分好几种,第一次接触的人容易卡在“到底下哪个”的问题上。常见做法是三选一,区别主要在体积和安装时对网络的依赖程度。
| 镜像类型 | 体积 | 安装依赖 | 适合场景 |
|---|---|---|---|
| netinst | 700MB 左右 | 需要网络拉取大部分软件包 | 服务器、网络稳定的机房 |
| DVD-1 | 4GB 左右 | 可离线完成 base system 安装 | 内网隔离、多次重装 |
| Live | 2GB 左右 | 带完整桌面环境,可试用后再装 | 先体验桌面、做救援系统 |
我一般给线上服务器用 netinst,给内网或实验室机器用 DVD-1。需要注意 netinst 里的“网络”不是指能上外网就行——apt 源如果在远程,安装过程会持续拉包,网络一旦抖动就可能卡在 68% 的配置阶段,这点后面避坑章会展开。DVD-1 虽然大,但多数常用包都在里面,离线装完直接可用。
架构选择上,普通 x86 机器选 amd64;ARM 设备选 arm64;老 32 位机器选 i386。不确定的话,在现有系统里跑一下这个命令:
uname -m输出 x86_64 就对应 amd64,输出 aarch64 就对应 arm64。选错架构的后果是安装器直接拒绝启动,这是最廉价的一次踩坑,提前看图就能避开。
2.2 写盘与校验:宁可多花 5 分钟,不要装到一半翻车
下载完镜像后,建议先做校验再写盘。Debian 官方会同时发布 SHA256 校验文件,这一步能筛掉绝大多数下载损坏的情况。
# 进入镜像所在目录,计算校验值 sha256sum debian-installer.iso # 与官方发布的 debian-hashes 文件比对 cat SHA256SUMS | grep debian-installer.iso比对一致后再写盘。写盘工具我习惯直接用 dd,Linux 自带、不吃图形界面,内网机器和物理机都能用:
# 确认 U 盘设备名,常见 /dev/sdb 或 /dev/sdc lsblk -o NAME,SIZE,MODEL # 写入镜像,注意目标盘千万别搞错 sudo dd if=debian-installer.iso of=/dev/sdb bs=4M status=progress conv=fsyncdd 的参数里,bs=4M 是块大小,写 U 盘比默认 512 字节快很多;conv=fsync 强制数据落盘后才返回,避免拷贝完就拔盘导致引导文件不完整。写完后用sudo eject /dev/sdb弹出再拔,这是很多人忽略的一步。
2.3 固件缺失与 UEFI 设置:装完没网的元凶
很多机器装到“检测并挂载光驱”后就停住不动,或者装完只看到一个 lo 回环接口,没有网卡。常见原因是网卡固件包没带进安装器。netinst 官方镜像对部分 Broadcom、Realtek 网卡缺少非自由固件,解决办法是把 firmware 包提前解压到 U 盘的 /firmware 目录:
mkdir -p /mnt/usb/firmware tar xJf firmware.tar.xz -C /mnt/usb/firmware安装器检测硬件时发现 /firmware 目录里的固件,会自动加载网卡驱动。另外一个高频问题发生在 UEFI 机器上:安装时开着 Secure Boot,引导器装完但固件不认。Debian 的 shim 理论上能过认证,但老主板的实现经常半残。如果安装过程中发现引导相关错误或装完重启进固件设置界面,先把 Secure Boot 关掉再走一遍安装流程,通常能解决。
3. 分区方案与引导器:80G 旧服务器手动分区实录
3.1 分区选型:guided、LVM 与手动,分别解决什么问题
安装器里分区这块有三个入口:guided 全盘、guided 全盘 LVM、手动分区。新手一上来容易被 guided 省事吸引,但 guided 自动分区默认把 /home 也留在根分区里,后续想重装系统时数据会被一并覆盖,代价很大。LVM 模式的逻辑是把物理磁盘抽象成卷组,在卷组里切逻辑卷,扩容时不用动分区表,适合后续要扩盘的服务端。手动分区的灵活度最高,适合知道自己要什么的场景。
我一般对存量机器做手动分区,理由很直接:已知磁盘大小、已知业务布局,按需切比让安装器猜更可控。分区规划上有一个建议的最小布局:
| 挂载点 | 推荐大小 | 说明 |
|---|---|---|
| /boot | 512MB | 内核和 initrd,不需要太大 |
| / | 20G 起 | 系统和软件包,长期更新会膨胀 |
| swap | 视内存而定 | 2G 内存以下给 2 倍,8G 以上给 4G 即可 |
| /data | 剩余全部 | 业务数据单独挂,重装不丢 |
3.2 手动分区等效命令:从格式化到挂载
安装器里的“手动分区”界面下,每一次鼠标操作本质上等于底层执行了一段 parted 和 mkfs。理解这块对排障特别重要。拿一台 80G 磁盘、4G 内存的旧服务器举例,完整的手动分区流程等效于下面这组命令:
# 用 parted 创建 GPT 分区表 parted /dev/sda --script mklabel gpt # 创建各分区:起始位置、文件系统、大小 parted /dev/sda mkpart primary 1MiB 513MiB # /boot parted /dev/sda mkpart primary 513MiB 20GiB # / parted /dev/sda mkpart primary 20GiB 24GiB # swap parted /dev/sda mkpart primary 24GiB 100% # /data # 格式化不同分区 mkfs.ext4 /dev/sda1 mkfs.ext4 /dev/sda2 mkswap /dev/sda3 mkfs.ext4 /dev/sda4参数解释:parted 里 1MiB 起手是为了给引导器和分区表本身留出对齐空间,避免 4K 扇区磁盘出现性能倾斜;swap 分区大小按 4G 内存取 4G,装系统时不需要,但后面跑编译任务就能感受到它兜底的价值。这段命令不用真的在安装器里敲,但安装器操作“分区结束后继续安装”的那一步,脑子要过一遍:这些分区分别被挂到了 /boot、/、swap、/data,挂载关系乱了,装完就起不来或起错分区。
3.3 GRUB 装到整块盘还是分区:最容易留下后悔药的地方
引导器这块是我见过最容易翻车的位置。安装器最后一步会问“将 GRUB 安装到 MBR 的扇区”?多数人在这里随手选了 /dev/sda(整块盘),少部分人选了 /dev/sda1(分区)。区别在于:BIOS 引导时从磁盘的 MBR 区域读第一个阶段的引导代码,所以 GRUB 必须落在整块盘 /dev/sda 的 MBR 扇区,而不是 /dev/sda1 这样的文件系统分区内。选错之后最典型的症状是重启直接进 BIOS 设置界面,或者跳到 Grub Rescue。
与之配套的是分区表类型。UEFI 模式下强制 GPT,且需要一个 ESP 分区(EFI System Partition),格式必须 FAT32,挂载点 /boot/efi,大小 260M 以上比较稳妥。传统 BIOS 模式下,MBR 和 GPT 都能用,但 GPT 在 BIOS 模式引导时需要保留一个 1M 的 BIOS boot 分区,否则 GRUB 写不进去。
还有一个多系统场景值得提前想清楚:如果一块盘上同时装 Debian 和另一个系统,GRUB 默认安装时会把系统里的其他启动项也扫描进菜单,但前提是另一个系统的 /boot 分区或 EFI 分区在安装时没有被覆盖。常见做法是在安装 Debian 时选择“不安装引导器”,装完后再由主系统的引导器去链式加载 Debian,这是最省后悔药的方式。
4. 装完只是开始:源配置、用户权限与网络恢复
4.1 软件源配置:一套 sources.list 模板
base system 装完后第一件事不是装桌面环境,而是确认 apt 能正常拉包。默认的 /etc/apt/sources.list 指向官方源,常见做法是先改成可用的模板,再跑 update。以当前稳定版为例,一份最小可用的源文件内容长这样:
deb http://deb.debian.org/debian stable main contrib non-free deb http://deb.debian.org/debian-security/ stable-security main contrib non-free deb http://deb.debian.org/debian stable-updates main contrib non-free字段含义:stable 是发行代号这种写法适合长期稳定服务器,不随版本升级自动跳;main 是自由软件,contrib 依赖自由软件里部分非自由组件,non-free 是纯闭源驱动,如果你的网卡或显卡依赖闭源固件,三组都要保留。改完后执行sudo apt update && sudo apt full-upgrade。如果内网存在自建仓库,把域名换成内网地址即可,结构完全一致。
4.2 用户、sudo 与 wheel 组习惯差异
Debian 在安装过程会让设置 root 密码——这一步很多人直接跳过。如果跳过了 root 密码,系统会创建第一个普通用户并默认加入 sudo 组。后续需要管理员权限时,用这个用户做sudo -i提权,而不是切到 root。这与 CentOS 系习惯用 wheel 组不同,Debian 的提权组名是 sudo:
# 新建用户并加入 sudo 组 useradd -m -s /bin/bash deploy usermod -aG sudo deploy # 给用户补充密码 passwd deploy守着 sudo 组里的用户进行日常管理,比长期挂着 root 操作安全得多。问题常在半年后出现:某台机器管理员离职后 root 密码没交接,但 sudo 组里的用户还在,接管时用 sudo 就能进系统,不必重装。这是个小点,但真能省钱。
4.3 安装时没配网?用 systemd-networkd 把网卡救回来
netinst 安装时如果固件没带全,装完系统进桌面后可能只有一个未连接的 lo 回环接口。此时网卡接口名可能是 enp3s0 这类 predictable name,也可能是 eth0。先用这个命令确认接口名和状态:
ip link然后编辑 systemd-networkd 的配置文件:
sudo mkdir -p /etc/systemd/network sudo vim /etc/systemd/network/10-enp.network文件内容如下(enp3s0 换成你机器上看到的实际接口名):
[Match] Name=enp3s0 [Network] DHCP=ipv4启用网络服务并验证:
sudo systemctl enable systemd-networkd sudo systemctl start systemd-networkd networkctl status参数说明:DHCP=ipv4是让该接口通过 DHCP 自动获取地址,适合绝大多数内网场景;如果机器有多个网卡需要叠加配置,每个接口单独建一个配置文件;如果安装器当初用的是 ifupdown 管理,则要先把/etc/network/interfaces里的相关配置清掉,否则两套网络管理工具会互相干扰,这是装完连不上网的另一个常见原因。
5. Debian 安装 教程避坑实录:五个真实踩坑记录
5.1 安装卡在 68% 的 apt 配置阶段
现象:netinst 安装进度走到约三分之二处,长时间停在“正在安装系统”,日志里反复出现软件包下载失败和重试。
原因:这一步正在拉取 base system 与工具链的软件包,网络波动或源地址不稳定时,apt 会陷入重试循环,日志表面没有报错,实际是在反复断点续传。
解决:安装器界面切到另一个虚拟终端(Ctrl+Alt+F2),看 /var/log/syslog 里的 apt 日志确认原因。如果确认是网络问题,直接放弃这次安装,重新进入安装器,在“软件包管理器配置”步骤选择不配置网络源,装完再手动改 sources.list。这套做法能避免持久重试,安装时间预期控制在 30 分钟内。
5.2 装完系统只有 lo 回环,网卡完全消失
现象:ip link 输出里只有 lo,预期中的 enp 或 eth 网卡不在列表里,OpenSSH 自然也无法连接。
原因:网卡固件缺失。多数服务器网卡是 Intel 或 Realtek 集成方案,小概率遇到比较冷门的网络控制器,官方 free 固件包没覆盖到。
解决:进桌面后插入包含 non-free 固件的 U 盘,把 firmware-linux 相关 deb 包手动安装:
sudo dpkg -i firmware-linux_*.deb sudo reboot重启后网卡通常能识别。如果重启仍无效,去查 dmesg 里对应固件加载失败的行号,按实际报错补固件文件到 /lib/firmware 目录,这是最费时间但最有效的一招。
5.3 重启后直接进 BIOS 或 Grub Rescue
现象:安装全过程无报错,重启后黑屏或直接回到固件设置界面,完全看不到 Grub 菜单。
原因:GRUB 安装位置选错是头号嫌疑,其次是分区表类型与固件引导模式不匹配,比如 BIOS 模式下用了 GPT 分区却没建 BIOS boot 分区,或者在 UEFI 模式下没留 ESP 分区。
解决:先进 Live 环境,chroot 到已装系统里重装 GRUB:
# 挂载根分区和 boot 分区 mount /dev/sda2 /mnt mount /dev/sda1 /mnt/boot # 绑定伪文件系统后 chroot mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys chroot /mnt # 重装引导器到整块盘 grub-install /dev/sda update-grubgrub-install 的参数目标是整块盘 /dev/sda,不是 /dev/sda1。update-grub 会扫描所有分区的操作系统并生成启动菜单。这个方案既能修 GRUB 丢失,也能修菜单内容损坏,比重新安装系统快得多。
5.4 编译大项目被 OOM Killer 杀死
现象:跑 gcc 或嵌入式交叉编译时,终端突然报 Kernel OOM killed,编译进程被杀死,系统可能卡顿或假死。
原因:内存不够且没有启用 swap 交换分区。很多新手分区时只切了 / 和 /data,完全省略 swap,认为内存足够就没必要。但编译任务的峰值内存使用量往往超过预期,尤其 make -j 并行编译时,内存瞬间被吃满。
解决:不重装也能补救,在现有分区上补一个 swap 文件:
sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile然后验证是否生效:free -h里 swap 一行不再是 0。顺手写进 fstab 才能开机自动挂载:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab需要注意的是 fallocate 在部分文件系统上生成的 swapfile 可能有问题,遇到 mkswap 报错时改用 dd 写全零文件重建即可。
5.5 分区表误选导致重启后 root 设备找不到
现象:设备重启后进入 initramfs,提示 Unable to find root device,或卡在UUID=... does not exist。
原因:手动分区时修改了分区类型或大小,但 GRUB 和 initramfs 里记录的文件系统 UUID 没跟上。常见于复制了别人的 fstab 或手动 mkfs 后没有更新 UUID 引用。
解决:开机进 initramfs 阶段输入ls /dev/sda*确认分区存在,然后临时修改内核参数,或者直接进入 Live 环境重新挂载并查看实际 UUID:
blkid /dev/sda2 sudo mount /dev/sda2 /mnt cat /mnt/etc/fstab nano /mnt/etc/fstab把 fstab 和 /boot/grub/grub.cfg 里的 UUID 全部替换为 blkid 输出的真实值,reboot 即恢复。这问题几乎都是自己把分区重新格式化后忘记更新引用引起的,不是 Debian 本身的 bug。
6. 装完后的验证习惯与 chroot 修复引导的具体操作
系统装好之后,我始终保留一套固定验证流程,而不是立刻开始装业务环境。每次都强制自己执行这三条命令:
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT blkid /dev/sda2 efibootmgr -v # UEFI 模式才需要lsblk 确认分区挂载关系符合设计,blkid 确认根分区 UUID 与 fstab 对应,efibootmgr 确认引导项里 Debian 的入口还在第一位。三条命令只要全部正常,重启基本不会翻车;任何一条异常,当场修完再继续,不要带病工作。
最后分享一个更冷门的救援技巧:如果哪天连 GRUB 都进不去,也可以用 efibootmgr 直接新建一个引导项指向内核。先把 Easier UEFI Shell 或另一个系统的引导器启动起来,再进入 Live 环境执行:
efibootmgr -c -d /dev/sda -p 1 -L "Debian" -l "\EFI\debian\shimx64.efi"参数说明:-c创建新引导项,-d -p指定磁盘和 EFI 分区,-l指定引导器文件路径。这条命令不是替代 GRUB 的方案,而是 GRUB 因配置损坏无法工作时找回系统入口的临时手段。从那以后,我每次装完 Debian 都强制走一遍 lsblk、blkid、efibootmgr 这组验证流程,真没再在重启这步上收到过惊吓。希望这份经验帮到你,装 Debian 最大的安全感,来自你对引导链路和分区关系的明确掌控。
本文还有配套的精品资源,点击获取