🔥 作者:FrigidWinter
🔥 简介:主攻机器人与人工智能领域的理论研究和工程应用,业余丰富各种技术栈。主要涉足:【机器人(ROS)】【机器学习】【深度学习】【计算机视觉】
🔥 专栏:
目录
0 电脑环境
1 安装Ubuntu双系统
1.1 刻录系统引导盘
1.2 在Windows下创建空白分区
1.3 重启电脑进入安装界面
1.4 图形化安装Ubuntu
2 配置Ubuntu系统
2.1 分辨率、亮度、无线网卡设置
2.2 显卡驱动安装
2.3 设置GRUB启动项
2.4 安装中文输入法
3 卸载Ubuntu系统
3.1 查看Ubuntu分区情况
3.2 删除Ubuntu分区
3.3 删除开机引导项
3.4 修复Windows-Grub
附录
附1 搜索旧版本NVIDIA驱动程序
0 电脑环境
512G+1T双硬盘。
2060独显。主要考虑Ubuntu下装显卡驱动的问题。
BIOS模式为UEFI。
Win+R快捷键进入"运行",输入msinfo32回车,出现以下界面,可查看BIOS模式。BIOS模式有传统的MBR模式和新式UEFI模式,这将对安装双系统产生直接影响。若你的电脑属于传统MBR模式,强烈建议重装Windows系统来更新BIOS模式到UEFI。本文基于UEFI模式安装双系统。
BIOS模式为UEFI
1 安装Ubuntu双系统
1.1 刻录系统引导盘
(1) 下载Ubuntu镜像
在Ubuntu版本发布中下载要装的系统版本映像.iso,本文下载ubuntu-20.04.3-desktop-amd64.iso
(2) 打开刻录软件UltralSO
找到镜像
(3) 刻录引导文件
UltralSO
菜单栏选择启动->写入硬盘映像,界面如下。
检查U盘盘符和映像文件无误后,格式化硬盘,再写入映像即可。
1.2 在Windows下创建空白分区
打开【磁盘管理】为ubuntu分配空间
(1)单硬盘情形
直接选择最后一个盘(比如CD两个盘的最后一个是D盘,以此类推,在该盘点击右键,选择压缩卷,并分配压缩空间。
(2)双硬盘情形
需要先在C盘分出200~500M的空白分区用来安装ubuntu的启动项,然后再在另一块硬盘选择最后一个盘分配空间。这样做的原因在于:电脑开机时会自动在系统盘所在硬盘搜索启动项以启动系统,为使ubuntu启动项也能被搜索到,需要将启动项安装在这里,我们可以在开机时手动选择进入哪个系统。
分配好的情况(双硬盘情形)
1.3 重启电脑进入安装界面
(1)关闭securate boot
若不disable会出错
(2)SATA Config配置
Ubuntu安装过程中,一般要设置SATA Config为AHCI模式,否则将出现读不出安装类型和磁盘,无法分区的现象,但是将SATA Config配置为AHCI模式后,将无法进入Windows系统(如果是第一次配置),这是因为在IDE模式下配置的Windows并没有AHCI的驱动。
解决方案:先调回IDE模式确保能进入Windows10,然后shift+重启选择安全模式,在安全模式进系统前,提前进入BIOS将SATA Config重新配置成AHCI,这样Win10可以自动搜索并安装AHCI驱动,再次重启即可以AHCI模式进入Ubuntu和Windows10两个系统。
(3)插好系统盘,重启电脑
根据自己电脑按相应的键进boot manager,找到USB启动项,回车即可进入。
1.4 图形化安装Ubuntu
(1)选择安装
(2)安装模式
点击安装Ubuntu
和为图形或无线硬件,以及MP3和其他媒体安装第三方软件
。
(3)分区
选择手动分区
点击空闲盘符,点击+
进行分区,如下:
efi
:如果是单硬盘,在唯一的空闲分区上添加,大小200~500M,逻辑分区,空间起始位置,用于efi;如果是双硬盘,找到事先分好的200~500M空闲分区添加,逻辑分区,空间起始位置,用于efi
swap
:Ubuntu的虚拟内存,一般为电脑物理内存的2倍左右,可以将其分为8G,逻辑分区,空间起始位置,用于"swap"或"交换空间"
/
:Ubuntu根目录,用于安装系统和软件,相当于windows的系统盘,我们将其分为50G,主分区,空间起始位置,用于"ext4日志文件系统",挂载点为/
/home
:相当于windows的其他盘,剩下空间全分给它,逻辑分区,空间起始位置,用于"ext4日志文件系统",挂载点为/home
(4)安装启动项
在分区界面下方,选择安装启动项的位置为划分的启动分区编号,例如本文选择了525M的/dev/nvme0n1p7
为启动分区,这里就选这个,之后点击Install Now
安装完成后重启即可。
2 配置Ubuntu系统
2.1 分辨率、亮度、无线网卡设置
若Ubuntu的Linux内核版本太低会出现亮度无法调节、分辨率无法设置、没有WIFI图标等诡异情况,这里推荐首先升级内核。
首先查看Ubuntu的Linux内核版本
uname -r
一般Ubuntu16
的Linux内核版本都较低,此时需要升级内核;Ubuntu18
、Ubuntu20
则没有这些问题。
进入Linux内核下载一个需要的版本,大家可以先看下文无线网卡驱动来确定内核版本,本文选择5.10内核。
到ubuntu软件下载的目录下,运行
sudo dpkg linux-i *.deb reboot
即可成功升级内核。
此时重启计算机后,一般可以解决问题,但不升级内核按网络上其他方法却很难调节。
若系统还是无法出现WIFI标志,考虑安装无线网卡驱动,这里需要根据PC的显卡型号来下载,本文的无线网卡是Inter AX201 160MHz,因此到Inter无线网卡驱动官网下载
可以看到该驱动要求Linux 5.2+
驱动下载完毕后,到下载目录执行
cp iwlwifi-*.ucode /lib/firmware
接着到firmware驱动下载并安装firmware驱动,重启计算机就能看到WIFI标志。
还可能遇到一个异常:检测到WIFI但始终连不上。有方案通过修改网络设置中有线网络的IP、掩码等解决,但本机实测无效。解决方案仍然是更换Linux内核版本。
2.2 显卡驱动安装
(1) 图形化安装
适合Ubuntu20.04的用户
- 搜索
Additional Drivers
直接选择驱动,点击
Apply Changes
安装即可。
- 重启设备后输入
nvidia-smi
出现以下界面则安装成功
(2) .run
模式安装
- 进入NVIDIA官网下载对应显卡版本的驱动。
- 删除原有NVIDIA驱动
#对于通过PPA以及Ubuntu自带的软件商店卸载指令如下 sudo apt-get remove --purge nvidia* sudo apt-get remove --purge nvidia-* #对于通过官网.run文件,卸载指令如下 sudo chmod +x *.run sudo ./NVIDIA-Linux-x86_64-470.57.02.run --uninstall apt-get purge nvidia* apt-get autoremove
- 禁用nouveau驱动
sudo gedit /etc/modprobe.d/blacklist.conf
文末添加
blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off
- 更新
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf update-initramfs -u
- 重启检查nouveau驱动是否禁用成功
reboot # 验证(无信息返回即可) lsmod | grep nouveau
- 按
ctrl+alt+f1
进入字符界面正式安装
# 关闭图形界面 sudo service lightdm stop # 授权run文件 sudo chmod a+x NVIDIA-Linux-x86_64-xxx.xx.run # 安装(禁用opengl以避免出现循环登陆的问题) sudo ./NVIDIA-Linux-x86_64-xxx.xx.run -no-x-check -no-nouveau-check -no-opengl-files
- 安装过程的选项
The distribution-provided pre-install script failed! Are you sure you want to continue?yes
Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?No
Nvidia’s 32-bit compatibility libraries?No
Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.Yes
- 打开图形界面并检查安装情况
sudo service lightdm start nvidia-smi nvidia-settings
若报错:NVIDIA-SMI has failed because it couldn‘t communicate with NVIDIA driver. Make sure that the latest driver is installed and running
则
sudo apt-get install dkms sudo dkms install -m nvidia -v xxx.xx
2.3 设置GRUB启动项
在Ubuntu中
sudo gedit /etc/default/grub
按照自己的需求更改
GRUB_DEFALUT=x,x是希望默认的启动项,避免每次启动都进入Ubuntu系统。
GRUB_TIMEOUT_STYLE,是否显示倒计时,hidden的属性表示不会显示倒计时
GRUB_TIMEOUT:等待时间,单位是秒
GRUB_GFXMODE:屏幕的显示像素
修改完成后
sudo update-grub
对刚才的设置进行更新。
2.4 安装中文输入法
(1) 安装中文包
sudo apt-get update sudo apt-get install language-pack-zh-hans
(2) 安装输入法
sudo apt install ibus-libpinyin sudo apt install ibus-clutter
安装完成后重启系统。
(3) 配置
选择
智能拼音
3 卸载Ubuntu系统
3.1 查看Ubuntu分区情况
进入Ubuntu,打开终端输入
sudo fdisk -l
查看磁盘信息
如图所示,该磁盘安装Ubuntu的部分为/dev/nvme1n1p6~/dev/nvme1n1p8,分别为Linux交换分区和文件系统。
3.2 删除Ubuntu分区
(1) 打开磁盘管理软件DiskGenius
(2) 找到对应Ubuntu的Linux分区
磁盘1的交换分区和文件系统
磁盘0的启动分区
(3) 右键【删除分区】,并点击【磁盘】—>【保存分区表】
(4) 删除后打开【磁盘管理】检查分区情况,如下图所示为成功。
多出了删除的空间
3.3 删除开机引导项
删除了Ubuntu系统所有分区后,Windows的EFI分区里仍然会有Ubuntu系统的引导项,不删除它的话开机时Ubuntu系统将仍然存在(虽然无法访问)。
(1) win+R
打开cmd
命令行,输入以下命令
diskpart list disk
(2) 选择Windows所在磁盘并确定Windows的EFI分区
本文Windows位于磁盘0
select disk 0 list partition
该磁盘的分区信息,EFI分区一般是260M
(3) 为EFI分区分配盘符
盘符不可与已有盘符重复,注意防止与U盘、驱动器等外设重名,这里分配为J盘
select partition 1 assign letter=J
此时打开我的电脑
可以看到新的盘符
(4) 通过记事本
删除Ubuntu引导文件
由于权限不够,不能直接打开该磁盘,用管理员权限运行记事本,左上角【文件】—>【打开】,选择刚刚新增的J盘,删除Ubuntu文件夹
删除Ubuntu文件夹
(5) 删除刚刚分配的盘符
remove letter=J
3.4 修复Windows-Grub
若没有完全删除Ubuntu的相关信息,此时重启电脑将无法正常进入Windows系统,而进入Grub
界面。
GNU/Grub界面
接下来开始修复Windows-Grub
开机时(出现电脑商标之前)按F2键进入boot setup界面,通过方向键选定选择Windows Boot Manager,进入Windows系统。
建议:重新通过DiskGenius筛查漏掉的ubuntu启动文件,若未果,继续尝试下面的方法。
打开【磁盘管理】确认磁盘分区形式,本文为GPT
对于GPT
格式,下载EasyUEFI
打开软件,选择【管理EFI启动项】,删除Ubuntu,重启电脑。
附录
附1 搜索旧版本NVIDIA驱动程序
进入NVIDIA官网选择与自己的电脑显卡匹配的配置,点击开始搜索,默认结果只会出现目前最新的10个该显卡的驱动程序版本。快捷键F12打开控制台,在控制台输入如下代码后回车:
SystemScanner.prototype.DriverSearch = function(psid, pfid, osID, langCode, whql, beta, dltype, numresults ) {numresults=60;this.scannerStatusUpdate(GFE_SERVER_CONNECTING);theScanner.scannedDevice.downloadInfo=new Object();var parameters='psid='+psid;parameters+='&pfid='+pfid;parameters+='&osID='+osID;parameters+='&languageCode='+langCode;parameters+='&beta='+beta;parameters+='&isWHQL='+whql;parameters+="&dltype="+dltype;parameters+="&sort1=0";parameters+="&numberOfResults="+numresults;var requestUrl=this.driverManualLookupUrl+parameters;this.driversLogUIEvent("warn","SUID:"+this.tracker.scanID+" BEGIN DriverSearch requestUrl:"+requestUrl);this.debugTrace(requestUrl);jQuery.ajax({url:requestUrl,async:false,type:'get',success:function(response){try{theScanner.debugTrace("The Driver Lookup Service Returned:\n\n("+response+")");if(response.length>0){theScanner.resetResults();var driverLookupJsonObj='('+response+')';theScanner.resultsList=new Object();theScanner.resultsList=eval(driverLookupJsonObj)}if(theScanner.resultsList.Success==0){theScanner.scannerStatus="No driver available"}else{theScanner.scannerStatus="Results Ready"}}catch(e){this.driversLogUIEvent("error"," FAIL catch DriverSearch");theScanner.resetResults();theScanner.scannerStatus="No driver available"}},error:function(response){theScanner.resetResults();theScanner.scannerStatus="AJAX Call failed"}});this.driversLogUIEvent("warn","SUID:"+this.tracker.scanID+" END DriverSearch requestUrl:"+requestUrl);}
当搜索请求的驱动数据数量g过多时,就会出现请求长时间等待,甚至导致访问超时,此时需要修改numresults
。然后在当前页面,再次点击开始搜索。结果就会显示出匹配显卡的全部驱动程序版本。