Ubuntu 24.04 LTS 桌面版安装问题记录

最近需要在新机器上安装Ubuntu 24.04 LTS桌面版,整个过程虽然相对简单,但还是遇到了一些小问题。从下载安装介质、制作启动盘、硬盘分区到后续的系统配置,每一步都有一些需要注意的地方。这里把整个安装过程详细记录下来,希望能帮到有同样需求的朋友。

这次安装涉及到的技术点包括:UEFI启动、硬盘分区策略、文件系统选择、挂载点配置、SSH服务配置等,基本涵盖了Linux系统安装和初始配置的各个方面。

第1步:下载 Ubuntu 24.04 LTS 安装介质

首先需要下载Ubuntu 24.04 LTS的ISO镜像文件。虽然标题写的是22.04,但实际我们要安装的是24.04版本。

官方下载地址:

  • Ubuntu官网:https://releases.ubuntu.com/24.04/

国内镜像源(推荐,下载速度更快):

  • 中科大源:https://mirrors.ustc.edu.cn/ubuntu-releases/24.04/
  • 阿里云源:http://mirrors.aliyun.com/ubuntu-releases/24.04/
  • 华为云源:https://mirrors.huaweicloud.com/ubuntu-releases/24.04/
  • 网易源:http://mirrors.163.com/ubuntu-releases/24.04/

下载建议:

  • 选择ubuntu-24.04-desktop-amd64.iso文件(约4.7GB)
  • 建议使用国内镜像源,下载速度会快很多
  • 下载完成后可以验证SHA256校验和确保文件完整性

参考链接: https://www.cnblogs.com/profesor/p/18225489

第2步:制作 Ubuntu 启动盘

有了ISO文件后,需要制作一个可启动的U盘。这里推荐使用Rufus工具,简单易用且成功率高。

准备工作

所需材料:

  • 8GB以上的U盘(建议16GB以上)
  • Rufus工具
  • Ubuntu 24.04 ISO文件

下载Rufus:

  • 官方地址:https://rufus.ie/zh/
  • 选择便携版本,无需安装直接运行

制作步骤

  1. 插入U盘并运行Rufus
  2. 配置Rufus参数:
    • 「设备」:选择你的U盘
    • 「选择」:点击选择Ubuntu ISO文件
    • 其他设置保持默认即可
在这里插入图片描述
  1. 开始制作:
    • 点击「开始」按钮
    • 出现提示时选择默认选项并确定

常见问题解决

问题:“错误:无法分配驱动器号” Error: Unable to assign a drive letter" when trying to use Rufus to write the Qubes ISO to a USB drive

Rufus在制作启动盘时需要格式化U盘,如果ISO文件本身就在这个U盘中,会导致文件被占用无法正常操作。

解决方案:

将ISO文件移动到桌面或其他位置然后重新在Rufus中选择该文件

设置启动项

制作完成后,需要设置电脑从U盘启动:

  1. 重启电脑
  2. 进入BIOS/UEFI设置:
    • Dell:按F12或Del键
    • HP:按F9或Esc键
    • 联想:按F12或F1键
    • 华硕:按F8或Del键
  3. 设置U盘为首选启动项
  4. 保存设置并重启

启动后会看到Ubuntu安装界面,选择"Try or Install Ubuntu"即可开始安装。

在这里插入图片描述

参考链接:

  • https://www.sysgeek.cn/make-ubuntu-usb-flash-drive/
  • https://www.reddit.com/r/Qubes/comments/18zb9gf/error_unable_to_assign_a_drive_letter_when_trying/
  • https://www.sysgeek.cn/install-ubuntu-22-04-lts/
  • https://www.sysgeek.cn/install-ubuntu-24-04-lts/
  • https://www.sysgeek.cn/make-windows-usb-flash-drive/

第3步:Ubuntu 安装向导硬盘分区

硬盘分区是安装过程中最关键的一步,合理的分区方案能让系统运行更稳定,后续维护也更方便。

分区策略选择

在安装向导中,建议选择"手动分区"(Something else),这样可以完全控制分区方案。

在这里插入图片描述

基础分区方案

