百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

拒绝踩坑,分享我安装win11和Ubuntu双系统的虐心过程

off999 2025-07-14 20:43 26 浏览 0 评论

【前言】首先阐明一下,我为什么要安装Ubuntu以及win11双系统。最近,我一直在自学python编程,马上开始学习python爬虫时,在网上看到一篇文章说python编程最好是linux环境,尤其是爬虫等网络编程,并且程序员都是使用linux操作系统工作。首先网络服务器绝大多数都是部署在linux系统之上,服务器版linux很流行;其次是linux相比windows系统要纯净、安静得多,现在确实都厌烦了国内混乱不堪的互联网应用,各种弹窗广告、木马、恶意代码、流氓软件等等,让人防不胜防、咬牙切齿,使用windows系统的电脑简直不敢越雷池一步!基于这些,我也想假装一下程序员,感受一下专业的滋味,经过一番考察,决定安装比较流行的linux发行版Ubuntu桌面版。

一、下载Ubuntu光盘镜像文件

初次使用linux系统,感觉比较新鲜,因此想体验一下完整独立的Ubuntu系统,而不想使用虚拟机安装,所以最好的选择就是安装双系统。话不多说,直接百度Ubuntu下载,搜索页面第一个就是Ubuntu的官方下载网站,点击进入出现以下画面:

页面中一共有7项下载内容,逐项了解一下,确定第一项就是我要下载的桌面版,直接点击进入,来到最后下载界面:

在这里可以看到,当前最新版是22.04.1 LTS,LTS是长期支持版本,免费安全维护更新5年,点击下载光盘镜像文件到硬盘,文件大小为5G多。

二、制作USB启动盘

首先找一个8G以上的U盘,如果有重要资料需要事先备份,因为U盘会被自动格式化。打开USB启动盘专业制作工具Rufus,点击“选择”按钮,选择刚才下载的光盘镜像文件,然后所有选项就自动设置好了,点击开始完成制作。由于界面和操作很简单,这里就不再配图了。

三、准备硬盘空间

由于硬盘事先都分配给了win10,为了不影响原来win10的使用,我采取了网上有人讲解的办法——压缩磁盘空间。从这里开始,头脑就得保持清醒,操作就得谨慎了!

首先在桌面上的“我的电脑”或“此电脑”上右键,点击“管理”,调出“计算机管理”界面。再点击“磁盘管理”,界面如下:

找一个剩余空间较大的分区,右键选择“压缩卷”,界面如下:

输入你想分配给Ubuntu的空间数量,然后点击“压缩”按钮。压缩完成后,会出现一块未分配的空间,就是刚刚压缩出来的,用来安装Ubuntu系统。

四、安装Ubuntu系统

插入USB启动盘,重新启动电脑,选择从U盘启动,进入下图这样的引导画面。这里一定要注意谨慎选择,尤其是英文不好的人,我就是在这里翻的车!

我当时也没仔细研究,看到第一项是Install,就直接回车安装。进去后发现界面都是英文,并且没有网上说的中文彩色图形安装界面。按照自己的理解点选选项,然后系统开始安装,先后又有几次选项,费了半天劲也没出现预想的画面!这时我开始心虚冒汗了,决定不再继续安装,按下电脑电源复位键,重新启动了原来的win10系统。看到桌面上一个又一个的失效快捷方式,我傻眼了!打开“我的电脑”,我哭了!我原来的D盘、E盘和F盘全都没了,只剩下一个孤零零的C盘!经过一番研究,我知道我电脑上那几个分区被Ubuntu给占用了,因为在刚才安装Ubuntu时,安装位置我没有选择通过压缩磁盘得到的那个空闲位置,而是选择安装在了DEF盘所在的硬盘,分区都被更改了,之所以C盘得以保存,是因为C盘在另一块独立的固态硬盘上!

至此,我的电脑系统彻底被破坏,失去的DEF几个分区里面的重要资料都没了,还遗留着未安装完Ubuntu的系统分区。逼上梁山,只能把电脑全新重做系统了!因此,我决定开始重新安装win11和Ubuntu双系统。

五、win11和Ubuntu双系统

有了上面的经历和经验,这次操作起来可以说得心应手了!刚才的Ubuntu系统U盘不用动,再找一个8G以上U盘,下载安装深度启动盘制作工具,制作好win11的USB启动安装盘。首先安装win11,都是全自动,不必细说。重点是在分区时要选择手动创建分区,一定要给Ubuntu预留一块空闲空间,暂时不用格式化,在后面安装Ubuntu时会自动格式化。

win11能够正常启动后,再把Ubuntu的启动盘插上,重新启动电脑,选择U盘启动,再一次来到了那个引导画面:

这次我毅然选择了第二项——安全图形模式,终于见到了传说中的彩色图形安装界面。

比较直观的几个选项画面我就不多说了,其中“更新和其他软件”页面里,我选择了“正常”安装,没有选择“最小安装”,因为我的无线网卡不能被识别,就是说不能上网,所以当时没有勾选下面的更新选项。

最重要的画面来了,就是导致我的win10分区丢失的地方,一定一定要选择好!这就是“安装类型”选择,请看下图。

敲黑板划重点——这里一定要选择“其他选项”,选择上面两个选项都可能会把windows系统的分区破坏。然后,在接下来的安装位置选择这里一定要选择“空闲”分区,一定要看好,见下图。

这一步通过后,就没有悬念了,开始正常安装,包括设置用户名和密码等。然后的然后,你就看到Ubuntu的庐山真面目了!

