Ubuntu 20.04 磁盘分区实战指南:从原理到双系统安装
1. 项目概述:为什么磁盘分区是Ubuntu安装的“定海神针”
如果你正准备在实体机或虚拟机上安装Ubuntu 20.04,并且已经走到了选择“安装类型”或“磁盘分区”这一步,那么恭喜你,你正站在整个安装过程中最关键、也最容易让人犹豫不决的十字路口。很多新手朋友在这里会直接选择“清除整个磁盘并安装Ubuntu”或者“与其它系统共存”,图个方便。但作为一名折腾过无数次Linux的老兵,我必须告诉你,跳过手动分区,就等于放弃了对未来系统运行效率和数据安全的一次重要规划。
Ubuntu 20.04的安装过程本身很友好,图形化界面引导清晰。但“磁盘分区”这一步,恰恰是图形界面之下,决定你系统底层架构的“隐形之手”。它不仅仅是告诉安装程序“把系统放哪儿”,更是为你日后的开发环境、多系统启动、数据备份乃至系统性能,提前划好了地盘。我看到很多朋友安装后,根目录/空间很快被塞满,或者/home目录重装系统时不得不格式化导致数据丢失,这些痛点,90%都能在安装时通过合理的分区方案避免。
简单来说,磁盘分区就是在你的物理硬盘(或虚拟磁盘)上,逻辑划分出几个独立的“房间”。Ubuntu安装程序会把这些“房间”(分区)挂载到文件系统的不同路径下,比如/(根目录)、/home(用户家目录)、swap(交换空间)等。不同的分区方案,对应着不同的使用场景和风险控制策略。今天,我就以Ubuntu 20.04为例,抛开那些让人眼花缭乱的自动选项,带你一步步走通手动磁盘分区的全过程,并解释清楚每一个选择背后的“为什么”。无论你是打算安装纯Ubuntu、Windows+Ubuntu双系统,还是在虚拟机里体验,这套思路都适用。
2. 分区前的核心决策:确定你的分区策略
在动手点击“新建分区表”之前,我们得先想好策略。分区不是拍脑袋决定的,它取决于你的硬盘大小、用途以及你对数据管理的态度。这里我提供三种最主流、经过实战检验的方案,你可以对号入座。
2.1 方案一:极简双分区方案(适合新手/小容量硬盘/虚拟机)
这是最基础、最不容易出错的分区方式,特别适合首次安装、硬盘容量较小(比如120GB以下)或者在虚拟机中快速搭建一个纯净测试环境的场景。
分区结构:
/(根分区): 分配绝大部分硬盘空间,例如100GB中的90GB。系统所有的核心文件、应用程序、配置文件都将安装在这里。swap(交换分区): 分配一部分空间作为虚拟内存。当物理内存(RAM)不足时,系统会把暂时不用的数据挪到这里。
为什么这么分?对于新手和小容量场景,核心诉求是简单、够用。把所有东西放在一个
/分区下,管理起来直观,不用担心某个分区爆满而另一个分区空闲的问题。swap分区则是Linux系统的传统配置,虽然现在也可以使用swap文件,但在安装时创建一个独立的swap分区仍然是兼容性和性能最稳妥的选择。注意事项: 这个方案最大的缺点是缺乏灵活性。一旦你需要重装系统,为了得到一个干净的系统,通常需要格式化
/分区,这意味着你存放在/home(默认在/分区下)里的个人配置文件和下载的数据会全部丢失。因此,仅推荐给那些打算“玩一玩就重装”或者有完善外部备份习惯的用户。
2.2 方案二:经典三分区方案(推荐大多数桌面用户)
这是我最推荐给个人桌面用户、开发者使用的方案。它在简单和灵活之间取得了很好的平衡,也是社区里最普遍的实践。
分区结构:
/(根分区): 分配30-50GB。用于安装操作系统和大部分应用程序。/home(家目录分区): 分配剩余的大部分空间,比如200GB硬盘中的150GB。用于存放用户个人数据、文档、下载、桌面文件以及大部分应用程序的配置文件(如.config,.vscode等)。swap(交换分区): 分配与物理内存相当或略大的空间(例如,8GB或16GB内存,就分配8GB或16GB的swap)。
为什么这么分?其核心优势在于数据与系统分离。
/home分区独立后,你的个人数据、开发项目、浏览器书签、主题配置等都安全地存放在这里。未来当你需要升级Ubuntu版本(比如从20.04到22.04)或者因为某些原因需要重装系统时,你可以选择只格式化/分区,而保留/home分区。重装完成后,只需将/home分区重新挂载,你所有的个人环境和数据瞬间“复活”,几乎无需重新配置。这节省的时间是以天为单位的。swap分区的大小设置与内存相当,是为了在系统休眠(Hibernate)时能够完整保存内存镜像。
2.3 方案三:进阶多分区方案(适合高级用户/服务器/特定需求)
这个方案更精细化,通常用于对系统稳定性、性能或管理有更高要求的场景,比如服务器、长期不重启的工作站,或者有特殊I/O优化需求的用户。
分区结构:
/boot或EFI系统分区: 对于UEFI启动的电脑,必须有一个EFI系统分区(ESP),通常分配100-500MB,格式化为FAT32。对于老式BIOS或某些特殊需求,可能会单独分一个/boot分区(1GB左右)。/(根分区): 20-30GB。只放最核心的系统文件。/home(家目录分区): 同方案二,分配大量空间。/var(可变数据分区): 单独分区,分配10-20GB或更多。这里存放经常变化的文件,如日志、缓存、数据库文件。单独分区可以防止日志文件暴涨塞满根分区导致系统崩溃。swap(交换分区): 同前。- (可选)
/tmp(临时文件分区): 单独分区,分配几个GB。所有用户和程序产生的临时文件在这里,单独分区可以提升安全性(例如挂载时使用noexec选项防止执行恶意脚本)。
为什么这么分?这是一种“各司其职”的防御性策略。通过将频繁写入(
/var,/tmp)或核心启动(/boot)的目录独立出来,可以:- 隔离风险:避免某个目录的异常增长(比如
/var/log下的日志)影响整个系统的运行。 - 性能优化:理论上可以为不同访问特性的分区选择不同的文件系统或挂载参数(虽然对普通SSD意义不大)。
- 便于管理:可以针对
/var这样的分区设置更严格的备份或监控策略。
- 隔离风险:避免某个目录的异常增长(比如
对于99%的桌面用户,方案二(/,/home,swap)是最佳选择。下文的所有实操步骤,也将以这个方案为基础进行演示。
3. 实操准备与关键概念扫盲
在进入安装界面点击“手动分区”之前,我们还需要做好两件事:准备工作和概念理解。这能让你在操作时心里有底,不慌不忙。
3.1 必要的准备工作
- 备份!备份!备份!: 这是进行磁盘分区操作前的铁律。如果你是在实体机上安装,特别是要调整现有Windows分区做双系统,请务必确保重要数据已备份至移动硬盘、网盘或其他安全位置。分区操作有极低概率导致数据丢失,防患于未然。
- 准备安装介质: 你已经下载了Ubuntu 20.04 LTS的ISO镜像,并用Rufus(Windows)或
dd命令(Linux/Mac)将其制作成了可启动的U盘。 - 了解你的启动模式: 重启电脑,进入BIOS/UEFI设置界面(通常是按F2、Del、F12等键),确认你的电脑是UEFI启动还是Legacy BIOS启动。这将直接影响分区表中是否需要
EFI系统分区。2012年以后的主流电脑基本都是UEFI。在安装时,Ubuntu安装程序通常也能自动识别并给出对应选项。 - 规划好空间: 如果是双系统,你需要在Windows的“磁盘管理”中提前压缩出一个未分配空间给Ubuntu使用。建议至少留出50GB以上,如果打算用于开发,100GB以上会更舒适。
3.2 必须搞懂的三个核心概念
在分区界面,你会反复遇到这三个词,理解它们至关重要。
分区表: 可以理解为硬盘的“总目录”或“分区地图”。它记录了硬盘上有多少个分区、每个分区从哪里开始、到哪里结束、是什么类型。主要有两种:
- MBR: 老标准,最多支持4个主分区,或3个主分区+1个扩展分区(扩展分区内可再分多个逻辑分区)。支持最大2TB硬盘。对应Legacy BIOS启动。
- GPT: 新标准,支持几乎无限个分区,支持大于2TB的硬盘。必须对应UEFI启动。对于新电脑和新硬盘,无脑选GPT。 在安装程序中,如果你选择在一个全新的空硬盘上操作,第一步往往就是让你选择创建新的分区表,类型选GPT即可。
文件系统: 分区格式化后所用的“数据结构”,决定了数据在分区内如何存储、读取。Ubuntu Linux下常用的有:
- ext4:默认且推荐。它是ext3的升级版,在稳定性、性能和兼容性上取得了最佳平衡,是根分区和家目录分区的首选。
- swap:交换分区专用。它不是用来存文件的,而是作为内存的扩展。安装程序选择“交换空间”时,会自动使用这个类型。
- FAT32/NTFS: 主要用于与Windows系统交换数据的分区,或者UEFI启动所必需的EFI系统分区(必须格式化为FAT32)。
- XFS/Btrfs: 更先进的文件系统,有诸如快照、压缩等高级特性,但普通用户用ext4足矣。
挂载点: 这是Linux哲学的精髓之一。它指的是将某个分区“关联”到系统目录树上的某个位置。例如,你把
sda2这个分区挂载到/home,那么以后所有对/home目录的读写,实际上都是在操作sda2分区。一个挂载点同一时间只能挂载一个分区,但一个分区可以被挂载到多个位置(不常见)。我们之前讨论的/、/home、/boot,都是挂载点。
搞清楚了这些,我们就可以启动安装程序,进入实战环节了。
4. 图文详解Ubuntu 20.04手动分区全流程
现在,假设我们已经从U盘启动,进入了Ubuntu 20.04的安装界面,并走到了“安装类型”这一步。请选择“其他选项”,点击“继续”,进入手动分区界面。
你会看到一个列表,显示了当前磁盘的所有分区。如果是全新硬盘,这里可能是空的。如果已有Windows系统,你会看到几个ntfs类型的分区。找到你事先准备好的“空闲”空间,选中它,然后点击下方的“+”号来创建新分区。
我们将按照/->swap->/home的顺序来创建。为什么先创建/?因为根分区是必须的,而且通常我们希望它从磁盘起始位置开始,理论上有一点点性能优势(可忽略)。
4.1 第一步:创建根分区/
- 选中“空闲”空间,点击“
+”。 - 在弹出的对话框中:
- 大小: 输入你计划分配给根分区的容量,例如
50000(MB),即大约50GB。计算一下:1GB = 1024MB,所以50GB = 50 * 1024 = 51200MB。我们取个整,输入50000MB(约48.8GB)足够。 - 新分区的类型: 选择“主分区”即可。对于GPT分区表,主分区和逻辑分区的区别已经很小,通常都选主分区。
- 新分区的位置: 选择“空间起始位置”。
- 用于: 选择“Ext4日志文件系统”。
- 挂载点: 点击下拉菜单,选择“/”。
- 大小: 输入你计划分配给根分区的容量,例如
- 点击“确定”。你会看到列表中新增了一个
ext4格式、挂载点为/的分区。
注意: 这里“用于”选择了
ext4,你也可以保持默认的“Ext4日志文件系统”,它们是一样的。ext4是目前最稳定、支持最好的选择,不要为了尝鲜而选择btrfs,除非你明确知道它的特性并需要它们。
4.2 第二步:创建交换分区swap
- 再次选中剩余的“空闲”空间,点击“
+”。 - 在弹出的对话框中:
- 大小: 输入你计划给
swap的空间。根据之前的原则,如果你的内存是8GB,可以输入8192(MB)。如果是16GB内存,可以输入16384(MB)。对于内存大于16GB的电脑,swap分区可以适当缩小到8GB,因为主要用途从“内存不足时顶替”变成了“支持休眠”。 - 新分区的类型: “主分区”。
- 新分区的位置: “空间起始位置”。
- 用于:这里很关键!在下拉菜单中找到并选择“交换空间”。选择此项后,“挂载点”一栏会自动变灰,因为交换分区不需要挂载点。
- 大小: 输入你计划给
- 点击“确定”。你会看到一个类型为“交换空间”的分区被创建。
4.3 第三步:创建家目录分区/home
- 选中最后剩余的“空闲”空间,点击“
+”。这次,它将占用所有剩余空间。 - 在弹出的对话框中:
- 大小: 这里可以输入具体数值,但更简单的方法是不修改,默认值就是剩余的全部空间。直接留空或使用默认最大值即可。
- 新分区的类型: “主分区”。
- 新分区的位置: “空间起始位置”。
- 用于: “Ext4日志文件系统”。
- 挂载点: 选择“/home”。
- 点击“确定”。
至此,三个核心分区创建完毕。你的分区列表应该看起来类似这样(假设在一个100GB的空闲空间上操作):
/dev/sda1:ext4/50GB/dev/sda2:swap8GB/dev/sda3:ext4/home42GB
4.4 第四步:关键设置与安装启动引导器
分区创建完成后,还有两个至关重要的设置:
- 格式化选项: 对于你新建的
/和/home分区,安装程序默认会勾选“格式化”选项。这是正确的,必须格式化,否则无法在上面安装系统。请确保这两个分区的复选框是被选中的。swap分区会自动处理,无需关心。 - 安装启动引导器的设备: 这是整个安装过程中最容易出错的一步!在分区界面的最下方,有一个“设备用于安装启动引导器”的下拉菜单。
- 对于UEFI启动的电脑: 你必须选择那个EFI系统分区。这个分区可能在你之前为Windows创建时就已经存在(类型为
efi或fat32,大小约100MB)。它通常被识别为/dev/sda1或/dev/nvme0n1p1。千万不要选择整个硬盘(如/dev/sda)或你的Ubuntu根分区。必须精确选择那个EFI分区。如果是在全新硬盘上安装,你需要先创建一个EFI系统分区(大小500MB,FAT32格式,挂载点选择/boot/efi)。 - 对于老式Legacy BIOS启动的电脑: 这里应该选择你的整个硬盘,例如
/dev/sda(不含数字)。启动引导器会被安装到硬盘的MBR(主引导记录)中。
- 对于UEFI启动的电脑: 你必须选择那个EFI系统分区。这个分区可能在你之前为Windows创建时就已经存在(类型为
如何判断?一个简单的技巧:观察分区列表。如果能看到一个fat32格式、挂载点可能显示为/boot/efi的小分区(几百MB),那就是UEFI模式,选它。如果看不到,且分区表类型可能是MSDOS(MBR),那就是Legacy模式,选整个硬盘。
确认以上所有设置无误后,点击“现在安装”,系统会弹出最后的确认摘要,再次核对分区信息,点击“继续”,真正的文件复制和安装过程就开始了。此时,你可以去喝杯咖啡,剩下的工作交给安装程序。
5. 双系统与虚拟机分区的特殊考量
我们的核心三分区方案是通用的,但在双系统和虚拟机这两种常见场景下,还有一些细节需要特别注意。
5.1 与Windows组成双系统
在装有Windows的电脑上安装Ubuntu,目标是共享硬盘,互不干扰,并能通过GRUB菜单选择启动哪个系统。
分区阶段的关键区别:
- 不要动Windows分区: 在手动分区界面,你会看到很多
ntfs类型的分区,其中最大的那个通常是Windows的C:盘(系统盘),还有其他可能是D:、E:盘。绝对不要删除或格式化这些分区,除非你确定里面没有需要的数据。我们只操作你事先在Windows磁盘管理里压缩出来的那块“空闲”空间。 - 利用现有EFI分区: 如前所述,UEFI电脑的Windows已经创建了一个EFI系统分区。在Ubuntu安装时,不要再新建一个EFI分区。你只需要在“安装启动引导器”时,选择这个现有的EFI分区即可。Ubuntu的GRUB引导程序会把自己添加到这个分区里,并自动探测到Windows的启动项,从而生成双系统菜单。
- 分区方案依旧: 在“空闲”空间里,按照
/、swap、/home的顺序创建分区,步骤与上文完全一致。
- 不要动Windows分区: 在手动分区界面,你会看到很多
安装后可能的问题: 有时安装完重启,会直接进入Windows,没有出现GRUB菜单。这通常是因为Windows的“快速启动”或“安全启动”干扰。解决方法:进入BIOS/UEFI设置,关闭“快速启动”(Fast Boot),并可以尝试暂时关闭“安全启动”(Secure Boot,安装完可以再打开)。如果还不行,可能需要进入Ubuntu Live环境(用安装U盘启动,选择“试用Ubuntu”),然后使用
boot-repair工具进行修复。
5.2 在VMware/VirtualBox虚拟机中安装
虚拟机环境更为单纯和安全,因为磁盘是虚拟的,你可以随意操作。
创建虚拟机时的磁盘设置:
- 磁盘类型: 建议选择“SCSI”或“NVMe”(如果支持),性能更好。
- 虚拟磁盘文件: 选择“将虚拟磁盘拆分成多个文件”对于在机械硬盘上移动虚拟机更方便,但性能无差异。
- 磁盘容量: 建议分配40GB以上。这里分配的是“最大容量”,实际占用会根据你系统内使用的空间动态增长(如果是动态分配)。
安装时的分区: 进入Ubuntu安装程序后,你会看到一整块“空闲”的虚拟磁盘。此时,你有两个选择:
- 使用安装程序自动分区: 直接选择“清除整个磁盘并安装Ubuntu”。虚拟机上可以这么干,因为磁盘里没有其他重要数据。安装程序会自动为你创建
/、swap和一个/boot/efi分区(如果是UEFI虚拟机)。这是最省事的方法。 - 仍然手动分区: 如果你想在虚拟机里也实践我们三分区的方案,或者为虚拟机配置更复杂的结构,完全可以进入“其他选项”进行手动分区,步骤与实体机完全一致。这对于学习分区操作是零风险的完美环境。
- 使用安装程序自动分区: 直接选择“清除整个磁盘并安装Ubuntu”。虚拟机上可以这么干,因为磁盘里没有其他重要数据。安装程序会自动为你创建
6. 分区后的检查、管理与常见问题排雷
系统安装完成并重启后,我们如何确认分区是否成功,以及日后如何管理呢?
6.1 如何验证分区与挂载结果
打开终端,输入以下命令:
df -h这个命令会以人类可读的格式(-h)显示所有已挂载文件系统的磁盘使用情况。你应该能看到类似下面的输出:
文件系统 容量 已用 可用 已用% 挂载点 /dev/sda2 46G 11G 33G 25% / /dev/sda3 196G 28G 158G 15% /home这证实了你的/和/home分区已经正确挂载,并且独立显示。
要查看更详细的分区信息,包括swap,可以使用:
sudo fdisk -l或
lsblk -flsblk -f命令会以树状图显示所有块设备及其文件系统类型和挂载点,非常直观。
6.2 分区空间不足怎么办?动态调整的实战技巧
这是使用Linux后期最常见的问题之一。假设你的/home分区空间告急,而/分区还有大量空闲。
重要警告: 在Linux中调整已在使用中的分区大小是高风险操作,尤其是缩小编小分区。强烈建议在操作前备份重要数据,并最好在Live USB环境下进行(即用Ubuntu安装U盘启动,选择“试用Ubuntu”)。
这里以使用GParted图形化工具(在Live USB环境中需手动安装gparted)为例,说明扩展/home分区的基本思路:
- 从相邻分区腾出空间: 假设
/home分区(/dev/sda3)后面紧跟着一块未分配空间,或者你可以先缩小它后面的某个分区(比如一个数据分区)来创造未分配空间。 - 取消挂载: 在GParted中,右键点击
/home分区,选择“卸载”。 - 移动/调整分区: 右键点击
/home分区,选择“调整大小/移动”。通过拖动滑块,将未分配空间合并到/home分区中。 - 应用操作: 点击GParted工具栏上的“应用所有操作”。这个过程可能需要一段时间。
更复杂的场景: 如果/home分区后面没有空闲空间,而是被其他分区挡住了,你可能需要先移动后面的分区,这非常耗时且风险更高。因此,最好的解决方案还是在初次安装时就规划好足够大的/home空间。
6.3 高频问题与故障排查实录
问题1:安装时找不到“安装启动引导器的设备”下拉菜单,或者选项是灰色的。
- 原因: 这通常意味着安装程序没有检测到任何可用的磁盘或分区表。可能你选错了磁盘,或者磁盘分区表损坏。
- 解决: 返回上一步,确认你是在正确的物理磁盘(如
/dev/sda)上操作。如果是全新硬盘,可能需要先点击“新建分区表”按钮(注意:这会清除硬盘所有数据!),创建一个GPT或MSDOS分区表,然后再创建分区。
问题2:安装完成后重启,直接黑屏或报错“GRUB rescue>”。
- 原因: 启动引导器GRUB损坏或配置错误,无法找到系统内核。
- 解决: 这是比较棘手的问题。可以尝试使用Ubuntu安装U盘启动,进入“试用Ubuntu”,然后联网打开终端,安装并运行
boot-repair工具。这是一个自动化修复GRUB的强力工具,按照其推荐设置操作,通常能解决问题。
sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair boot-repair问题3:双系统安装后,只能进入Ubuntu,看不到Windows启动项。
- 原因: GRUB没有正确探测到Windows。
- 解决: 在Ubuntu终端中,更新GRUB配置:
sudo update-grub这条命令会重新扫描所有磁盘上的操作系统并更新引导菜单。重启后通常就能看到Windows选项了。如果还不行,可能需要检查Windows的EFI分区是否正常,或者手动在
/etc/grub.d/40_custom文件中添加Windows启动项。问题4:
swap分区应该设多大?现在流行用swap文件吗?- 传统建议:
swap大小等于物理内存(RAM),以便支持休眠功能。如果内存很大(>16GB),且不考虑休眠,swap可以设为4-8GB。 - 现代趋势: 对于拥有大内存(>=16GB)的桌面系统,使用
swap文件正在成为更灵活的选择。你可以在系统安装后,随时在/分区下创建一个指定大小的文件作为交换空间,无需预先分区。优点是调整大小容易,不占用独立分区。但对于小内存或需要休眠的机器,独立的swap分区仍然是可靠的选择。在安装时分出一个swap分区,是最兼容、最省事的方法。
- 传统建议:
手动分区就像为你的数字家园绘制蓝图。初次接触可能觉得繁琐,但一旦理解其逻辑并成功实践一次,你就会深刻体会到它带来的清晰、灵活与安全感。对于Ubuntu 20.04,或者任何Linux发行版,花在分区规划上的这十几分钟,将在你未来数年的使用中持续带来回报。记住那个黄金法则:把/home独立出来,这是从“Linux用户”进阶到“会玩Linux的用户”的第一个,也是最重要的标志。
