当前位置: 首页 > news >正文

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

常见的分区方案

安装系统过程中唯一比较麻烦的步骤就是分区这一步
https://www.chengpei.top/upload/WechatIMG127.jpg
以上是分区步骤的配置界面,看着比较懵,需要先了解常见的分区方案传统分区和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/efi512MBEFIFAT32必需(UEFI 启动)
/boot1GB主分区ext4内核与引导文件
/100GBLVM逻辑卷ext4系统及应用
/var100GBLVM逻辑卷ext4数据库、Docker数据等
swap4GBLVM逻辑卷swap虚拟内存
/data剩余空间LVM逻辑卷ext4业务数据存储
http://www.dtcms.com/a/328309.html

相关文章:

  • 文件操作:文件IO操作流程及各类函数应用+标准IO与文件IO区别
  • Sentinel原理之规则管理
  • 力反馈手套让虚拟培训更加真实
  • GitHub的简单使用方法----(5)
  • AR眼镜新赛道:光波导与MicroOLED如何解决眩晕难题?
  • 低空智航平台技术架构深度解析:如何用AI +空域网格破解黑飞与安全管控难题
  • Ceph数据副本机制详解
  • 【编程实践】关于Vscode无法连接Anaconda解译器的问题
  • PCB题目基础练习1
  • 高速缓冲存储器cache
  • 肖臻《区块链技术与应用》第十讲:深入解析硬分叉与软分叉
  • 力扣top100(day01-03)
  • 基于RAII的智能指针原理和模拟实现智能指针
  • MySQL与其他数据库产品的比较,优势在哪里?
  • 《坐庄》电视剧
  • 基于Python的海量电商用户行为分析与可视化【推荐算法、统计模型、聚类模型、电商指标维度分析】
  • 【4】Transformers快速入门:自然语言模型 vs 统计语言模型
  • [激光原理与应用-257]:理论 - 几何光学 - 光束整形
  • 锁性能基准测试
  • 石英加速度计如何实现高精度测量?
  • 明远智睿T113-i核心板:工业设备制造领域的革新利器
  • 具身智能竞速时刻,百度百舸提供全栈加速方案
  • JVM性能调优技巧
  • Java集合学习之forEach()遍历方法的底层原理
  • 数据科学与计算:爬虫和数据分析案例笔记
  • 01数据结构-Kruskal算法
  • 破译真实感:渲染参数进阶指南——告别塑料感,唤醒材质生命力
  • 01. maven的下载与配置
  • ubuntu24下keychorn键盘连接不了的改建页面的问题修复
  • “生成式UI革命”:Tambo AI如何让你的应用“开口说话、动手搭界面” | 全面深剖、案例实践与未来展望