适用场景: 软件包较少,不使用Docker/MySQL,不跑AI模型

挂载点大小类型备注
/100GBext4系统根目录
/home剩余空间ext4用户数据目录
swap内存2倍(4G/8G)swap交换分区,休眠功能需要
/boot/efi512MBEFIUEFI启动必需

推荐分区方案(1TB硬盘)

适用场景: 需要使用Docker、MySQL、AI开发环境

挂载点大小类型详细说明
/100GBext4系统根目录,存放系统核心文件
/home剩余空间ext4用户数据,conda环境会存在这里
swap8Gswap交换分区,支持休眠功能
/boot/efi1.13GBFAT32UEFI启动分区,自动生成
/var300GBext4Docker容器、MySQL数据存储
/usr250GBext4发行版程序安装位置

分区操作详解

分区工具使用:

  • 删除分区: 点击左下角的"-"号
  • 添加分区: 点击左下角的"+"号
  • 还原操作: 右下角"Revert"一键还原所有更改

重要提醒:

  1. Windows双系统: 如果需要保留Windows系统,不要删除Windows相关分区
  2. 纯Linux系统: 如果不需要Windows,可以直接删除所有Windows分区
  3. EFI分区:/boot/efi会自动挂载到"Device for boot loader installation"选中的磁盘

分区原理解释

为什么要单独分区?

  1. 根目录(/): 相当于Windows的C盘,存放系统核心文件
  2. 用户目录(/home): 相当于Windows的用户文件夹,存放个人数据
  3. 程序目录(/usr): 发行版提供的程序会下载到这里
  4. 变量目录(/var): Docker容器存储在/var/lib/docker,MySQL数据在/var/lib/mysql
  5. 交换分区(swap): 当内存不足时作为虚拟内存使用

分区的好处:

  • 系统重装时可以保留用户数据
  • 避免某个目录占满整个硬盘
  • 提高系统稳定性和安全性
  • 便于备份和维护
在这里插入图片描述

完成分区配置后,点击"Install Now"开始安装。

在这里插入图片描述

参考链接:

  • https://blog.ZEEKLOG.net/Sophia_box/article/details/146524565
  • https://zhidao.baidu.com/question/821993383690596852.html

第4步:挂载额外磁盘

安装完成后,如果有额外的硬盘需要挂载,Ubuntu会自动识别但需要手动配置挂载点。

自动识别与手动挂载

Ubuntu系统会自动识别插入的硬盘,并临时挂载到某个节点,我们只需要更改挂载点到合适的位置即可。

在这里插入图片描述

挂载操作步骤

步骤1:查看磁盘信息

# 查看所有磁盘分区信息sudofdisk-l

命令解释:

  • fdisk:磁盘分区管理工具
  • -l:列出所有磁盘和分区信息
  • sudo:以管理员权限执行

步骤2:卸载当前挂载

# 卸载当前挂载目录(假设设备为/dev/sda1)sudoumount /dev/sda1 

命令解释:

  • umount:卸载文件系统命令
  • /dev/sda1:要卸载的设备名称

步骤3:删除原挂载目录

# 删除原来的挂载目录sudormdir /data 

命令解释:

  • rmdir:删除空目录命令
  • /data:要删除的目录路径

步骤4:创建新挂载目录

# 在/home下创建新的挂载目录sudomkdir /home/datadisk 

命令解释:

  • mkdir:创建目录命令
  • /home/datadisk:新的挂载点路径

步骤5:挂载分区

# 将设备挂载到新目录sudomount /dev/sda1 /home/datadisk 

命令解释:

  • mount:挂载文件系统命令
  • /dev/sda1:要挂载的设备
  • /home/datadisk:挂载点目录

步骤6:验证挂载

# 检测挂载配置是否正确sudomount-a# 查看当前挂载情况sudodf-h

命令解释:

  • mount -a:根据/etc/fstab挂载所有文件系统
  • df -h:以人类可读格式显示磁盘使用情况
  • -h:human-readable,以KB、MB、GB等单位显示

永久挂载配置

为了让系统重启后自动挂载,需要编辑/etc/fstab文件:

