跳转到内容
启涵的小破站
返回

Linux 安装指北

装系统这事,安装器本身没什么好说的,一路下一步就完了。让人返工的全在外圈:镜像下坏、盘写错、分区定得草率、安全启动拦一刀、装完发现 SSH 进不去。这篇按顺序理一遍,重点放在容易出问题的地方。

先想清楚装在哪

三种情况,准备工作完全不一样:

下面按物理机/虚拟机的流程写,云主机的差异单独提。

镜像:下对,还要对哈希

从发行版官网或者国内镜像站下。别用那种”纯净精简版""某某优化版”,出了事没人能帮你对账。

同一个发行版有好几种镜像,用途不一样:

下完对一遍哈希。跳过这步的人不少,代价是装到一半报错,还得回头怀疑是不是自己分区分错了:

sha256sum debian-12.8.0-amd64-netinst.iso

# 或者直接拿官方的校验文件对,省得肉眼比对
grep -F debian-12.8.0-amd64-netinst.iso SHA256SUMS | sha256sum -c -

文件名里的版本号按你下载时的当前点版本改,我这里只是举例。

写 U 盘

Linux 下一条命令:

sudo dd if=debian-12.8.0-amd64-netinst.iso of=/dev/sdX bs=4M status=progress oflag=direct conv=fsync

三个提醒,都是踩出来的:

  1. of= 写的是整块盘(/dev/sdX),不是分区(/dev/sdX1)。敲之前 lsblk 看清楚。写错一个字母,那块盘上的数据就没了。
  2. 别往挂载着的盘上写。U 盘被桌面自动挂载了就先 umount,不然会看到”设备忙”。
  3. Windows 上写盘用 Rufus 或者 balenaEtcher。想一个盘塞好几个系统就用 Ventoy,镜像拷进去就能启动。

dd 写完之后有个怪现象:到 Windows 里看 U 盘只剩几百兆,还提示要不要格式化。这是正常的,ISO 就那么大,别点格式化。想恢复全容量得重新分区。

引导:UEFI、安全启动、硬盘模式

进 BIOS,三件事值得确认。

启动模式。现在的机器基本是 UEFI,老机器可能默认 Legacy。系统里也能看:

ls /sys/firmware/efi

有输出就是 UEFI 启动。装完之后 UEFI 机器的启动项在主板里显示成 debian、ubuntu 这种名字,Legacy 是直接读盘引导。

安全启动(Secure Boot)。Debian 和 Ubuntu 的官方镜像带签名,能过校验。但你要装 NVIDIA 驱动、编译内核模块、用 DKMS,它会把东西拦下来。我一般在 BIOS 里直接关掉,省得后面折腾签名。哪天某个驱动装完起不来,先想想是不是它。

硬盘模式。BIOS 里 SATA 那项如果是 RAID 模式(品牌机和新笔记本上很常见),安装器会找不到硬盘,别急着怀疑镜像。改成 AHCI 再看。双系统注意:Windows 是在 RAID 模式下装的,直接换 AHCI 它进不去系统,得先去 Windows 里改注册表。

分区:最不能敷衍的一步

分错了,装完想改就得搬数据。按用途给两套。

家用单机,图省事:

挂载点大小说明
/boot/efi512MUEFI 用,Legacy 不需要
/剩下的全给不用想
swap内存的一半或者 4G内存 16G 以上可以直接用 swapfile

服务器,我习惯这么分:

挂载点大小说明
/boot/efi512M
/30-50G系统本体,装软件够用
/var按用途给,容器多就 50G 起日志、docker 镜像、包缓存都在这里
swap2-4G或者 swapfile,后期好调
/home看情况服务器上没什么人登录的话,不单独分也一样

几个决定,值得花两分钟想:

/var 要不要单独分。日志、容器镜像、apt 缓存全在里面,涨得比根分区快得多。根分区被撑爆之后连 systemctl 都起不来,键盘敲进去没反应。遇到过一回就记住了。

LVM 要不要上。想在线扩容、想快照就上。代价是多一层映射,从 live 系统里救数据的时候多一个步骤。云主机这种以后要扩盘、要快照的场景,很值。

文件系统选哪个。ext4 最稳,出问题时的工具和资料最多;xfs 处理大文件、大目录更顺;btrfs 和 zfs 有快照和校验,但你要熟悉它那套管理命令,不然出问题时不好收拾。

安装器里手动看一眼的选项

大部分默认值能用,这几个我每次都确认:

装完先做这几件事

刚装完的系统还不能直接交付,下面这几步做完才算能用。

更新一遍

apt update && apt full-upgrade -y

换软件源

前面装的时候没选国内镜像的话:

cp /etc/apt/sources.list /etc/apt/sources.list.bak
sed -i 's|deb.debian.org|mirrors.ustc.edu.cn|g' /etc/apt/sources.list
apt update

改之前备份,改完立刻跑一次 apt update,确认没报错再往下走。新的 Debian 把源换成了 deb822 格式,放在 /etc/apt/sources.list.d/ 下面,找不到 sources.list 就去那里看看。

时间

timedatectl set-timezone UTC
timedatectl set-ntp true
timedatectl status

配密钥,然后关掉密码登录

本地生成密钥(已经有就跳过):

ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id user@server

服务端:

cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin prohibit-password
PasswordAuthentication no
EOF

sshd -t && systemctl reload ssh

顺序别颠倒:sshd -t 先验配置,通过了再 reload。配置写错就 reload,能把你自己关在门外。更保险的做法是别关当前这个连接,另开一个终端试登录,进去了再关。

用 reload 不用 restart,已经连着的会话不受影响。

防火墙

apt install -y nftables
systemctl enable --now nftables

Debian 自带的 /etc/nftables.conf 只是个骨架,装了不等于有防护,得自己写规则。至少把不需要的端口关掉。云主机外面还有一层安全组,两边都看一眼,不然会出现”本地规则放行了但还是连不上”。

留个底

云主机点一下快照,物理机至少把分区表存下来:

sfdisk -d /dev/sda > /root/sda-parts.txt
ip -6 addr show > /root/ip6.txt

刚装完的系统是干净的,以后想退回一个没折腾过的状态,能退的就是这一刻。

装不上、装完起不来

按我遇到的频率排:

安装器那几步真不难,难的是装上之前和装完之后——上面这些我基本都撞过一遍,下次装机前扫一眼就行。


分享本文:

上一篇
端口探测笔记
下一篇
tmux 实战笔记

加载评论区中...