Ubuntu Server系统安装磁盘分区方案

最近打算把家里的旧电脑利用起来,装上Ubuntu Server 24.04.3 LTS作为一个家用NAS服务器,但是给旧电脑安装系统时遇到了一些问题,遂记录下来

GPT分区与MBR分区

GPT 指的是 GUID Partition Table(全局唯一标识分区表) ,它是 UEFI 规范的一部分,用来替代传统的 MBR(Master Boot Record) 分区表格式。

由于我的硬盘是一块比较老的机械硬盘,硬盘的磁盘分区方式是MBR,主板BIOS配置引导方式是Legacy BIOS,但是目前安装系统推荐的引导和磁盘分区方式是UEFI + GPT,而且我的老主板也是支持UEFI引导的,所以这里干脆直接格式化硬盘转换为了GPT格式,BIOS里配置引导为UEFI 模式。毕竟GPT + UEFI引导有着以下诸多好处:

特性 UEFI + GPT BIOS + MBR
磁盘支持 >2TB,分区数量无限制 ≤2TB,最多 4 主分区
启动速度 快(并行初始化) 慢(串行检测硬件)
安全性 Secure Boot 防篡改 无保护,MBR 易被恶意覆盖
引导存储位置 EFI 分区(/boot/efi) MBR 第一个扇区(脆弱)
多系统支持 友好(独立 EFI 条目) 依赖 GRUB 链式加载
硬件兼容性 现代硬件必备 旧设备(2010 年前)

常见的分区方案

安装系统过程中唯一比较麻烦的步骤就是分区这一步

以上是分区步骤的配置界面,看着比较懵,需要先了解常见的分区方案传统分区和LVM分区,以上默认给的是一个LVM分区方案

传统分区

传统分区就是直接把磁盘分成几个分区,然后按照需要挂载到不同的目录,如下:

/dev/sda1 → /boot (引导分区,~512MB~1GB)

/dev/sda2 → / (系统分区)

/dev/sda3 → /home (用户数据)

/dev/sda4 → /var (日志、缓存、数据库等频繁写入)

swap → 交换分区 (内存不足时使用)

这样分区比较简单,但是有个缺点:前期要规划好大小,否则分区不足需要调整。

现在安装系统一般默认都推荐使用LVM分区方案了

LVM分区

LVM(Logical Volume Manager)把物理磁盘抽象成卷组 VG ,再切成逻辑卷 LV ,挂载成不同分区,好处是后期可动态扩容,不用担心某个分区满了。

这里要先了解LVM分区的几个概念:

  • PV (Physical Volume)
    LVM 的最底层,直接对应物理分区,比如 /dev/sda2
  • VG (Volume Group)
    卷组,把多个 PV 合成一个大存储池,比如 ubuntu-vg
  • LV (Logical Volume)
    逻辑卷,相当于虚拟分区,从 VG 里划分出来,可直接挂载到指定目录上

我的分区方案

了解了以上概念后,再来看上图的内容就能看懂了,它默认将我的整个磁盘分成了3个分区:

  1. 1G空间格式为FAT32挂在到/boot/efi
  2. 2G空间格式为ext4挂载到/boot
  3. 928G空间作为一个PV

在以这个PV新建了一个VG,然后在该VG上新建了一个LV大小使用了100G,格式为ext4挂载到根目录。

这里就有个问题了,因为它给我默认只创建了一个100G大小的LV,但是整个VG大小是928G,所以还剩下很多空间没有用上,所以这里我们必须进行调整,可以再创建一个LV命名为var-lv指定100G空间挂载到/var,也可以再加一个swap-lv分区分配内存的1~2倍大小作为虚拟内存(加不加都行,后续在系统里也可以通过swapfile增加虚拟内存),这样才算是用到了所有空间。

其实这里默认给的引导分区有点过大,如果你的磁盘空间比较紧张,可以适当编辑缩小,比如/boot/efi给512M,/boot给1G。我最终的分区方案如下:

挂载点 大小 类型 文件系统 备注
/boot/efi 1G EFI FAT32 必需(UEFI 启动)
/boot 2GB 主分区 ext4 内核与引导文件
/ 100GB LVM逻辑卷 ext4 系统及应用
/var 100GB LVM逻辑卷 ext4 数据库、Docker数据等
swap 4GB LVM逻辑卷 swap 虚拟内存
/data 剩余空间 LVM逻辑卷 ext4 业务数据存储

系统安装完后就是如下效果:

相关推荐
Britz_Kevin19 小时前
从零开始的云计算生活——第五十九天,基于Jenkins自动打包并部署Tomcat环境
运维·jenkins·生活
今晚务必早点睡19 小时前
从零到上线:Docker、Docker Compose 与 Runtime 安装部署全指南(含实战示例与应用场景)
运维·docker·容器
snowfoootball20 小时前
(自用)Linux 常用命令自查文档
linux·运维·服务器
Web极客码20 小时前
在Ubuntu 20.04的服务器上查找的服务器的IP地址
服务器·tcp/ip·ubuntu
墨染 殇雪20 小时前
webshell及冰蝎双击无法打开?
运维·服务器·webshell·webshell管理工具
R-G-B20 小时前
Linux常见命令总结 合集二:基本命令、目录操作命令、文件操作命令、压缩文件操作、查找命令、权限命令、其他命令
linux·基本命令·目录操作命令·linux常见命令·压缩文件操作·权限命令·查找命令
Chukai12320 小时前
Windows 和 Linux 系统下修改防火墙机制开放端口
linux·运维·windows
FL162386312921 小时前
[ubuntu][C++]onnxruntime安装cpu版本后测试代码
linux·c++·ubuntu
逻辑羊驼21 小时前
VSCode+MobaXterm+X11可视化界面本地显示
运维·服务器·ubuntu·3d
fendouweiqian21 小时前
nginx 反向代理使用变量的坑
运维·nginx