Linux 装系统这件事,门槛其实比很多人想象的更低,坑却比想象中更多。同一份 ISO,有人二十分钟跑起来桌面,有人卡在 Minimal BASH-like line editing is supported 一晚上出不来。这篇就按「先选路线、再准备物料、然后照着装、最后验证」的顺序,把 2026 年最常用的三种安装路径一次讲清楚:虚拟机装、Windows 下的 WSL2 一键装、物理机 U 盘装(含双系统)。
先把结论摆出来。Linux 是一个开源的操作系统内核,配上 GNU 工具链和桌面环境后,就成了一台能日常办公、能跑开发环境、能当服务器的完整系统;它最大的特点是免费、可裁剪、资源占用低、命令行能力强、生态里几乎所有服务端软件都优先支持它。对开发者来说,它是 Docker、K8s、Python 服务、嵌入式编译链最舒服的宿主;对普通用户来说,它是一台老笔记本重获新生的方案。
安装方式上,虚拟机适合零风险试水,WSL2 适合 Windows 用户几分钟内拿到一个能用的终端环境,物理机安装性能最好但要动磁盘分区。硬件门槛方面,桌面版一般建议 4GB 以上内存、25GB 以上磁盘空间、支持 64 位的 CPU;服务器版最小化安装 1GB 内存也能跑起来。这些数字和你选的具体发行版、桌面环境强相关,下文会给出判断方法。
这篇会带你完成:四条安装路线的取舍判断、镜像获取与校验、启动盘制作、三种方式的实际安装步骤、首次启动后的换源和 SSH 配置、开发环境落地、以及一份能照着排的问题清单。适合第一次装 Linux 的同学,也适合装过但总在分区和引导上翻车的朋友。
1. Linux 安装路线与核心能力速览
动手之前先明确一件事:安装 Linux 不是一个动作,而是「选择一条路线 + 准备物料 + 执行安装 + 验证」这一整套流程。路线选错,后面每一步都是折磨。比如你只是想在 Windows 上跑个 Python 脚本,却去搞双系统分区,那就是用牛刀杀鸡还容易砍到手。
下面这张表是我建议你先看完的部分。它把四条主流路线的关键差异列清楚了,尤其是「会不会动到你现有的数据」这一列,是决定你要不要备份的分水岭。
| 能力项 | 说明 |
|---|---|
| 项目类型 | 操作系统安装与配置教程(桌面 / 服务器 / 开发环境) |
| 开源属性 | 内核与绝大多数发行版均为开源,可自由下载、使用、修改 |
| 主流发行版 | Ubuntu、Debian、Fedora、Rocky Linux、AlmaLinux、Arch、openSUSE 等 |
| 硬件门槛 | 桌面版建议 4GB 内存起、25GB 磁盘起;服务器最小化可低至 1GB 内存 |
| 是否需要独显 | 不需要,集显即可;涉及 CUDA 时才需要 NVIDIA 显卡与对应驱动 |
| 安装方式 | 虚拟机 / WSL2 / 物理机 U 盘 / 云主机镜像 |
| 是否影响现有系统 | 虚拟机与 WSL2 不影响;物理机单系统会清盘,双系统需手动分区 |
| 是否支持命令行远程 | 支持,标准 SSH 即可,Windows、macOS、手机终端都能连 |
| 是否支持一键安装 | WSL2 支持一条命令;物理机可用自动安装(autoinstall / Kickstart) |
| 适合场景 | 开发环境、服务器运维、学习命令行、老旧设备复用、容器与 AI 推理宿主 |
1.1 四条路线怎么选
虚拟机:在现有系统里装个软件,虚拟出一台电脑。优点是零风险、可随时删掉重来、能打快照;缺点是有性能损耗,尤其是磁盘 IO 和图形性能,跑 AI 推理这类吃显卡的任务会比较难受。适合第一次装、想先看看长什么样的人。
WSL2:Windows 10/11 自带的能力,本质是一个轻量虚拟机里跑真正的 Linux 内核。优点是启动快、和 Windows 文件系统互通、终端体验接近原生;缺点是没有完整桌面(图形界面需要额外配置)、systemd 相关的一些服务行为需要额外开启、嵌套虚拟化场景有限制。适合 Windows 上做 Web 开发、跑脚本、用 Docker 的人。
物理机单系统:整块盘给 Linux。优点是性能完整、驱动直接、没有中间层;缺点是原来的系统没了,装之前必须备份。适合把旧电脑改造成开发机或家用服务器的人,也适合做 AI 推理工作站的场景。
物理机双系统:一块盘上切分区,两个系统共存,开机时选择。优点是保留原系统;缺点是分区操作有风险,Windows 更新偶尔会动引导,需要一点排错能力。适合既要用 Windows 生态软件、又需要原生 Linux 性能的人。
我的建议很直接:第一次装,走虚拟机;Windows 上日常开发,走 WSL2;确定要长期用,再上物理机。
1.2 装之前必须确认的三件事
第一,确认你的 CPU 虚拟化是否开启。虚拟机、WSL2 都依赖这个。Windows 上打开任务管理器 → 性能 → CPU,看「虚拟化」是否为「已启用」;没开就进 BIOS/UEFI 找 Intel VT-x、AMD-V、SVM Mode 之类的选项打开。
第二,确认启动模式是 UEFI 还是 Legacy。这决定你做启动盘时的分区格式(GPT 还是 MBR),也决定装完之后能不能正常引导。近五年的机器基本都是 UEFI,老机器可能是 Legacy。
第三,确认磁盘还有多少空间。虚拟机建议预留 40GB 以上(动态分配不会立刻占满),WSL2 默认装在 C 盘,物理机双系统建议至少空出 60GB 的未分配空间。C 盘只剩几个 G 还硬上,后面会很痛苦。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 发行版选择:桌面、服务器与特殊场景
发行版的选择没有标准答案,但有明确的判断依据:你要的是「稳定省心」还是「软件最新」,是「图形桌面」还是「纯命令行服务」。选错了不会装不上,但会天天难受。
2.1 桌面用户怎么选
Ubuntu LTS 是最省事的选择。硬件兼容性好,遇到问题搜出来的答案最多,中文资料也最全。LTS 版本的生命周期通常有好几年,不用频繁升级。缺点是默认桌面(GNOME)比较吃资源,老机器会有点卡。
Linux Mint 基于 Ubuntu,桌面换成更接近 Windows 习惯的 Cinnamon,对新手极其友好,老笔记本装它比装 Windows 还流畅。缺点是上游更新慢一些。
Fedora 适合想要新软件的人,内核和桌面都比较新,Wayland 支持好。缺点是每个版本的维护周期短,需要定期做大版本升级。
Arch 系(Arch、EndeavourOS、Manjaro)适合愿意折腾的人,软件最新、文档质量高(Arch Wiki 是 Linux 领域最好的文档之一),但滚动更新偶尔会带来兼容问题,新手不建议作为第一台机器。
2.2 服务器与生产环境怎么选
服务器场景优先看「稳定」和「支持周期」。Debian 以稳定著称,软件版本偏保守;Rocky Linux / AlmaLinux 是 RHEL 的下游兼容版本,企业环境用得多,有长期安全更新;Ubuntu Server LTS 兼顾稳定和软件新度,云主机上非常常见。
如果你的目标是跑 Docker、跑 Web 服务、跑数据库,这几个都能胜任,选团队最熟悉的那一个就行。不要把时间浪费在「哪个发行版更快」这种问题上,同一台硬件上它们的性能差异远小于配置差异。
2.3 一种更省心的思路
如果你只是想体验一下,还有个几乎零成本的办法:Live 模式。大部分桌面发行版的安装镜像都支持「Try before install」,直接从 U 盘启动进桌面,不写任何数据到硬盘,试完拔盘重启就行。这个过程同时还能验证你的硬件兼容性——如果 Live 模式里无线网卡、声卡、触控板都能用,那装上去基本也没问题;如果 Live 模式就有问题,先别急着装,去查查这个型号的兼容性报告。
3. 安装前的环境准备与镜像校验
这一步是很多人翻车的地方。不是安装过程难,而是物料没准备对:镜像下到一半断了、启动盘写坏了、U 盘本身有问题。花十分钟做检查,能省掉两小时排查。
3.1 硬件与软件清单
- 一台目标机器(物理机或宿主机)
- 一个 8GB 以上的 U 盘(做启动盘会清空,先备份里面的东西)
- 目标镜像的 ISO 文件
- 启动盘制作工具:Ventoy、Rufus、balenaEtcher 任选
- 虚拟化软件:VMware Workstation Player、VirtualBox 或系统自带的 Hyper-V
- 一个能上网的环境,用于下载镜像和后续更新
关于「安装包」,这里给个明确提醒:只从发行版官方站点或其官方镜像站下载 ISO。网上流传的各种「整合包」「美化版」「精简版」,本质是第三方修改过的镜像,你无法确认里面有没有被塞进后门程序、挖矿脚本或者被篡改的软件源。系统镜像这种东西,来源必须可追溯。
3.2 镜像校验:别跳过这一步
下载完 ISO 之后,先做一次哈希校验。官方站点通常会在同目录放一个 SHA256SUMS 之类的文件,里面有每个镜像对应的哈希值。
Linux / macOS 下:
bash复制# 计算下载文件的 SHA256
sha256sum ubuntu-24.04-desktop-amd64.iso
# 或者与官方校验文件自动比对(文件名以实际为准)
sha256sum -c SHA256SUMS --ignore-missing
Windows PowerShell 下:
powershell复制Get-FileHash .\ubuntu-24.04-desktop-amd64.iso -Algorithm SHA256 | Format-List
输出的哈希和官方文件里那一行对比,必须完全一致。不一致说明下载过程出错或者文件被替换,重新下载,别抱侥幸心理。这一步花 30 秒,能排除掉后面最难查的一类问题。
3.3 启动盘制作
三个工具各有侧重:
- Ventoy:装一次,之后往 U 盘里拷 ISO 文件就行,支持多系统共存,最推荐。
- Rufus:Windows 下轻量好用,注意分区类型要选对(UEFI 选 GPT,Legacy 选 MBR)。
- balenaEtcher:跨平台,界面简单,适合不想研究参数的人。
用 dd 命令写入(Linux / macOS,务必确认设备名,写错盘会丢数据):
bash复制# 先查看磁盘列表,确认 U 盘的设备名,例如 /dev/sdX
lsblk
# 卸载已挂载的分区
sudo umount /dev/sdX* 2>/dev/null
# 写入镜像,of 后面必须是 U 盘设备,不能是分区
sudo dd if=ubuntu-24.04-desktop-amd64.iso of=/dev/sdX bs=4M status=progress oflag=sync
写完 U 盘一般会显示为只读或者分区结构变化,这是正常的,不要以为写坏了又去格式化。
4. 虚拟机安装:零风险上手路线
这是我给所有第一次接触 Linux 的人的首选建议。整个电脑里就多几个文件,装坏了删掉重来,连重启都不用。
4.1 创建虚拟机
以 VirtualBox 为例(VMware 的流程基本一致):
- 新建虚拟机,类型选 Linux,版本选对应的发行版(选 Ubuntu 64-bit 之类)。
- 内存给 4096MB 起,宿主机只有 8GB 的话给 2048MB 也能跑,但桌面会卡。
- 硬盘选「现在创建虚拟硬盘」,类型 VDI,动态分配,大小给 40GB 以上。
- 在「设置 → 系统 → 处理器」里给 2 核以上,在「设置 → 显示」里把显存调到 128MB。
- 在「设置 → 存储」里挂载 ISO 文件到光驱。
VMware 的路径是:新建虚拟机 → 典型 → 安装程序光盘映像文件 → 选择 ISO → 下一步填虚拟机名称和位置 → 指定磁盘容量 → 自定义硬件里调内存和 CPU。
一个容易忽略的点:虚拟机不要开 Hyper-V 和 VirtualBox 同时用,两者会抢虚拟化能力,表现是虚拟机启动极慢或者报 VT-x is not available。如果 Windows 上开了 WSL2 或 Docker Desktop,VirtualBox 可能会受影响,这时候换成 VMware 或者干脆用 Hyper-V 更省心。
4.2 安装过程中的关键选项
启动虚拟机进入安装器后,会问几个问题,这里逐条说明:
- 语言和键盘布局:选中文可以,但服务器场景建议保持英文,避免终端里出现乱码路径。
- 安装类型:桌面用户选「正常安装」,会带办公套件和浏览器;想快就选「最小安装」。
- 第三方软件:勾上「安装第三方驱动」(显卡、Wi-Fi 固件),能省掉后面手动装驱动的时间。
- 安装方式:选「清除整个磁盘并安装」。注意这里的「整个磁盘」指的是虚拟磁盘,不是你的物理硬盘,放心点。
- 用户信息:设置用户名和密码,建议勾选「自动登录」方便测试,生产环境别勾。
安装过程中下载语言包会比较慢,可以先断网装完再更新,能快不少。
4.3 装完之后的增强功能
这一步决定了虚拟机的可用性。不装增强功能,你会遇到这些问题:分辨率只有几个固定档、鼠标不能无缝切换、剪贴板不能复制粘贴、共享文件夹挂不上。
VirtualBox 在菜单「设备 → 安装增强功能」加载镜像,然后在虚拟机里执行:
bash复制sudo mkdir -p /mnt/cdrom
sudo mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
sudo ./VBoxLinuxAdditions.run
如果提示缺内核头文件,先装编译依赖再重试:
bash复制sudo apt update
sudo apt install -y build-essential linux-headers-$(uname -r)
共享文件夹挂载:
bash复制sudo mkdir -p /mnt/share
sudo mount -t vboxsf share /mnt/share
VMware 对应的是 open-vm-tools-desktop,直接装包就行:
bash复制sudo apt install -y open-vm-tools-desktop
4.4 快照:虚拟机最重要的一个功能
装完系统、配置好环境之后,立刻打一个快照。之后不管你把系统折腾成什么样,一条命令就能回滚。这是虚拟机相比物理机最大的优势,很多人却不用。
VirtualBox 在菜单「机器 → 拍摄快照」;VMware 在「虚拟机 → 快照 → 拍摄快照」。建议打三个节点:刚装完系统的干净状态、装完开发环境之后、装完驱动之后。
5. WSL2 一键安装:Windows 用户的最短路径
如果你用 Windows 10 2004 以上或 Windows 11,这是拿到一个可用 Linux 环境最快的办法——真的是一条命令,不用做启动盘,不用重启进 BIOS。
5.1 一条命令完成安装
以管理员身份打开 PowerShell:
powershell复制# 默认安装发行版(通常是当前最新的 Ubuntu LTS)
wsl --install
# 指定发行版
wsl --install -d Ubuntu-24.04
# 查看可安装的发行版列表
wsl --list --online
执行完会提示重启,重启后自动弹出设置用户名和密码的窗口。设置完成后就能用了。
如果没有走默认流程,或者想手动确认版本,用这几条检查:
powershell复制# 查看已安装的发行版及其 WSL 版本
wsl --list --verbose
# 把默认版本设为 2
wsl --set-default-version 2
# 更新 WSL 内核
wsl --update
# 关闭所有发行版(改配置后需要重启生效)
wsl --shutdown
如果 wsl --install 报「无法解析服务器的名称或地址」,一般是网络问题,换成手动启用组件的方式:
powershell复制# 手动启用所需组件(管理员 PowerShell)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
然后重启,再执行 wsl --update 和 wsl --set-default-version 2。
5.2 首次启动与用户配置
第一次启动会让你设一个 UNIX 用户名和密码(和 Windows 账户无关)。这个密码在 sudo 时会用到,别忘了。
几个必须知道的差异点:
- WSL 里的 root 默认没有密码,用
sudo -i可以切过去。 - 默认用户可以通过
wsl --manage或修改/etc/wsl.conf来调整。 - 想要 systemd(很多服务依赖它),需要在
/etc/wsl.conf里开启:
ini复制[boot]
systemd=true
写完执行 wsl --shutdown 再进,systemctl status 就能用了。
5.3 文件系统与性能注意点
这是 WSL2 最容易被吐槽的地方。WSL2 用的是虚拟磁盘(ext4.vhdx),和 Windows 的 NTFS 是两套文件系统。
核心原则:项目代码放在 Linux 文件系统里,不要放在 /mnt/c/ 下。跨文件系统访问的开销非常大,一个 npm install 在 /mnt/c/项目 下可能要几分钟,在 ~/项目 下几十秒就完了。差距是数量级的。
常用的路径对照:
- Windows 的 C 盘在 WSL 里是
/mnt/c - Linux 的家目录对应 Windows 侧路径可以在资源管理器地址栏输入
\\wsl$访问 - 想用 Windows 的资源管理器打开当前目录,执行
explorer.exe .
备份和迁移整个发行版:
powershell复制# 导出备份
wsl --export Ubuntu-24.04 D:\backup\ubuntu-backup.tar
# 在新机器上导入
wsl --import Ubuntu-24.04 D:\wsl\ubuntu D:\backup\ubuntu-backup.tar --version 2
5.4 WSL2 适合做什么、不适合做什么
适合:Web 后端开发、Python/Node 脚本、Docker(配合 Docker Desktop 或原生 docker)、命令行工具链、Git 操作。
不太适合:图形界面重度使用(需要 WSLg 或额外的 X Server 转发)、需要完整内核模块的场景(加载自定义 kernel module 基本不可行)、对磁盘 IO 极致敏感的任务、需要直通 GPU 且配置复杂的推理环境(NVIDIA 有 WSL 支持,但版本匹配比较挑)。
6. 物理机与双系统安装:U 盘引导全流程
这条路线性能最好,风险也最高。操作之前,请先把重要数据备份到外部磁盘。硬盘分区操作是不可逆的,误操作一次可能几年的资料就没了。
6.1 进 BIOS 之前的准备
先确认几件事:
- 启动盘做好并校验过。
- 目标机器的重要数据已备份。
- 知道怎么进 BIOS/UEFI(一般是开机按 F2、F12、Del 或 Esc,不同品牌不同)。
- 知道怎么改启动顺序。
如果是双系统,先在 Windows 的磁盘管理里压缩卷,把空间腾出来,但不要新建分区,留成「未分配」状态,让 Linux 安装器自己去分。这一步很多人提前分好了 NTFS 分区,结果安装器识别不出来。
6.2 BIOS/UEFI 里的关键设置
进 BIOS 后需要调整的项(名称各品牌不同,找意思相近的):
| 设置项 | 建议值 | 说明 |
|---|---|---|
| Secure Boot | 关闭(或安装后再开) | 部分发行版的第三方驱动与 Secure Boot 冲突 |
| SATA Mode | AHCI | 若为 RAID/Intel RST,Linux 安装器可能识别不到硬盘 |
| Fast Boot | 关闭 | 快速启动会跳过 USB 设备检测 |
| Boot Order | U 盘优先 | 装完后记得改回来 |
| Virtualization | 开启 | 后续跑 Docker / 虚拟机需要 |
如果安装器报「找不到磁盘」,八成是 SATA Mode 设成了 RAID。改成 AHCI 之前注意:Windows 可能因此启动不了,需要先在 Windows 里安全模式下改注册表,或者直接改完用安全模式引导一次。这个坑很常见,动之前先查清楚自己机器的处理方式。
6.3 分区方案
手动分区的推荐方案(以 100GB 空间为例,UEFI + GPT):
| 挂载点 | 大小 | 类型 | 说明 |
|---|---|---|---|
/boot/efi |
512MB | EFI 系统分区 | 已有 Windows 的话直接复用,不要新建 |
/ |
40GB 起 | ext4 | 根分区,放系统和软件 |
swap |
内存大小或 8GB | swap | 内存足够大可以省略,或用 swapfile |
/home |
剩余空间 | ext4 | 用户数据,重装系统时可保留 |
如果你不想折腾,选「安装到空闲空间」让安装器自动分,也能用,只是分区布局不一定合你意。自动分区在有多个磁盘的机器上要特别注意——它会问装到哪块盘,选错了整块盘的数据就没了。
/boot/efi 是双系统最容易出问题的地方。如果 Windows 已经有一个 EFI 分区(通常 100MB~300MB),Linux 安装器一般会自动复用它,把引导文件放进 /EFI/ubuntu/ 之类的目录。不要格式化这个分区,否则 Windows 也起不来。
6.4 安装器交互与引导
Ubuntu 系的安装流程大致是:语言 → 键盘 → 网络 → 安装类型 → 磁盘分区 → 时区 → 用户 → 等待复制文件 → 重启。
其中「安装类型」这一步选「其他选项」可以做手动分区,选「安装 Ubuntu,与 Windows 共存」会自动缩小 Windows 分区。后者省事但有风险,我一般建议手动分区,可控性强。
装完重启,如果直接进 Windows 没有引导菜单,说明 GRUB 没写进 UEFI 的启动项。进 BIOS 把 ubuntu 或对应发行版的启动项调到第一位,或者在 Windows 里用 bcdedit 检查。遇到 GRUB 命令行界面(grub>),通常是找不到 /boot 分区,可以用 ls 逐个查看分区内容来定位:
bash复制grub> ls
grub> ls (hd0,gpt5)/
grub> set root=(hd0,gpt5)
grub> linux /boot/vmlinuz-<版本> root=/dev/sda5
grub> initrd /boot/initrd.img-<版本>
grub> boot
这是临时救急,能进系统之后再执行 sudo update-grub 和 sudo grub-install /dev/sda 修复。具体的设备和内核版本号要按你自己机器的情况替换,别照抄。
7. 首次启动与系统基础配置
装完系统只是开始,第一次进入桌面(或命令行登录)之后,有几件事是必做的,做完这台机器才算能用。
7.1 系统更新与软件源
第一件事永远是更新。刚装好的系统,软件包都是镜像发布时的版本,可能有已知漏洞。
Debian / Ubuntu 系:
bash复制sudo apt update
sudo apt upgrade -y
sudo apt full-upgrade -y
RHEL / Rocky / Fedora 系:
bash复制sudo dnf upgrade --refresh -y
国内网络环境下,换成本地镜像源能显著提速。以 Ubuntu 24.04 为例,软件源配置在 /etc/apt/sources.list.d/ubuntu.sources(deb822 格式),老版本在 /etc/apt/sources.list。改之前先备份:
bash复制sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak
然后编辑文件,把 http://archive.ubuntu.com/ubuntu 和 http://security.ubuntu.com/ubuntu 替换成镜像站地址(清华、阿里云、中科大等都有公开镜像服务)。替换完执行 sudo apt update 验证,如果报 GPG 错误或者 404,把备份还原回去再排查。
注意一点:软件源镜像站是公开的软件分发服务,和网络代理是两回事,它只是让包下载更快。不要从非官方渠道获取任何来路不明的「加速工具」。
7.2 用户权限与 SSH 服务
日常使用不要用 root 登录。Ubuntu 装的时候创建的第一个用户默认在 sudo 组里,可以提权:
bash复制# 检查当前用户所属组
groups
# 添加用户到 sudo 组(需要已有 sudo 权限)
sudo usermod -aG sudo username
# 切换用户
su - username
如果是当服务器用,装 SSH 服务并设置开机自启:
bash复制sudo apt install -y openssh-server
sudo systemctl enable --now ssh
sudo systemctl status ssh
默认 SSH 允许密码登录。为了安全,建议改成密钥登录,并关闭密码认证:
bash复制# 在客户端生成密钥(ed25519 比 rsa 更推荐)
ssh-keygen -t ed25519 -C "dev@example.com"
# 把公钥推送到服务器
ssh-copy-id username@192.168.1.100
# 测试免密登录
ssh username@192.168.1.100
确认免密登录可用之后,再编辑服务器上的 /etc/ssh/sshd_config,设置 PasswordAuthentication no,然后 sudo systemctl restart ssh。顺序不能反,先关密码再传密钥,可能把自己锁在外面。
7.3 网络、时区与主机名
这几项看起来琐碎,但配置错了排查起来很麻烦。
bash复制# 查看网络接口和 IP
ip addr show
# 测试连通性
ping -c 4 223.5.5.5
ping -c 4 mirrors.tuna.tsinghua.edu.cn
# 查看和设置时区
timedatectl
sudo timedatectl set-timezone Asia/Shanghai
# 时间同步
sudo timedatectl set-ntp true
# 修改主机名
sudo hostnamectl set-hostname dev-box
如果网络不通,先看 ip addr 有没有拿到 IP,再看路由 ip route,最后看 DNS(/etc/resolv.conf)。虚拟机里网络不通,八成是网卡模式选错了——NAT 模式最简单,桥接模式能让局域网其他机器直接访问。
8. 开发环境落地与一键初始化脚本
系统能开机、能上网之后,接下来就是把它变成一台能干活的机器。这部分按「包管理 → 语言运行时 → 容器 → 编辑器」的顺序来。
8.1 包管理器常用命令对照
| 操作 | Debian/Ubuntu (apt) | RHEL/Rocky (dnf) | Arch (pacman) |
|---|---|---|---|
| 更新索引 | sudo apt update |
sudo dnf check-update |
sudo pacman -Sy |
| 升级系统 | sudo apt upgrade |
sudo dnf upgrade |
sudo pacman -Su |
| 安装软件 | sudo apt install 包名 |
sudo dnf install 包名 |
sudo pacman -S 包名 |
| 卸载软件 | sudo apt remove 包名 |
sudo dnf remove 包名 |
sudo pacman -R 包名 |
| 搜索软件 | apt search 关键词 |
dnf search 关键词 |
pacman -Ss 关键词 |
| 清理缓存 | sudo apt autoremove |
sudo dnf autoremove |
sudo pacman -Sc |
装开发常用的基础工具:
bash复制sudo apt install -y build-essential git curl wget vim htop \
net-tools tree unzip zip jq tmux
8.2 Python 与 Node 环境
系统自带的 Python 不要随便动,用虚拟环境隔离:
bash复制sudo apt install -y python3 python3-pip python3-venv
# 创建并激活虚拟环境
python3 -m venv ~/venvs/demo
source ~/venvs/demo/bin/activate
# 验证
python --version
pip --version
# 退出
deactivate
Node 建议用版本管理器(nvm 或 fnm),不要用系统包管理器装,否则切版本会很痛苦。
Docker 的安装,可选官方仓库方式(更可控)或官方提供的一键脚本(更快但要信任来源)。用脚本前至少看一眼内容:
bash复制curl -fsSL https://get.docker.com -o get-docker.sh
less get-docker.sh
sudo sh get-docker.sh
装完把当前用户加进 docker 组,避免每次都要 sudo:
bash复制sudo usermod -aG docker $USER
newgrp docker
docker run --rm hello-world
8.3 一键初始化脚本
所谓「一键安装」,本质是把上面这些命令按顺序写进一个脚本。这里给一个最小可用的模板,你可以按自己需要增删。注意脚本里用 set -euo pipefail,任何一步失败就停下,避免后续操作在错误状态下继续。
bash复制#!/usr/bin/env bash
# init-dev.sh - 新装 Linux 的开发环境初始化脚本
# 使用前请逐行阅读,确认每一行你都能接受
set -euo pipefail
log() {
echo "[$(date '+%H:%M:%S')] $*"
}
log "开始更新软件源"
sudo apt update
log "安装基础工具"
sudo apt install -y build-essential git curl wget vim htop \
net-tools tree unzip zip jq tmux ca-certificates
log "安装 Python 开发环境"
sudo apt install -y python3 python3-pip python3-venv
log "配置 Git 基础信息(按需修改后取消注释)"
# git config --global user.name "your-name"
# git config --global user.email "you@example.com"
log "安装 Docker"
if ! command -v docker >/dev/null 2>&1; then
curl -fsSL https://get.docker.com -o /tmp/get-docker.sh
sudo sh /tmp/get-docker.sh
sudo usermod -aG docker "$USER"
else
log "Docker 已安装,跳过"
fi
log "清理无用依赖"
sudo apt autoremove -y
sudo apt clean
log "初始化完成,建议重新登录使 docker 组生效"
用法:
bash复制chmod +x init-dev.sh
./init-dev.sh 2>&1 | tee init.log
关于一键脚本的安全提醒:只运行你自己写的、或者能看懂每一行的脚本。网上那种「一行命令搞定所有配置」的 curl xxx | bash,尤其是不带域名的短链接,风险极高——它等于把你这台机器的控制权交出去了。脚本里如果有 rm、chmod 777、改 sudoers 之类的操作,更要逐个确认。
9. 资源占用观察、性能调优与常见问题排查
装完之后,很多人会问「我的 Linux 怎么这么卡」。答案通常不是系统问题,而是配置问题。
9.1 常用观测命令
bash复制# 实时进程与总体负载
top
# 更好看的版本(需要安装 htop)
htop
# 内存与交换分区
free -h
# 磁盘空间
df -h
# 目录占用排序
du -h --max-depth=1 ~ | sort -h
# 块设备与分区结构
lsblk
# 系统负载均值、运行时间
uptime
# 有 NVIDIA 显卡时查看驱动、显存占用
nvidia-smi
看 free -h 的时候要注意,Linux 会把空闲内存拿来做缓存(buff/cache 那一列),这不代表内存被占满了。真正要看的是 available 这一列。
看 df -h 时,如果 / 分区快满了,常见原因是日志、缓存、Docker 镜像。sudo du -h --max-depth=1 /var | sort -h 能快速定位。
9.2 三条路线的性能差异
| 维度 | 虚拟机 | WSL2 | 物理机 |
|---|---|---|---|
| CPU 性能 | 接近原生,有少量开销 | 接近原生 | 原生 |
| 磁盘 IO | 明显慢(尤其动态分配磁盘) | 中等,跨文件系统更慢 | 最快 |
| 图形性能 | 需要增强功能,一般般 | 无完整桌面 | 完整 |
| GPU 直通 | 支持但有配置成本 | 需要特定驱动版本 | 直接支持 |
| 内存占用 | 宿主机 + 虚拟机双份开销 | 动态,按需分配 | 系统自身开销 |
| 快照回滚 | 支持 | 通过导出导入 | 需要额外工具 |
虚拟机磁盘 IO 慢,一个容易被忽视的原因是把虚拟磁盘放在机械硬盘上,或者磁盘类型选了固定大小之外的奇怪格式。挪到 SSD 上、把磁盘设为「动态分配」,体验会好很多。
内存给的太小也会导致卡顿,尤其是桌面版。4GB 是底线,8GB 才能舒舒服服地开浏览器和 IDE。
WSL2 的内存默认会占用宿主机最多一半的物理内存,可以在 C:\Users\<用户名>\.wslconfig 里限制:
ini复制[wsl2]
memory=4GB
processors=4
swap=2GB
改完执行 wsl --shutdown 生效。
9.3 常见问题与排查方法
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 开机直接进原系统,没有引导菜单 | GRUB 启动项未写入或顺序不对 | 进 BIOS 看启动项 | 调整启动顺序或用 Live 修复 GRUB |
| 安装器提示找不到磁盘 | SATA 模式为 RAID/RST | 查看 BIOS 存储设置 | 改为 AHCI,注意 Windows 需先处理 |
| U 盘启动后黑屏 | 显卡驱动或安全启动冲突 | 换 nomodeset 参数启动 |
启动菜单按 e 加参数再试 |
| 校验哈希不一致 | 下载中断或被篡改 | sha256sum 对比官方值 |
重新下载 |
| 虚拟机启动极慢 | 与 Hyper-V 冲突 | 检查 Windows 功能 | 关闭 Hyper-V 或换 VMware |
WSL 报 WslRegisterDistribution failed |
虚拟化未开或组件缺失 | wsl --status |
开虚拟化、wsl --update |
| SSH 连不上 | 服务未启动或防火墙 | systemctl status ssh |
启动服务、放行端口 |
sudo 报用户不在 sudoers |
用户组配置错误 | groups |
用 root 执行 usermod -aG sudo |
| 软件源更新报 GPG 错误 | 源地址与发行版版本不匹配 | 检查源文件 | 换回官方源或对应版本镜像 |
| 磁盘空间莫名减少 | 日志、缓存、Docker 镜像 | du 逐层排查 |
清理 journalctl --vacuum-size=200M |
| 时间总是差几个小时 | 时区或 NTP 未配置 | timedatectl |
设置时区并开启 NTP |
| 中文显示成方块 | 缺少中文字体 | 查看已装字体 | 装 fonts-noto-cjk 等字体包 |
再补两个高频场景的具体处理。
sudo 把自己锁在外面了怎么办? 用单用户模式或者 Live 环境挂载根分区,chroot 进去改 /etc/sudoers。如果只是某个用户不在 sudo 组,用 su - 切到 root(前提是知道 root 密码)再执行 usermod -aG sudo 用户名。
GRUB 引导坏了怎么办? 用同一版本的 Live U 盘启动,找到根分区挂载,然后 chroot 修复:
bash复制sudo mount /dev/sdaX /mnt
sudo mount /dev/sdaY /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install /dev/sda
update-grub
exit
设备名要按你实际的磁盘和分区替换,/dev/sdaX 是根分区,/dev/sdaY 是 EFI 分区。这条命令执行完通常就能恢复引导,但如果分区结构本身被破坏了,还是得重装。
10. 最佳实践与下一步
最后整理一份我会坚持执行的清单。这些做法不是「更规范」,而是真的能帮你省时间、少踩坑。
第一条,先试 Live 模式再决定装不装。 从 U 盘启动进 Live 桌面,把 Wi-Fi、蓝牙、声卡、触控板、外接显示器挨个试一遍。硬件兼容性是这个发行版装上去之后最难改的部分,提前验证比事后救火划算得多。
第二条,虚拟机打快照,物理机做备份。 虚拟机装完就打快照,之后随便折腾;物理机装之前把数据备份到外部磁盘,装完之后用 rsync 或 timeshift 做系统快照。数据丢一次的代价,远大于备份花的时间。
第三条,只在官方源换镜像,不装来路不明的包。 系统镜像从官方站点下载并校验哈希,软件从发行版仓库安装,第三方软件优先用官方仓库或官方发布的二进制包。所谓「附安装包」的第三方渠道版本,能不用就不用——你无法验证它里面有什么。
第四条,日常不用 root,SSH 用密钥。 这条是安全底线,不是可选项。服务器暴露在网络上,密码登录被撞库只是时间问题。
第五条,把配置写成脚本,不要靠记忆。 换一台机器就要重新配一遍环境,把命令写进 init-dev.sh,把配置写进 dotfiles 仓库,下次装系统十分钟就能恢复。
第六条,双系统操作前先查你这台机器。 不同品牌的 BIOS 设置名称、SATA 模式、Secure Boot 行为都不一样,网上搜「品牌 + 型号 + 安装 Linux」通常能找到具体的踩坑记录,比通用教程有用。
最先应该验证的三件事:能不能正常联网(ping 一个 IP 和一个域名分别试),能不能正常更新软件源(apt update 不报错),能不能正常重启后进系统(别装完就跑,先重启一次确认引导没问题)。这三个都过了,剩下的都是锦上添花。
最容易踩的坑按出现频率排:磁盘选错导致误格式化、SATA 模式为 RAID 导致找不到磁盘、EFI 分区被格式化导致原系统起不来、WSL2 把项目放在 /mnt/c 下导致慢到怀疑人生、虚拟机没装增强功能导致体验极差。这五个占了新手问题的绝大多数。
值得继续扩展的方向:如果这台机器要长期当服务器,下一步学 systemd 服务管理和 ufw/firewalld 防火墙配置;如果要做开发,把 dotfiles、SSH 配置、容器镜像一起版本化管理;如果要跑 AI 推理或模型训练,重点转到 NVIDIA 驱动版本、CUDA 工具链和显存监控上,这套环境和桌面环境的需求完全不是一回事。
装 Linux 这件事本身不难,难的是遇到问题时不知道从哪查。建议把这篇收藏一下,遇到「找不到磁盘」「没引导菜单」「连不上 SSH」的时候对照第 9 节的排查表过一遍,大部分问题五分钟内能定位。
