ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Ubuntu手动分区完全指南:/boot、swap与/home的独立划分与容量分配

Ubuntu手动分区完全指南:/boot、swap与/home的独立划分与容量分配 简介这是一份面向Linux初学者与希望摆脱自动分区的Ubuntu安装者的PDF教程围绕安装Ubuntu时最棘手、也最关键的硬盘分区环节展开。内容首先讲清IDE、SCSI、SATA三类硬盘在Linux中的设备命名规则hd/sd、sda/sdb再给出500G-1000G普通硬盘与虚拟机小硬盘两套分区方案涵盖根目录、swap、/boot、/tmp、/home等挂载点的大小建议与ext4格式选择并解释主分区、扩展分区、逻辑分区的关系及“3个主分区1个扩展分区”的合理布局。资源为单个PDF文件共234KB内容精炼、图文式讲解适合安装前快速查阅。这份教程已有13462人学习依照其中的手动分区思路操作可减少系统安装失败与数据丢失风险也能为后续服务器或开发环境的分区规划提供参考。1. Ubuntu Linux 硬盘分区别再把系统盘和数据盘绑在一起网上绝大多数 Ubuntu 安装教程到了分区界面都会让你直接选“清除整个硬盘并安装Ubuntu”。对于只想快速进系统的场景这个选项确实省事但我拆过的机器里凡是这么装完又用了一两年的不少在升级内核或重装系统时翻了车/home 和 / 全挤在同一个分区系统一崩个人数据跟着遭殃。手动分区只多花二十分钟却能把系统、交换空间、用户数据分开存放后面重装、扩容都有后悔药可吃。这篇笔记就讲怎么在 Ubuntu 安装向导里用“其它”选项把 /boot、swap、/、/tmp、/home 分别建出来并给出物理机和虚拟机两套容量分配方案。2. 分区前必须懂的设备名与分区规则sda、sda1、sda5 的含义手动分区踩坑八成是没搞懂设备名和分区编号的规则。这一章先把规则捋清楚后面在安装器里操作才不容易选错盘、选错分区。2.1 为什么 Linux 里硬盘叫 sda 而不是 C 盘Windows 用户第一次打开 Ubuntu 的磁盘工具看到 /dev/sda 这种名字多半会愣一下。这里的 sda 不是某个软件的缩写而是 Linux 内核给 SATA/SCSI 硬盘分配的块设备名。传统 IDE 硬盘在 Linux 里叫 hda、hdb因为 IDE 控制器用的是 hd* 驱动。SCSI 和 SATA 硬盘则统一叫 sd*也就是 sda、sdb、sdc 这类名字。SATA 硬盘虽然物理接口和 SCSI 完全不同但它在 Linux 内核里仍然走 SCSI 命令集所以也被识别成 sd 设备。现在 IDE 硬盘基本被淘汰你在新机器上看到的 SATA 硬盘大多对应 sda、sdb如果是 NVMe 固态设备名会变成 nvme0n1、nvme0n2这是另一套命名。设备名的规律很简单第一块 SATA 硬盘是 sda第二块是 sdb依此类推。如果你机箱里接了两块硬盘安装器会让你在分区前先确认容量和型号千万别只看盘符就动手。BIOS 里的启动顺序变了sda 和 sdb 也可能互换这是物理顺序和逻辑顺序不一致导致的不是驱动出错。2.2 四个主分区的上限是怎么来的在传统的 MBR 分区表下一块硬盘最多只能有 4 个主分区。这个限制不是 Linux 定的而是 MBR 的布局决定的分区表里只有 4 个表项每个表项指向一个主分区的起始位置和长度。想建第 5 个分区就必须从这 4 个表项里让出一个把剩余空间全部划成扩展分区再在扩展分区内部切出逻辑分区。所以“最多 3 个主分区 1 个扩展分区”是 MBR 硬盘上最合理的策略。Windows 系统需要一个主分区作为激活分区来启动Ubuntu 的 /boot 通常也放在主分区里剩下的空间全部交给扩展分区再在扩展分区里细分逻辑分区。这样既不浪费主分区名额又能获得足够多的分区数量。有一点要提醒如果你用的是 2012 年左右的老机器或者 BIOS 是传统 Legacy 模式上面这套规则完全适用。如果你的电脑是 UEFI 启动、GPT 分区表主分区数量限制基本不存在了。但很多双系统安装教程仍然沿用 3 主分区的思路因为这样兼容性最好也方便在不同固件模式下切换。2.3 sda5 为什么表示逻辑分区Linux 对 MBR 硬盘的分区编号有固定约定主分区占 sda1 到 sda4逻辑分区从 sda5 开始排。即使你只建了一个主分区扩展分区里的第一个逻辑分区也是 sda5不会因为前面有空位就把编号补到 2 或 3。一块 MBR 硬盘最多能有 16 个分区也就是 4 个主分区加 12 个逻辑分区。这里有一个常见的误解扩展分区本身占用一个设备名通常是 sda4但它不能直接挂载使用。能写数据的是扩展分区内部的逻辑分区比如 sda5、sda6、sda7。在安装器里创建分区时如果你选择类型为“逻辑分区”生成的分区编号会自动从 5 开始。看到 sda5 后面的容量就应该意识到这块盘还有扩展分区层面的结构存在。用 fdisk 查看分区表时如果是 MBR 格式你会看到类似“/dev/sda1 *”、“/dev/sda2 Extended”这样的输出带 Extended 的就是扩展分区。2.4 认识挂载点目录和分区是两回事Windows 里分区对应盘符 C、D、ELinux 则把分区挂载到目录上。根分区挂到 //home 分区挂到 /home/boot 分区挂到 /boot。你可以把挂载理解成一个分区“嵌入”到目录树里的动作挂载点就是它出现在文件系统里的位置。Ubuntu 安装器要求至少给一个分区指定挂载点 /否则会提示没有根文件系统。这台服务器上常见的挂载点对应关系如下挂载点典型分区设备用途/sda2根目录装系统文件和软件/bootsda1内核 vmlinuz、initrd.img 和 GRUB 引导文件swapsda5交换空间虚拟内存/tmpsda6系统临时文件/homesda7用户工作目录和个人配置文件挂载点一旦写错后果比较隐蔽。比如你把 /home 挂载点误填成 /root那么用户登录后的家目录会落在根目录分区下的 /root 里重装系统时你以为是独立分区实际上它跟根分区绑在一起格式化根分区时数据就没了。手动分区后的界面一定要核对每个设备的挂载点符合预期再点“现在安装”。3. 两套推荐的 Ubuntu 分区容量方案物理机与虚拟机的差异容量分配没有唯一标准但要给一个“最合理”还是要按机器用途分开看。下面是物理机和虚拟机两套方案磁盘大小和内存配置不同分区比例完全不同。3.1 物理机 500G-1T 硬盘怎么分如果你在物理机上装 Ubuntu硬盘普遍是 500G 到 1T这时候分区可以稍微放得开一些。推荐方案如下挂载点建议大小格式描述/150G-200Gext4根目录包含系统文件和大部分软件swap物理内存 2 倍或等于物理内存swap交换空间相当于虚拟内存/boot1G 左右ext4内核与引导管理器文件/tmp5G 左右ext4系统临时文件重启后清空/home剩余全部ext4用户工作目录与个人配置为什么根目录要 150G 起步因为 Ubuntu 系统本身、/usr 下的软件、/var 下的日志都会往根分区里写。如果只给 20G装完系统加几个大型软件几个月后就会告警。/boot 给 1G 是现在的做法老教程里写的 128MB 只能保证装得下内核更新几次后旧内核文件不会自动清理很容易占满。你可以在系统里手动删除旧内核但不如一开始就给足空间。/tmp 给 5G主要是给编译缓存、软件包解压临时文件用的。如果你要跑服务器某些服务会把会话文件写进 /tmp给 5G 比较稳妥。真正吃容量的是 /home剩余空间全给它日常下载、项目代码、个人数据都放这里。以后系统坏了重装只要安装器里把 /home 分区的挂载点重新指定为 /home并且不勾选格式化文件就都还在。3.2 虚拟机或小硬盘100G 和 4G 内存的压缩配置虚拟机是另一番场景。我一般在 VirtualBox 或 VMware 里装 Ubuntu系统盘只分配 20G-50G内存也只有 2G-4G。这种情况下照搬物理机方案会把虚拟磁盘占得满满当当分完区就剩不下多少空间。压缩后的推荐配置如下挂载点建议大小格式描述/10G-20Gext4根目录swap小于 2048Mswap交换空间配合 2G-4G 内存/boot200M-500Mext4内核与引导文件/tmp5G 左右ext4系统临时文件/home尽量大ext4用户工作目录这里有一个容易踩的坑虚拟机里创建新分区时默认起始位置可能不是在磁盘开头。如果你为 /boot 选了“空间起始位置”继续建 swap 时 Ubuntu 安装器会把剩余空间当成可用空间逻辑是对的。但如果你先建了 /home 把大部分空间占了再回头建 swap就会提示空间不足。所以虚拟机里分区顺序建议是先建 /boot再建 swap然后建 /最后把剩余空间给 /home。3.3 swap 大小的经验值不是一成不变关于 swap老教程里最常见的说法是物理内存的两倍。这个经验来自内存普遍小于 4G 的时代现在不太适用了。我一般这样判断物理内存 1G-4Gswap 给物理内存的两倍物理内存 8G-16Gswap 等于物理内存或者物理内存加 2G物理内存超过 16Gswap 甚至可以不给改用 swap 文件或 zram。Ubuntu 桌面版在内存充足时会优先使用物理内存swap 几乎不参与给太大反而浪费磁盘。如果你在安装时没分配 swap 分区也不用因此重装。Ubuntu 支持事后用 swap 文件补救做法是在根分区创建一个文件并格式化为 swap然后挂载。但要注意系统休眠hibernate功能依赖 swap 分区且要求 swap 容量至少等于物理内存所以需要休眠功能的笔记本swap 分区宁可给大一点也不能省。4. Ubuntu 手动分区实操从安装向导的“其它”选项到写盘这一章以 Ubuntu 安装器的手动分区界面为例逐步走一遍创建 /boot、swap、/tmp、/home 分区的过程。界面文字可能随版本略有差异但逻辑一致。4.1 进入安装向导的分区界面选择“其它”安装 Ubuntu 启动到“安装类型”这一步你会看到两个主要选项一个是“清除整个硬盘并安装 Ubuntu”另一个是“其它”。选择“其它”后点击“继续”就会进入手动分区界面。这个界面会列出当前硬盘的现有分区以及顶部一行的设备列表比如 /dev/sda。如果你在虚拟机上安装看到的通常是一块未分区的硬盘容量 20G。这时界面里会显示一整块“空闲空间”。如果你在物理机上安装且硬盘里已有 Windows你会看到现有的 NTFS 分区和空闲空间。我的习惯是如果这块盘不需要保留数据先把所有现有分区删除再从空闲空间开始建。如果还有数据要留千万别点删除直接在空闲空间上操作。4.2 先建 /boot主分区还是逻辑分区选中空闲空间点击“添加”按钮会弹出“创建新分区”对话框。分区类型选择“主分区”挂载点选择 /boot新建分区容量建议 1G格式可以是 ext4。点击“确定”后界面里会出现一个挂载点为 /boot 的主分区。这里要说明老教程里 /boot 只给 128MB在当年内核体积小的时候确实够用。现在 Ubuntu 的内核和 initrd 文件加起来虽然不大但系统更新时会保留旧内核文件给 1G 是减少后续维护成本。分区类型为什么选主分区因为 GRUB 引导器对位于磁盘前部的分区兼容性最好而且 MBR 下的主分区名额本来就够用。如果整块盘是 GPT 格式这个限制不存在你可以按 UEFI 的规范建 EFI 系统分区而不是传统的 /boot。但在 Legacy BIOS 启动模式下/boot 主分区是最稳的。4.3 再建 swap用于选择“交换空间”继续选中剩余的“空闲空间”点击“添加”。这次分区类型选择“逻辑分区”“用于”下拉菜单选择“交换空间”容量按内存来。以 4G 内存为例swap 可以给 2048M。点击“确定”后会出现一个没有挂载点、类型为 swap 的分区。注意swap 分区在安装器里不显示挂载点它的“挂载点”字段显示为“交换空间”。如果你看到某个分区类型是“swap”但格式化为 ext4那一定是选错了。创建 swap 时不需要指定挂载点也不需要选择格式为 ext4它由安装器自动处理。4.4 按顺序创建 /、/tmp、/home 挂载点剩余空间里先建根分区。选中空闲空间点击“添加”分区类型选逻辑分区挂载点选 /容量给 10G-20G虚拟机或 150G-200G物理机格式 ext4。接着再为 /tmp 创建 5G 的逻辑分区挂载点填 /tmp。最后把剩余所有空间给 /home挂载点填 /home。创建 /home 时容量可以不填直接让它把剩余空间全部使用安装器会在界面上自动计算大小。这一步要留意“空间起始位置”的选项如果你的磁盘还留有给别的系统用的空间就必须手动指定起始位置否则可能与已有分区冲突。全部建完后手动分区界面会列出 4 到 5 个分区分别对应 /boot、swap、/、/tmp、/home。4.5 写盘前的最后检查引导器位置与分区格式确认点击“现在安装”之前安装器会提示“您尚未指定根文件系统”或类似信息请先确认根分区确实存在且挂载点为 /。如果少了这一步安装器会拒绝继续。还要检查引导器安装位置。在安装器底部或“引导程序安装到...”选项里默认通常是 /dev/sda。这里不是让你选择 sda1 或 sda2而是要写到整块磁盘的设备名比如 /dev/sda。如果你选成了 /dev/sda1GRUB 可能装到分区内启动时容易出问题。双系统场景下最好让 GRUB 写到启动磁盘的 MBR 上也就是 /dev/sda。确认无误后点击“现在安装”安装器会弹出提示说“您即将写入磁盘”选择“继续”后才真正开始格式化。这一步做好后面启动就不会出现 GRUB rescue 的尴尬。5. 安装分区避坑指南五次翻车现场与对应的解决思路这一章写的是我实际遇到过的问题每一条都能在手动分区时踩到。5.1 新电脑 UEFI 启动/boot 分区建了却引导不了现象在 UEFI 启动的笔记本电脑上安装 Ubuntu手动分区时只建了 /boot、/、/home系统装完重启直接进入 UEFI 设置界面找不到 Ubuntu 启动项。原因UEFI 固件要求 GPT 分区表且需要一个 FAT 格式的 EFI 系统分区挂载到 /boot/efi。你只建了 ext4 的 /boot没有创建 EFI 分区固件里就没有可用的引导文件。解决如果你安装时选择的是 Legacy BIOS 模式可以忽略这个问题。但如果机器是 UEFI 启动需要在手动分区界面里创建一个大小约 100M-500M 的 EFI 系统分区分区类型选择“EFI 系统分区”格式为 FAT32挂载点选 /boot/efi。实际安装时建议先确认 BIOS 的启动模式是 UEFI 还是 Legacy再决定分区方案。这个坑在新笔记本上非常常见是“光建 /boot 不够”的典型案例。5.2 /boot 容量太小内核更新几次就满现象系统更新时提示“/boot 空间不足”安装新内核失败旧内核还删不掉。重启后看到的可能还是旧内核版本。原因手动分区时 /boot 只给了 128MB 或 200MB。Ubuntu 每次内核更新都会生成新的 vmlinuz 和 initrd.img 文件旧内核文件不会自动清理。几次更新后/boot 分区就满了。解决安装时把 /boot 给到 1G。已经装满的情况下可以用 sudo apt autoremove 清理旧内核或者手动删除 /boot 下的旧版本文件。执行前先用 uname -r 查看当前内核版本只删比它老的。如果你长期不维护建议检查 /boot 剩余空间低于 50M 就尽早清理。这个教训也让我在后续所有手动分区里一律把 /boot 列为 1G。5.3 swap 分区建太大磁盘空间浪费严重现象给 16G 内存的机器分了 32G 的 swap日常使用中 swap 占用始终是 0白白吃掉 32G 磁盘。原因swap 是物理内存不够时的兜底。内存充足时Linux 几乎不会使用 swap除非你设置了很低的 swappiness。老教程说的“物理内存两倍”对低内存机器有意义对 16G 以上内存的机器就是浪费。解决物理内存超过 8G 时swap 给 4G-8G 足够。如果你需要休眠swap 至少等于物理内存。如果安装时不留 swap也可以后续用 swap 文件动态扩容不必重新分区。我从那以后在内存大的机器上都直接把 swap 容量减到内存的一半甚至忽略系统运行没有区别。5.4 手动分区时把 /home 和 / 都设在同一个分区现象安装时图省事只建了一个 / 分区和一个 swap 分区然后把 /home 的挂载点在同一个分区里又设了一遍。系统重装时选择格式化根分区结果 /home 里的数据全部清空。原因挂载点是目录和分区的映射关系。如果 /home 和 / 指向同一个分区就无法通过分区隔离来保护数据。手动分区界面允许你为同一个分区设置多个挂载点但这样做的意义会失去。解决把 /home 单独建成分区容量给大。重装系统时选择 /home 分区并指定挂载点但取消“格式化”复选框根分区照常格式化数据就保留下来了。这也是手动分区最大的收益系统坏到无法启动重装不影响个人文件。5.5 安装器提示“没有根文件系统”或“引导器安装失败”现象手动分区全部建完点“现在安装”时弹出错误说未指定根文件系统或者引导器无法安装到硬盘。原因创建分区时挂载点 / 没有正确填写或者分区类型没有选为可用于系统安装。引导器安装失败则可能是因为你选错了目标设备写到了分区而非整块磁盘。解决回退到手动分区界面逐项检查必须有挂载点为 / 的分区swap 类型正确/boot 存在。引导器安装目标选 /dev/sda而不是 /dev/sda1。如果界面里显示“引导器安装到”下拉菜单选择整块磁盘的名称不带数字后缀。确认后再重新点击“现在安装”。这个检查我每次都会做一遍因为安装器有时会把默认引导器目标指向 U 盘或其他可移动设备装完拔掉 U 盘就找不到系统了。6. 装完不是结束用三条命令验证分区布局与后续调整系统装完进入桌面后我喜欢先打开终端执行三条命令确认分区真的按预期落位了。第一条是 lsblk它以树形结构显示块设备、挂载点和容量。执行后会看到类似下面的输出lsblk输出里sda1 挂载在 /bootsda2 是根分区sda5 是 swapsda6 是 /home。每一行的 MOUNTPOINTS 列会显示挂载点。如果你发现 /home 那行没有挂载点说明安装时可能漏建了分区。第二条是 df -h它显示文件系统空间使用情况。执行后重点看 Use% 这一列根分区和 /home 的使用率都不应该超过 80%。如果根分区已经到 90%说明安装时容量给小了趁数据还少用 GParted 调整一下还来得及。df -h第三条是 blkid它显示分区的 UUID 和文件系统类型。在以后写 /etc/fstab 做开机自动挂载时会用到这里输出的 UUID 值。blkid关于后续调整我想多说一句GParted 可以在图形界面里拖动分区大小但调整分区必须从后往前且不能动正在使用的分区。扩容 /home 时要先在 GParted 里卸载它再调整大小。如果你的根分区和 /home 之间的位置比较特殊调整就会受空间连续性限制。所以安装时把 /home 放在最后是有讲究的这样后续扩容最容易。我从那以后每次装完 Ubuntu 都会强制走一遍 lsblk 和 df -h再顺手看一下 /boot 的剩余空间。养成这个习惯之后因为分区问题重装的次数基本为零。这套手动分区流程虽然比自动分区多花几分钟但换来的数据安全和维护便利性长期来看是值得的。希望帮到你。本文还有配套的精品资源点击获取
返回列表