# 编辑fstab文件sudonano /etc/fstab # 添加类似以下内容: /dev/sda1 /home/datadisk ext4 defaults 02

fstab字段说明:

  • 第1字段:设备名称或UUID
  • 第2字段:挂载点
  • 第3字段:文件系统类型
  • 第4字段:挂载选项
  • 第5字段:dump备份标志(0=不备份,1=备份)
  • 第6字段:fsck检查顺序(0=不检查,1=根分区,2=其他分区)

参考链接: https://blog.ZEEKLOG.net/SharbbyBai/article/details/143790108

第5步:开启root用户及使用

Ubuntu出于安全考虑,默认禁用了root账户。在某些管理任务中,可能需要启用root用户。

安全性说明

为什么默认禁用root?

  • 减少误操作风险
  • 提高系统安全性
  • 强制使用sudo进行权限管理
  • 便于审计和日志记录

启用root用户

设置root密码:

# 为root用户设置密码sudopasswd root 

操作流程:

  1. 输入当前用户密码
  2. 输入新的root密码
  3. 确认root密码

命令解释:

  • passwd:修改用户密码命令
  • root:指定要修改密码的用户
  • sudo:以管理员权限执行

切换到root用户

# 切换到root用户su root # 或者简写为su - 

命令解释:

  • su:switch user,切换用户命令
  • root:目标用户名
  • -:加载目标用户的完整环境

查看密码信息

# 查看root用户的密码加密信息sudocat /etc/shadow |grep root 

命令解释:

  • cat:显示文件内容
  • /etc/shadow:存储用户密码加密信息的文件
  • grep root:过滤包含"root"的行
  • |:管道符,将前一个命令的输出作为后一个命令的输入

注意事项:

  • 密码以加密形式存储,无法直接获取明文
  • 建议只在必要时使用root用户
  • 完成管理任务后及时退出root用户

参考链接: https://blog.ZEEKLOG.net/janeqi1987/article/details/106173711

第6步:开启SSH远程登录

SSH(Secure Shell)是Linux系统远程管理的标准协议,配置SSH服务可以实现远程登录和文件传输。

SSH服务安装与配置

步骤1:更新系统软件包

# 更新软件包列表sudoapt-get update # 升级已安装的软件包sudoapt-get upgrade 

命令解释:

  • apt-get:Debian/Ubuntu的包管理工具
  • update:更新软件包列表,从软件源获取最新的包信息
  • upgrade:升级所有已安装的软件包到最新版本
  • sudo:以管理员权限执行

步骤2:安装SSH服务

# 安装OpenSSH服务器sudoapt-getinstallssh

命令解释:

  • install:安装指定的软件包
  • ssh:SSH服务软件包名称
  • 安装过程中输入"y"确认安装

步骤3:启动SSH服务

# 启动SSH服务sudo /etc/init.d/ssh start # 或者使用systemctl命令sudo systemctl start ssh

命令解释:

  • /etc/init.d/ssh:SSH服务的启动脚本
  • start:启动服务
  • systemctl:systemd的服务管理命令

SSH服务管理

常用SSH管理命令:

# 查看SSH服务状态sudo systemctl status ssh# 停止SSH服务sudo systemctl stop ssh# 重启SSH服务sudo systemctl restart ssh# 设置开机自启动sudo systemctl enablessh# 禁用开机自启动sudo systemctl disable ssh

SSH安全配置

编辑SSH配置文件:

# 编辑SSH服务配置sudonano /etc/ssh/sshd_config 

常用安全配置:

# 修改默认端口(可选) Port 2222# 禁用root远程登录(推荐) PermitRootLogin no # 启用密钥认证 PubkeyAuthentication yes# 禁用密码认证(配置密钥后) PasswordAuthentication no 

重新加载配置:

# 重新加载SSH配置sudo systemctl reload ssh

远程连接测试

从其他机器连接:

# 使用SSH连接(默认端口22)ssh username@server_ip # 指定端口连接ssh-p2222 username@server_ip 

查看本机IP地址:

# 查看网络接口信息ip addr show # 或者使用ifconfigifconfig