六、双系统引导菜单

双系统全部正常安装使用后,还有一个问题,就是默认的双系统引导菜单第一项是Ubuntu,而我经常使用的还是win11,在出现引导菜单时稍不留神系统就会自动进入默认选项,因此需要更改一下顺序。由于是先安装了win11后安装的Ubuntu,所以引导菜单是由Ubuntu形成的,这就需要在Ubuntu里修改配置信息,修改方法如下:

1、进入ubuntu系统,按住Ctrl+Alt+T键,打开命令终端。

2、输入命令:sudo gedit /etc/default/grub,打开grub文件。其中第6行代码是:GRUB_DEFAULT=0,0就表示是默认启动第一项,因为引导菜单的项目号是从0开始的。而我的win11启动项排在第5个位置,也就是说win11的启动项目号是4,所以把0改成4后保存。

3、输入命令:sudo update-grub,更新grub的配置文件。

再次重启电脑,你会发现上面这种更改,并不是调整了启动项的位置,而是把高亮选择条默认放在了win11启动项上,这样如果几秒钟内你不按任何键,就直接启动win11系统了。

至此,我的win11和Ubuntu双系统就正确安装了。可能有些地方我自己理解和分析的不对,但这是我自己边上网学习边摸索出来的一点经验,分享出来让一些跟我有相同需求的人有所借鉴,共同学习,共同进步!

相关推荐

Linux 网络协议栈_linux网络协议栈

前言;更多学习资料(包含视频、技术学习路线图谱、文档等)后台私信《资料》免费领取技术点包含了C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,Z...

揭秘 BPF map 前生今世_bpfdm

1.前言众所周知,map可用于内核BPF程序和用户应用程序之间实现双向的数据交换,为BPF技术中的重要基础数据结构。在BPF程序中可以通过声明structbpf_map_def...

教你简单 提取fmpeg 视频,音频,字幕 方法

ffmpeg提取视频,音频,字幕方法(HowtoExtractVideo,Audio,SubtitlefromOriginalVideo?)1.提取视频(ExtractVi...

Linux内核原理到代码详解《内核视频教程》

Linux内核原理-进程入门进程进程不仅仅是一段可执行程序的代码,通常进程还包括其他资源,比如打开的文件,挂起的信号,内核内部的数据结构,处理器状态,内存地址空间,或多个执行线程,存放全局变量的数据段...

Linux C Socket UDP编程详解及实例分享

1、UDP网络编程主要流程UDP协议的程序设计框架,客户端和服务器之间的差别在于服务器必须使用bind()函数来绑定侦听的本地UDP端口,而客户端则可以不进行绑定,直接发送到服务器地址的某个端口地址。...

libevent源码分析之bufferevent使用详解

libevent的bufferevent在event的基础上自己维护了一个buffer,这样的话,就不需要再自己管理一个buffer了。先看看structbufferevent这个结构体struct...

一次解决Linux内核内存泄漏实战全过程

什么是内存泄漏:程序向系统申请内存,使用完不需要之后,不释放内存还给系统回收,造成申请的内存被浪费.发现系统中内存使用量随着时间的流逝,消耗的越来越多,例如下图所示:接下来的排查思路是:1.监控系统中...

彻底搞清楚内存泄漏的原因,如何避免内存泄漏,如何定位内存泄漏

作为C/C++开发人员,内存泄漏是最容易遇到的问题之一,这是由C/C++语言的特性引起的。C/C++语言与其他语言不同,需要开发者去申请和释放内存,即需要开发者去管理内存,如果内存使用不当,就容易造成...

linux网络编程常见API详解_linux网络编程视频教程

Linux网络编程API函数初步剖析今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作。1、socket(family...

Linux下C++访问web—使用libcurl库调用http接口发送解析json数据

一、背景这两天由于一些原因研究了研究如何在客户端C++代码中调用web服务端接口,需要访问url,并传入json数据,拿到返回值,并解析。 现在的情形是远程服务端的接口参数和返回类型都是json的字符...

平衡感知调节:“系统如人” 视角下的架构设计与业务稳定之道

在今天这个到处都是数字化的时代,系统可不是一堆冷冰冰的代码。它就像一个活生生的“数字人”,没了它,业务根本转不起来。总说“技术要为业务服务”,但实际操作起来问题不少:系统怎么才能快速响应业务需求?...

谈谈分布式文件系统下的本地缓存_什么是分布式文件存储

在分布式文件系统中,为了提高系统的性能,常常会引入不同类型的缓存存储系统(算法优化所带来的的效果可能远远不如缓存带来的优化效果)。在软件中缓存存储系统一般可分为了两类:一、分布式缓存,例如:Memca...

进程间通信之信号量semaphore--linux内核剖析

什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠...

Qt编写推流程序/支持webrtc265/从此不用再转码/打开新世界的大门

一、前言在推流领域,尤其是监控行业,现在主流设备基本上都是265格式的视频流,想要在网页上直接显示监控流,之前的方案是,要么转成hls,要么魔改支持265格式的flv,要么265转成264,如果要追求...

30 分钟搞定 SpringBoot 视频推拉流!实战避坑指南

30分钟搞定SpringBoot视频推拉流!实战避坑指南在音视频开发领域,SpringBoot凭借其快速开发特性,成为很多开发者实现视频推拉流功能的首选框架。但实际开发中,从环境搭建到流处理优...

取消回复欢迎 发表评论: