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

Windows11和Ubuntu22双系统安装指南

一、需求描述

台式机电脑,已有Windows11操作系统,想要安装Ubuntu22系统(版本任意)。其中Windows安装在Nvme固态上,Ubuntu安装在Sata固态上,双盘双系统。开机时使用Grub控制进入哪个系统,效果图如下所示:

二、准备条件

1、Ubuntu镜像,官网地址:Ubuntu中文版,官方教程:Ubutu安装;

2、U盘一个,用于制作镜像(官网教程有提到,也可使用其它方法);

3、Windows系统要有ESP分区(如果没有,请看附录),用于EFI引导,且主板支持UEFI引导方式。

三、开始安装

1、开机进入BIOS,选择U盘为第一启动方式,这里主板因人而异,就不再赘述;

2、选择Try Or Installer Ubuntu,如果进入之后黑屏(Ubuntu24可能会出现),可以选择safe模式;

3、 选择语言和安装Ubuntu;(安装系统时无法截图,所以手机拍照;照片倾斜是为了防止摩尔纹,请理解)

4、 键盘布局默认即可,直接点击继续;

5、设置网络,可设置可跳过,根据个人需求;

6、自定义安装内容,可根据个人需求选择;

7、安装类型选择,选择其它选项,自己设置引导位置以及分盘;

8、 首先设置引导器位置,这个位置要和Windows Boot Manager在一块,也就是ESP分区的位置,如果这一块你不显示Windows Boot Manager或者所有盘符都没有Windows Boot Manager,说明你的Windows引导一直有问题,如果这个问题不解决,安装过程中可能会出现“Grub安装失败,这是一个致命错误”。

注意,引导器位置一定时ESP分区盘符,且有Windows Boot Manager字样,这里我的是nvme0n1p2,自己根据自己情况来。

9、设置Ubuntu系统交换空间、根目录以及用户目录盘符。首先找到你想要在哪里分配你的Ubuntu系统,这里我闲置的是/dev/sdb,是我的一块SATA固态硬盘480G,我准备分配8G交换空间、120G根目录和300G的用户目录,你们可以根据自己的情况分配。

交换空间用于虚拟内存,如果内存足够大(>32G),可以不设置;

根目录相当于Windows的系统盘,我这里分配了120G左右(根据个人情况);

用户目录是你经常使用和操作的目录,建议剩下的存储都给它(根据个人情况);

推荐大小分区类型分区位置用于挂载点
2G-8G逻辑分区空间起始位置交换空间
120G左右主分区空间起始位置Ext4日志文件系统/
余下所有逻辑分区空间起始位置Ext4日志文件系统/home

上面大致介绍完情况,开始手动分配。

10、分配交换空间

在目标空闲盘符,点击+号,开始分配。(大小自定义,注意是MB)(注意是逻辑分区)

****MB-逻辑分区-空间起始位置-交换空间

11、挂载根目录

在目标空闲盘符,点击+号,开始分配。(大小自定义,注意是MB)(注意是主分区,挂载/)

****MB-主分区-空间起始位置-EXT4日志文件系统-/

12、挂载home目录

在目标空闲盘符,点击+号,开始分配。(大小自定义,注意是MB)(注意是逻辑分区,挂载/)

****MB-逻辑分区-空间起始位置-EXT4日志文件系统-/home

13、以上全部分配完成,确认好引导器位置一直三个盘符大小,点击 继续即可。

提示再次确认

继续即可。

14、设置时区,默认上海即可(后续会出现Windows与Ubuntu时间差8小时情况,解决办法见附录)

15、设置用户名与密码等信息

设置完成之后,请耐心等待完成即可。完成之后拔下U盘,BIOS设置正确的启动项,即可进入Ubuntu系统。

四、附录

4.1、Windows系统无ESP分区

新的台式机电脑,可能在没有先使用PE工具分区情况下,直接安装了操作系统,就可能会导致没有ESP分区。ESP分区,即EFI系统分区,是EFI(可扩展固件接口)系统中的一个关键组成部分。它通常位于硬盘驱动器的首个分区,用于存储启动时所需的EFI启动管理器和操作系统相关文件。此外,ESP分区的文件系统格式通常为FAT32,以确保在EFI环境下的顺畅读写和引导操作。

如果没有ESP分区,想要设置,需要确保你的主板支持UEFI启动,然后再需要以下几步:

1、你的系统盘分区表类型必须为GPT格式,不是MBR格式,这点请注意。

