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

Rust异步编程实战:构建高性能网络应用

Rust异步编程实战:构建高性能网络应用

Rust异步编程实战:构建高性能网络应用 一、异步编程概述 1.1 同步vs异步的区别 💡在传统的同步编程中,代码按照顺序执行,每个操作必须等待前一个完成才能继续。例如,发送网络请求时,主线程会阻塞直到响应返回,这种方式简单直观,但在高并发场景下效率低下,因为大量线程会因阻塞而闲置。 异步编程则允许代码在等待操作完成时继续执行其他任务。当一个异步操作开始后,程序会立即返回并继续处理下一个任务,直到该操作完成后通过回调或事件通知继续执行后续代码。这种方式显著提高了CPU利用率和系统的并发处理能力。 1.2 Rust异步编程的演进 Rust的异步编程经历了几个重要阶段: * 早期阶段:依赖futures库提供基础的Future和Executor支持,但语法冗长且难以使用。 * 2018 Edition:引入了async/await语法糖的实验版本,简化了异步代码的编写。 * 2021 Edition:async/await正式稳定,成为Rust异步编程的标准范式。 * 生态成熟:Tokio、async-std等异步运行时库的发展,以及大量异步IO库的出现,使Rus

By Ne0inhk

智能抠图Rembg部署指南:从零开始搭建WebUI服务

智能抠图Rembg部署指南:从零开始搭建WebUI服务 1. 引言 1.1 智能万能抠图 - Rembg 在图像处理与内容创作领域,自动去背景是一项高频且关键的需求。无论是电商商品图精修、社交媒体素材制作,还是AI绘画后期处理,精准的抠图能力都能极大提升效率。传统方法依赖人工标注或简单边缘检测,效果粗糙且耗时。随着深度学习的发展,基于显著性目标检测的AI模型成为主流解决方案。 其中,Rembg 作为开源社区中广受好评的图像去背工具,凭借其高精度和通用性脱颖而出。它基于 U²-Net(U-square Net) 架构,专为显著性物体分割设计,能够在无需任何人工标注的情况下,自动识别图像主体并生成带有透明通道的PNG图像。 1.2 项目核心价值 本文将带你从零开始,部署一个集成 WebUI界面 + RESTful API + CPU优化推理引擎 的本地化Rembg服务。该方案具备以下优势: * ✅ 完全离线运行:不依赖ModelScope等平台认证,避免Token失效问题 * ✅ 通用性强:不仅限于人像,支持宠物、汽车、

By Ne0inhk

树莓派5部署冬瓜HAOS:从零到智能家居中枢实战

1. 准备工作:硬件与软件选择 在开始部署冬瓜HAOS之前,选择合适的硬件和软件是确保系统稳定运行的关键。树莓派5作为最新的单板计算机,性能比前代提升显著,尤其适合作为智能家居中枢。我实测下来,树莓派5的多核处理能力和更高的内存带宽(支持8GB LPDDR4X)能够轻松应对Home Assistant的多任务需求,比如同时处理传感器数据、摄像头流媒体和自动化规则。 硬件方面,除了树莓派5主板,你需要准备以下配件: * TF卡:推荐使用SanDisk Extreme PRO系列(64GB以上,U3 A2 V30规格)。这种高速卡能显著提升系统响应速度,因为HAOS会频繁读写日志和数据库。我试过用普通Class 10卡,启动时间长了近一倍,偶尔还会卡顿。 * 电源适配器:树莓派5需要27W USB-C PD电源(官方电源最稳)。我用过第三方电源,偶尔会触发低压警告,导致系统不稳定。 * 散热方案:树莓派5运行时CPU温度可能飙到70°C以上,建议加装散热风扇或金属散热片。我用的是一体化散热外壳,待机温度控制在40°C左右。 * 外设:HDMI显示器、

By Ne0inhk
33岁失业女前端程序员,可以转行干什么啊?

33岁失业女前端程序员,可以转行干什么啊?

33岁失业,既没有20+的精力无限,也还没到40+的稳定沉淀,加上前端行业技术迭代快、年轻化竞争激烈的现状,焦虑感扑面而来太正常了。 但作为一名深耕行业多年的观察者,我想先给各位姐妹吃颗定心丸:33岁的前端经验不是“包袱”,而是“宝藏”。咱们多年积累的逻辑思维、用户感知、跨团队沟通能力,以及对技术实现边界的把控,都是转行的核心优势。与其纠结“年龄大了怎么办”,不如聚焦“我的优势能迁移到哪里”。结合行业趋势和女性从业者的特质,整理了6个高适配、易落地的转行方向,供大家参考。 一、技术相关赛道:发挥积累,平稳过渡 如果对技术还有热情,不想彻底脱离IT圈,这类方向能最大化利用前端基础,转型成本最低,也是最容易快速上手的选择。 1. 测试开发工程师:细节控的“降维打击” 前端开发天天和界面打交道,最清楚用户会怎么操作、哪里容易出bug,这种对用户行为的敏感度,是测试开发的核心竞争力。而且咱们懂代码、懂开发流程,从“找bug”升级为“

By Ne0inhk