参考链接: https://blog.ZEEKLOG.net/m0_58207141/article/details/128283960

附录:Linux文件系统挂载点详解

标准挂载点说明

Linux采用统一的文件系统树结构,所有文件和目录都从根目录(/)开始。理解各个挂载点的作用对于系统管理非常重要。

挂载点用途建议大小详细说明
/根目录20-100GB系统核心文件,包含/bin、/sbin、/etc等重要目录
/boot启动文件500MB-1GB存放内核文件、initrd、GRUB配置等启动相关文件
/boot/efiEFI启动512MB-1GBUEFI系统必需,存放EFI启动加载程序
/home用户目录剩余空间用户个人文件、配置、桌面环境设置
/usr程序目录50-250GB用户安装的程序、库文件、文档
/var变量数据50-300GB日志文件、数据库、缓存、临时文件
/tmp临时文件5-20GB临时文件存储,重启后清空
/opt可选程序20-100GB第三方软件安装目录
swap交换分区内存1-2倍虚拟内存,内存不足时使用

文件系统类型详解

类型特点适用场景性能特征
ext4稳定可靠通用场景平衡的读写性能,支持大文件
xfs高性能大文件处理优秀的大文件和并发性能
btrfs现代特性高级用户支持快照、压缩、RAID
FAT32兼容性好EFI分区简单,兼容性强,文件大小限制4GB
NTFSWindows兼容双系统与Windows系统兼容
swap交换空间虚拟内存专用于内存交换

挂载选项详解

常用挂载选项(/etc/fstab第4字段):

选项作用说明
defaults默认选项包含rw、suid、dev、exec、auto、nouser、async
rw/ro读写/只读rw允许读写,ro只允许读取
auto/noauto自动挂载auto开机自动挂载,noauto需手动挂载
user/nouser用户挂载user允许普通用户挂载,nouser只允许root
exec/noexec执行权限exec允许执行文件,noexec禁止执行
suid/nosuidSUID权限suid允许SUID程序,nosuid禁止
dev/nodev设备文件dev允许设备文件,nodev禁止

分区策略建议

系统规模挂载点大小文件系统说明
小型系统(<500GB)/50GBext4根分区
/home剩余ext4用户数据
swap4-8GBswap交换分区
/boot/efi512MBFAT32EFI启动分区
中型系统(500GB-1TB)/100GBext4根分区
/home剩余ext4用户数据
/var100GBext4变量数据
swap8GBswap交换分区
/boot/efi1GBFAT32EFI启动分区
大型系统(>1TB)/100GBext4根分区
/home剩余ext4用户数据
/usr200GBext4用户程序
/var300GBext4变量数据
/tmp20GBext4临时文件
swap16GBswap交换分区
/boot/efi1GBFAT32EFI启动分区

特殊目录说明

目录类型目录路径功能说明
系统关键目录/bin基本命令程序(ls、cp、mv等)
/sbin系统管理命令(mount、umount等)
/etc系统配置文件
/lib系统库文件
/dev设备文件
/proc进程信息虚拟文件系统
/sys系统信息虚拟文件系统
用户相关目录/home/username用户主目录
/rootroot用户主目录
/usr/local本地安装的程序
/opt可选软件包
数据存储目录/var/log系统日志文件
/var/lib程序数据文件
/var/cache程序缓存文件
/tmp临时文件

挂载点选择原则

原则类型具体要求实施建议
安全性考虑数据隔离将用户数据(/home)与系统文件(/)分离
系统保护临时文件(/tmp)单独分区防止填满系统
性能优化存储匹配频繁读写的目录(/var)使用高速存储
容量匹配大文件存储(/home)可使用大容量存储
维护便利数据保护系统升级时保留用户数据
备份恢复便于备份和恢复
故障隔离问题隔离和故障排除
容量规划需求分析根据实际使用需求分配空间
扩展预留预留一定的扩展空间
增长预测考虑未来的增长需求

Read more

【顶尖无人机企业都在用的避障方案】:TOP 5算法对比及选型指南

第一章:无人机避障技术的发展现状与挑战 近年来,随着无人机在物流、农业、测绘和安防等领域的广泛应用,避障技术作为保障其安全飞行的核心能力,得到了快速演进。现代无人机避障系统普遍融合了多种传感器与智能算法,以实现对复杂环境的实时感知与响应。 主流避障传感器对比 不同类型的传感器在精度、成本和适用场景上各有优劣,常见的组合包括: 传感器类型探测距离优点局限性超声波0.1–5 m成本低,测距稳定易受温度和表面材质影响红外0.1–3 m响应快,体积小易受强光干扰激光雷达(LiDAR)1–100 m高精度,远距离成本高,体积较大立体视觉(Stereo Vision)0.5–20 m可识别纹理与形状依赖光照,计算量大 基于深度学习的动态避障策略 当前前沿研究倾向于将卷积神经网络(CNN)与强化学习结合,实现动态路径规划。例如,使用YOLOv8进行实时障碍物检测,并通过决策网络输出避障指令。 # 示例:使用OpenCV与YOLO进行障碍物检测 import cv2 net = cv2.

By Ne0inhk
【数据结构指南】堆

【数据结构指南】堆

前言:         在之前的讨论中,我们已经了解了树这种非线性数据结构,并重点介绍了完全二叉树和满二叉树这两种特殊形式。本文将基于完全二叉树的特性,进一步探讨与之密切相关的重要数据结构——堆。          一、完全二叉树的回顾                   完全二叉树:除最后一层外,每一层的节点数均达到最大值,最后一层的节点从左到右连续排列,缺失的节点只能在右侧。 对于完全二叉树,满足如下特征:          ①叶子节点仅可能出现在最下两层,且最下层叶子一定靠左集中。          ②由于节点连续排列的原因,适合用数组存储,无需额外空间记录指针,通过索引即可计算父子节点位置。          ③不存在只有右子节点而无左子节点的节点,右子节点存在的前提是左子节点已存在。                  注:满二叉树也被视为特殊的完全二叉树。          二、堆的引入          根据完全二叉树的特点:叶子节点只出现在最下面两层,且最下层的叶子节点都集中在左侧,得益于这种连续排列的特性,我们可以用数组来存储

By Ne0inhk
【算法通关指南:数据结构与算法篇】二叉树相关算法题:1.二叉树深度 2.求先序排列

【算法通关指南:数据结构与算法篇】二叉树相关算法题:1.二叉树深度 2.求先序排列

🔥小龙报:个人主页 🎬作者简介:C++研发,嵌入式,机器人方向学习者 ❄️个人专栏:《算法通关指南》 ✨ 永远相信美好的事情即将发生 文章目录 * 前言 * 一、二叉树深度 * 2.1题目 * 2.2 算法原理 * 2.3代码 * 二、 求先序排列 * 3.1题目 * 3.2 算法原理 * 3.3代码 * 总结与每日励志 前言 本专栏聚焦算法题实战,系统讲解算法模块:以《c++编程》,《数据结构和算法》《基础算法》《算法实战》 等几个板块以题带点,讲解思路与代码实现,帮助大家快速提升代码能力ps:本章节题目分两部分,比较基础笔者只附上代码供大家参考,其他的笔者会附上自己的思考和讲解,希望和大家一起努力见证自己的算法成长 一、二叉树深度 2.

By Ne0inhk
《算法闯关指南:优选算法--二分查找》--21.山峰数组的的峰顶索引,22.寻找峰值

《算法闯关指南:优选算法--二分查找》--21.山峰数组的的峰顶索引,22.寻找峰值

🔥草莓熊Lotso:个人主页 ❄️个人专栏:《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受。 🎬博主简介: 目录 前言: 21. 山峰数组的的峰顶索引 解法(二分查找): 算法思路: C++算法代码: 算法总结&&笔记展示: 22. 寻找峰值 解法(二分查找): 算法思路: C++算法代码: 算法总结&&笔记展示: 结尾: 前言: 聚焦算法题实战,系统讲解三大核心板块:优选算法:剖析动态规划、二分法等高效策略,学会寻找“最优解”。 递归与回溯:掌握问题分解与状态回退,攻克组合、排列等难题。 贪心算法:理解“

By Ne0inhk