如果不幸你的分区形式为MBR格式,也不用慌,使用系统自带工具或者DiskGenius都可以将盘符类型改为GPT格式(具体怎么操作去百度)。但是,这两个方式有个缺陷--它会清空你的数据,如果这是你的系统盘或者数据盘,那就不考虑这两种方式。如果是空盘,那无所谓。

这里我了解到一个强大的工具---傲梅分区助手,当然不是给他做广告哈,我本身情况就是系统盘是MBR,想改成GPT,但是不想重装系统。这款软件免费(关注公众号),使用起来很方面,亲测转GPT不会丢失数据。

右键即可看到MBR可以转GPT,点击之后,自动会创建一个100MB的ESP盘符,非常的方便。如果你的盘符是系统盘,那就需要制作一个PE系统来搞。

具体怎么操作,你可以看看官网文档,非常的方便。这样就解决了无损MBR转GPT,并创建ESP分区。

4.2、ESP分区过小问题

如果你想后续美化GRUB或者其它,100MB的ESP分区,着实有点小,你可以压缩盘符,然后扩容ESP分区,系统分区扩容时如果使用DiskGenius需要让你在PE环境下,这时候可以使用系统自带的磁盘管理器压缩出400MB的盘符,然后再使用DiskGenius扩容,这样就不用重启再使用PE了。

4.3、Windows与Ubuntu系统时间差问题

1、安装时间同步软件

sudo apt install ntpdate

2、同步时间

sudo ntpdate time.windows.com

3、将系统时间同步机制由UTC改为与windows一样的LocalTime

sudo hwclock --localtime --systohc

在启动Windows的时候,更新一下Windows时间,后续就不会出现时间不同步问题了。

4.4、使用Grub Customizer美化GRUB界面

可以使用一个可视化工具,名字叫Grub customizer

安装过程:

1、添加源

sudo add-apt-repository ppa:danielrichter2007/grub-customizer

2、更新源

sudo apt-get update

3、安装

sudo apt-get install grub-customizer

可以在列表配置界面,更改启动顺序,或者移除其它启动项;

在常规设置界面,可以设置第一启动项,GRUB显示时间等;

在外观设置界面,可以自定义GRUB界面,也可以使用其它主题。

一个神奇的网站GRUB主题,里面有各式各样的,境外网站,打开速度感人。

选择你认为好看的, 本文以Grub-theme-vimix为例,根据分辨率选择下载

下载完成之后,解压,放在/boot/grub/themes/路径下,例如(主题名字自定义)

sudo cp -r Tels/ /boot/grub/themes/

重启 Grub customizer软件,在外观设置界面,下拉框可以选择预设的主题。

保存之后开机,即可看到自定义样式。

相关文章:

Windows11和Ubuntu22双系统安装指南

一、需求描述 台式机电脑,已有Windows11操作系统,想要安装Ubuntu22系统(版本任意)。其中Windows安装在Nvme固态上,Ubuntu安装在Sata固态上,双盘双系统。开机时使用Grub控制进入哪个系统,效果图…...

Dockerfile-php7.4.33

# 使用一个包含基本编译工具的基础镜像 FROM ubuntu:latestRUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \echo "Asia/Shanghai" > /etc/timezone# 更新包列表并安装必要的编译工具和库 RUN apt-get update && apt-get i…...

如何降低MCU系统功耗?

大家在做MCU系统开发的时候,是否也碰到过降低MCU系统功耗的需求? MCU系统整板功耗是个综合的数据,包括MCU功耗以及外部器件功耗,在此我们主要介绍如何降低MCU的功耗: 可以在满足应用的前提下,降低MCU的运…...

移动端 UI 风格,诠释精致

移动端 UI 风格,诠释精致...

【408考点之数据结构】数组和特殊矩阵的压缩存储

数组和特殊矩阵的压缩存储 在数据结构中,数组是一种基础的数据结构,用于存储相同类型的元素的集合。矩阵则是一个二维数组,常用于表示图像、图形以及数学运算中的系数。随着矩阵的广泛应用,一些特殊类型的矩阵也被引入并得到了有…...

26、matlab多项式曲线拟合:polyfit ()函数

1、前言 在 MATLAB 中,可以使用 polyfit() 函数进行多项式曲线拟合。polyfit() 函数可以拟合一个多项式模型到给定的数据点,从而找到最符合这些数据点的多项式曲线。以下是关于 polyfit() 函数的一些基本说明和示例用法: 语法 p = polyfit(x, y, n) x 和 y 是数据点的横纵…...

