Ubuntu 22.04 桌面版安装过程

文章目录

好的,在 Ubuntu 22.04 桌面版安装过程中,为根目录 ( /) 创建一个大小为 10GB 的 LVM 卷是一个很好的实践,它为未来调整分区大小提供了极大的灵活性。以下是详细的步骤指南。

重要提醒

  • 备份数据:此过程会擦除目标磁盘上的所有数据。请务必提前备份该磁盘上的任何重要文件。
  • 操作确认:请仔细检查您选择的磁盘是否正确,以免误删其他磁盘数据。

详细安装部署流程

第 1 步:创建 Ubuntu 安装启动盘
  1. 从 Ubuntu 官网下载 https://releases.ubuntu.com/22.04/。
  2. 使用 https://rufus.ie/ (Windows) 或 https://www.balena.io/etcher/ (Windows/macOS/Linux) 等工具将 ISO 镜像写入一个 U 盘,制作成可启动的安装介质。
第 2 步:启动并开始安装
  1. 将启动 U 盘插入电脑。
  2. 重启电脑,并进入 BIOS/UEFI 设置界面(通常在启动时按 F2, F10, F12, Del 等键,具体请参考您的主板手册)。
  3. 在启动选项(Boot Order)中,将 U 盘设置为第一启动项。
  4. 保存设置并退出,电脑将从 U 盘启动。
  5. 在 GRUB 菜单中,选择 “Try or Install Ubuntu”(试用或安装 Ubuntu)。
  6. 系统加载后,您会看到欢迎界面。选择您的语言,然后点击 “Install Ubuntu”
第 3 步:配置安装选项(关键步骤)
  1. 键盘布局:选择默认的即可,点击 “Continue”
  2. 更新和软件
    • 为了最小化安装并节省空间,建议选择 “Minimal installation”(最小化安装)。
    • 取消勾选 “Download updates while installing Ubuntu”(安装时下载更新),以加快安装速度。系统装好后再更新。
    • 点击 “Continue”
  3. 安装类型(核心步骤)
    • 您会看到几个选项,如“Erase disk and install Ubuntu”(清除整个磁盘并安装 Ubuntu)。不要选择这些默认选项
    • 请选择 “Advanced features”
    • 在弹出的新窗口中,勾选 “Use LVM with the new Ubuntu installation”
    • 强烈建议同时勾选 “Encrypt the new Ubuntu installation for security”。这将设置全盘加密(LUKS),极大增强数据安全性。系统会提示您设置一个加密密码,请务必牢记此密码,它是每次启动系统都需要输入的。
    • 点击 “OK”,然后回到主界面,选择 “Manual”(手动分区),最后点击 “Continue”
第 4 步:手动分区与 LVM 配置

现在您进入了分区编辑器界面。您会看到您的磁盘(如 /dev/sda/dev/nvme0n1)。

  1. 选择空闲磁盘:如果您磁盘上有已有分区,请选中每个分区并点击 “-” 按钮删除它们,直到整个磁盘显示为 “free space”(空闲空间)。然后选中这块空闲空间。
  2. 创建 EFI 系统分区(必须)
    • 点击 “+” 按钮。
    • 设置大小:550 MB (建议值,至少 256MB)。
    • 新分区的类型:“EFI System Partition”
    • 点击 “OK”
  3. 创建 LVM 物理卷和卷组
    • 再次选中剩余的 “free space”
    • 点击 “+” 按钮。
    • 设置 “Use as:”“Physical volume for LVM”(用于 LVM 的物理卷)。
    • 不要手动指定大小,它会自动使用所有剩余空间。这就是 LVM 的优势所在。
    • 点击 “OK”
    • 现在您会看到一个类型为 “LVM VG” 的分区。选中它
    • 窗口底部会出现一个按钮:“Create Volume Group…”,点击它。
    • 给卷组起一个名字,例如 ubuntu-vg(默认即可)。
    • 点击 “OK”
  4. 在 LVM 卷组内创建逻辑卷
    • 现在您会看到卷组 ubuntu-vg 下列出了它的空闲空间。
    • 选中这个空闲空间,然后点击 “+”
    • 我们现在创建根分区 (/):
      • 大小:10 GB (输入 10000 MB 或直接输入 10 GB)。
      • 类型:“Ext4 journaling file system”
      • 挂载点:“/”(根目录)。
      • 点击 “OK”
  5. (可选但强烈推荐)创建交换空间
    • 由于根目录只有 10GB,强烈不建议创建固定的交换分区,这会浪费宝贵的磁盘空间。
    • Ubuntu 默认使用一个 交换文件(swapfile) 而不是交换分区。安装完成后,系统会自动在根目录下创建一个小巧的交换文件(通常为 2GB左右),这比固定分区更灵活且节省空间。因此,您可以跳过创建交换分区。
  6. (可选)创建 /home 或其他分区
    • 如果您希望将用户数据与系统分开,可以使用剩余空间创建一个 /home 逻辑卷。
    • 选中 ubuntu-vg 下的剩余空间,点击 “+”
    • 使用所有剩余空间或自定义大小。
    • 类型:“Ext4”
    • 挂载点:“/home”
    • 点击 “OK”
  7. 最终确认
    • 您的分区布局应该类似于:
      • /dev/sda1 - EFI System - 550MB
      • /dev/sda2 - LVM VG (ubuntu-vg) - 剩余所有空间
        • /dev/mapper/ubuntu--vg-ubuntu--lv - Ext4 - / - 10GB
        • /dev/mapper/ubuntu--vg-home - Ext4 - /home - 剩余空间 (如果有创建)
    • 确认无误后,点击 “Install Now”
    • 安装程序会显示将要进行的更改摘要,点击 “Continue” 确认。
第 5 步:完成安装
  1. 时区设置:在地图上点击您所在的位置,设置时区。
  2. 创建用户
    • 输入您的姓名、计算机名、用户名和密码。
    • 如果您之前选择了加密,这里创建的密码是用户登录密码,而之前设置的是磁盘加密密码(两者不同)。
  3. 安装过程会自动进行。完成后,点击 “Restart Now”
  4. 系统会提示您拔掉安装 U 盘,然后按回车键重启。
第 6 步:首次启动与验证
  1. 如果启用了加密,启动后首先会提示您输入 LUKS 加密密码 来解锁磁盘。
  2. 输入您创建的用户密码登录系统。
  3. 验证 LVM 和分区
    • 打开终端(Ctrl+Alt+T)。

运行以下命令查看根分区大小:

df -h / 

输出应显示根分区 (/) 的大小约为 10GB

运行以下命令验证 LVM 设置:

sudo lvmdiskscan sudo pvs sudo vgs sudo lvs 

安装后优化(节省空间)

由于根分区只有 10GB,需要精细管理:

  1. 选择性安装软件:仅安装必需的软件包,避免安装大型套件。
  2. 将大型软件(如Docker镜像、编程语言库)的数据目录通过符号链接指向 /home 下的更大分区(如果您创建了的话)。

限制日志文件大小

sudo journalctl --vacuum-size=100M 

清理安装缓存

sudoapt clean sudoapt autoremove --purge 

您现在已经成功在加密的 LVM 上安装了一个精简的 Ubuntu 22.04 系统,并且根分区被精确限制为 10GB。未来如果需要,您可以随时使用 lvextend 命令轻松扩展根分区的大小。

Read more

【C++ 入门】:引用、内联函数与 C++11 新特性(auto、范围 for、nullptr)全解析

【C++ 入门】:引用、内联函数与 C++11 新特性(auto、范围 for、nullptr)全解析

目录 一、引用 1.1 引用概念 1.2 引用的特性 1.3 常引用 1.4 使用场景 1.5. 传引用、传值效率比较 1.6  指针和引用的区别 【面试题】:引用和指针的对比 二、内联函数 2.1 内联函数是啥? 2.2 如何判断是否为内联函数? 2.3 内联函数特性 【问题】: 为啥内联函数可能会导致目标文件变大 【问题】:递归不能内联的核心原因 【面试题】:宏的优缺点? 【面试题】:内联函数的优缺点? 三、auto关键字(C++11) 3.1 auto

By Ne0inhk
C++ 运算符重载:自定义类型的运算扩展

C++ 运算符重载:自定义类型的运算扩展

C++ 运算符重载:自定义类型的运算扩展 💡 学习目标:掌握运算符重载的核心语法与规则,能够为自定义类型重载常用运算符,实现类对象的灵活运算。 💡 学习重点:运算符重载的基本形式、成员函数与全局函数重载的区别、常见运算符的重载实现、禁止重载的运算符。 一、运算符重载的概念与核心价值 ✅ 结论:运算符重载是 C++ 静态多态的重要体现,允许为自定义类型(如类、结构体)重新定义运算符的行为,让自定义对象可以像内置类型一样使用运算符。 运算符重载的核心价值: 1. 简化代码书写:用直观的运算符替代繁琐的成员函数调用,提升代码可读性 2. 统一操作风格:让自定义类型的运算逻辑与内置类型保持一致,降低学习和使用成本 3. 扩展类型功能:根据业务需求定制运算符的行为,满足自定义类型的运算需求 ⚠️ 注意事项:运算符重载不会改变运算符的优先级和结合性,也不会改变运算符的操作数个数。 二、运算符重载的基本语法 运算符重载的本质是函数重载,分为成员函数重载和全局函数重载两种形式。 2.1 成员函数重载语法 将运算符重载函数定义为类的成员函数,语法格式如下: class

By Ne0inhk
Microsoft Visual C++ Redistributable 运行库怎么安装?(详细教程)

Microsoft Visual C++ Redistributable 运行库怎么安装?(详细教程)

前言 很多人安装软件或游戏时会遇到这样的提示:“无法启动程序,计算机中丢失 MSVCP140.dll”或“VCRUNTIME140.dll 未找到”。 这类问题通常是由于系统缺少 Microsoft Visual C++ Redistributable 运行库导致的。 Microsoft Visual C++ Redistributable 是 Windows 系统中必不可少的运行组件,几乎所有基于 C++ 的程序都依赖它。若运行库缺失或版本不匹配,会导致软件无法启动。本文将从原理、安装与修复三个方面,介绍如何正确配置运行库,并推荐实用工具快速解决 DLL 缺失问题。 Microsoft Visual C++ Redistributable运行库修复工具【免费版】http://www.ijinshan.com/functions/repairdll.html?channel=1506 一、为什么电脑提示“

By Ne0inhk
【C++笔记】STL详解:list容器的实现

【C++笔记】STL详解:list容器的实现

前言:         在学习了list容器的基本使用的前提下,本文将重点分析容器类的常用接口及其应用实现。          一、list的成员变量          如图所示,list的底层数据结构为:双向链表          通过下面三个结构体和类实现list:          ①结构体 struct list_node :用来存储链表结点的信息。              ②结构体 struct list_iterator:用来封装结点指针,使其能够通过重载运算符访问结点。          ③类 class list :用来实现双向链表的各种增删查改操作          1.1 结构体list_node          template<class T> struct list_node { //对struct list_node重命名为 Node typedef list_node<T> Node; //链表存储的节点值 T _data;

By Ne0inhk