VMR,支持30+种编程语言的SDK版本管理器,支持Windows/MacOS/Linux。

官方文档地址:https://docs.vmr.us.kg/ 欢迎安装使用,分享转发,前往github star。 跨平台,支持Windows,Linux,MacOS支持多种语言和工具,省心受到lazygit的启发,拥有更友好的TUI&…...

模板初阶【C++】

文章目录 模板的作用模板的原理模板分为两大类——函数模板和类模板函数模板语法函数模板实例化模板函数的方式模板函数的类型转换既有函数模板又有已经实现的函数,会优先调用哪一个? 类模板语法模板类实例化对象模板类的模板参数可以有缺省值类模板中的…...

搭建Vue的环境

目录 # 开篇 步骤一,准备Vue 的环境 步骤二,下载Vue.js的包 步骤三,创建并打开写前端代码的文件夹 步骤四,在VSCode中引入Vue.js的包 步骤五,创建第一个vue.html Vue其他知识 Vue.config命令 # 开篇 介绍&…...

[学习笔记]-MyBatis-Plus简介

简介 Mybatis-Plus(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 简言之就是对单表的增删改查有了很好的封装。基本不用再单独写sql语句了。目前此类…...

2024.6.23 刷题总结

2024.6.23 **每日一题** 520.检测大写字母,本题是简单模拟题,考察了ASCLL码相关的知识,根据题意,本题对于字符串有三种正确的用法,所以我们分三类来讨论,先根据首字母的大小写来分类,如果首字母…...

mysql查询不同用户(操作记录)的最新一条记录

先用MAX(time) 和 group by item_id 查询出不同的item_id对应的最大时间,然后再在外面连表查询,查询 表中 item_id 和login_time 时间 相等于刚才的查询记录的记录 具体语句如下 select a.* from reyo a join (select item_id,max(login_time) as ti…...

Java中如何使用设计模式来解决编程问题?

Java中使用设计模式来解决编程问题,可以显著提高代码的可复用性、可维护性和可读性。设计模式是一套被广泛应用于软件工程的解决方案,描述了在特定上下文中面对具体问题时的可复用解决方案。以下是几种常用的设计模式及其应用场景: 单例模式…...

单机、集群和分布式

目录 1.概述 2.单机服务器 单机版的服务器的性能,设计上的瓶颈? 3.集群 解决瓶颈1: 没有解决瓶颈2: 没有解决瓶颈3: 集群的优点? 集群的缺点? 4.分布式 分布式的优点? 分…...

qt开发-10_LineEdit

QLineEdit 小部件是一个单行文本编辑器。行编辑允许用户使用一组有用的编辑函数输入和 编辑一行纯文本。包括撤消和重做、剪切和粘贴以及拖放。通过更改行编辑的 echoMode(),它 还可以用作“只写”字段,用于输入如密码等. 创建好项目后,进入 …...

福昕PDF编辑器快速去除PDF水印方法

在福昕PDF编辑器软件中打开一个带有水印的PDF文件,点击如图下所示的页面管理->水印,点击全部移除 点击 是 水印消除(注:部分类型的水印可以消除,但是有些类型的水印无法通过此方法消除)...

Cloudflare 常用操作

一、域名托管到cloudflare 登录cloudflare->添加站点->填写域名(例如阿里云)->继续选择free套餐->继续->保存cloudflare分配的DNS地址->进入阿里云域名管理->进入DNS管理/DNS修改把DNS地址修改为cloudflare分配的两个DNS->保存->回到cloudflare->…...

elementUI的table使用展开功能( type=“expand“ ),展开时合起上一次展开的内容,始终保持展开内容为一个,并且再次点击合起自身

直接上代码了没什么可讲的,主要是用到 row-key"id" :expand-row-keys"expands row-click"handleRowClick" <template><div class"ele-body"><el-card shadow"never"><!-- 数据表格 --><ele-pro-t…...

【金】?Y? python网页前端streamlit

1、如何从 Google Colab Notebook 启动 streamit参考-How to Launch Streamlit App from Google Colab Notebook !streamlit run web.py & npx localtunnel --port 8501 & curl ipv4.icanhazip.com...

数据仓库之Lambda架构

Lambda架构是一种设计大规模数据处理系统的架构模式&#xff0c;它结合了批处理和实时处理的优点&#xff0c;以应对大数据的多样性、速度和规模问题。该架构主要由三个层次组成&#xff1a;批处理层&#xff08;Batch Layer&#xff09;、速度层&#xff08;Speed Layer&#…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...