笔者最近体验了双系统安装和网卡安装的快乐和痛苦经历,过程很痛苦,结果很美好,在这里和大家简单分享一下,希望有所帮助。

1.双系统安装

第一次装双系统,最好搞清除一些概念,然后在磁盘分配上花了一点时间,不要急着动手,否则很可能会遭遇很多挫折,导致安装失败,搞不好还可能导致原来磁盘上的资料丢失,要恢复就没这么简单了。

由于也是第一次安装,网上资料很杂,水平有好有坏。这里笔者贴出一个靠谱的链接可作为实际操作指南:https://www.cnblogs.com/masbay/p/10745170.html,里边写得比较详细,理解了之后照做就行。

这里笔者强调几点。

a.了解你的电脑型号

如果是老电脑,即电脑型号是MBR + 单硬盘,而近几年购置的电脑型号基本是UEFI新式 + 双硬盘(SSD固态硬盘 + HDD机械硬盘)。至于两者区别我们这里不关心,只需要知道自己BIOS类型就行。

如果是UEFI BIOS,那么肯定支持EFI格式分区引导加载,EFI分区不需要太大,一般200MB左右,用于存储加载程序和驱动程序。如果没有装双系统而是只有WIndows系统,比如WIndows10,那么其实电脑上已经存在一个EFI格式的分区,即Windows在安装时会分配100MB左右的分区存储Windows Boot Loader引导程序。如果是安装双系统,我们也需要一个100MB以上的存储空间(分区格式是efi格式)用来存放双系统引导程序。

b.双系统磁盘分区分配

Windows C盘D盘可能是FAT32或NTFS格式,而Linux下是ext4格式,一般情况下双系统磁盘是不共享的,Windows访问不了ext4格式的磁盘分区,同理,Linux也无法访问Windows磁盘文件。

假设原来系统只有CD两个分区,为了防止安装Linux系统(如Ubuntu)导致D盘数据丢失,可能需要借助磁盘分区工具进行分割,比如Windows10的磁盘管理工具或WinPE的磁盘分区工具。

在上面我们讲到了需要预留100MB以上的磁盘用于存储双系统引导程序,那么就可以在C盘剩余存储空间中格出一个分区,比如200MB的空闲分区,在Ubuntu系统安装时找到这个分区并设置成引导分区。另外我们还需要在HDD中比如原来的D盘剩余空间出开出一个内存2倍的空间当作虚拟内存swap。再分配几十个G的独立分区用于存放Ubuntu系统文件,一般挂载在/根路径下,ext4格式,相当于WIndows下的C盘。最后再分配上百G的空间存放用户数据,一般挂载在/home路径下,ext4格式,相当于WIndows下的D盘。

具体分配可参考上述操作指南。双系统安装就简单介绍到这。

2.USB无线网卡安装

USB无线网卡安装在Ubuntan驱动安装有一定的典型性,很可能你也会遇到和我一样的问题。

好了,假设你已经安装好了双系统,Windows和Ubuntu在开机后都可以正常进入,但Ubuntu下还有一个令人头疼的问题:进入Ubuntu后上上不了网,无法识别无线网卡,而电脑所在房间又无法插网线使用有线上网,怎么办呢?

其实仔细想想,不能识别无线网卡也是正常的,原因是这个无线网卡本来就算在某东买的,需要插入USB驱动才能使用,那么第一个想法肯定是找找驱动。看怎样省力一些?为此,笔者尝试了几种办法。

a.网卡安装尝试

尝试1:在Ubuntu软件和更新中查找附加驱动,未找到,尝试失败。

尝试2:找到购买时附带的驱动光盘,打开一看,只有Windows的驱动,尝试失败。

尝试3:根据产品型号搜索,果然在官网中找到了Linux驱动压缩包,打开后发现后发现是源文件需要编译,且官方网站上说只支持2.x内核,而笔者装的是截至2020.7月最新的Ubuntu,内核版本是5.4.0-41-generic。考虑到目前也没其他好办法,到平台编译试试先。果然编译后报错:函数不存在,根据错误简单搜索了一下,反正就是需要改源代码。这时有想过改改源码,但停下来想一想,如果这样做,成功的概率可能不大,很可能会陷入无穷尽的调试当中,且自己C语言也不算熟,先还是放一放,看有没有其他办法。

尝试4:这个最后证明是可行的...

b.Realtek 802.11n NIC在Ubuntuan成功安装

1.执行lsusb命令,查看网卡具体信息

如下所示。

$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 046d:082d Logitech, Inc. HD Pro Webcam C920
Bus 003 Device 002: ID 2604:0012 Realtek 802.11n NIC
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 046d:c077 Logitech, Inc. M105 Optical Mouse
Bus 001 Device 003: ID 046d:c31c Logitech, Inc. Keyboard K120
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Realtek 802.11n NIC就算我们无线网卡的名称,也是比较典型的无线网卡,比较奇怪的是竟然官网不支持。

2.根据网卡信息搜索网卡驱动安装方法

通过搜神“Realtek 802.11n NIC”找到了一个比较靠谱的答案,链接如下。

https://www.cnblogs.com/idorax/p/12369624.html

https://github.com/gnab/rtl8812au (驱动地址)

是的,笔者的无线网卡和这位网友的一样,看来他成功了,感谢github上活跃的各路神仙,按照博文照做,一切看起来很顺利,但很可惜,执行到最后一步:“sudo modprobe 8812au”报了一个错,如下:

$ sudo modprobe 8812au
modprobe: ERROR: could not insert '8812au': Operation not permitted

3.解决往内核添加模块操作不被允许问题

即解决“modprobe: ERROR: could not insert '8812au': Operation not permitted”权限不足问题。

出现这个错首先想到了是不是没有用户执行权限,但很显然不是,因为我们已经加了sudo。然后又试着在网上找了找,大部分都三无效的,但最后还是找到了一篇博文给出了原因和解决方案,链接如下:

https://amefs.net/archives/2003.html

操作不被允许真正的原因是:本地编译创建的驱动缺少签名,系统认为是可疑的,所以禁止modprobe操作(incmod也不行)。为了系统安全,我们需要开启 secure boot,那么如果此时执行 sudo modprobe 8812au操作则可能会无法正常执行。

原因找到了,那接下来就好办了,由于 secure boot 开启时系统禁止加载所有无签名的驱动,因此需要对这些驱动进行签名。要生成签名,我们首先需要先生成私钥和证书。然后根据私钥和证书完成对驱动的签名。

私钥和签名生成脚本如下。

#!/bin/bash
name="Kernel Modules Signing"
out_dir='/root/module-signing'
sudo mkdir ${out_dir}
sudo openssl req -new -x509 -newkey rsa:2048 -keyout ${out_dir}/MOK.priv -outform DER -out ${out_dir}/MOK.der -days 36500 -subj "/CN=${name}/"
sudo chmod 600 ${out_dir}/MOK*

我们还会用到MOK,MOK 是 Machine-Owner Key 的缩写,通过添加 MOK 证书可以实现与 OEM 以及系统厂商一样的对驱动签名管理的能力。我们需要通过 mokutil 工具添加新生成的证书。此处会需要两次输入管理密码,随后会在 MOK 的管理界面用到该密码。

sudo mokutil --import /root/module-signing/MOK.der

执行成功后,重启,进入MOK管理平台,按照链接操作写入Enroll MOK,并启动Ubuntu。

最后,给驱动签名,如下。

$ sudo /usr/src/linux-headers-5.4.0-41-generic/scripts/sign-file sha512 /root/module-signing/MOK.priv /root/module-signing/MOK.der $(modinfo -n /lib/modules/5.4.0-41-generic/kernel/drivers/net/wireless/8812au.ko

很不幸,还是失败了,报了这个错:“PEM_read_bio_PrivateKey:bad password read in...”

这里一开始也是一头雾水,没有哪里说要输入密码啊,怎么就报密码错误呢?

原因其实也很简单,我们在生成私钥和证书时提示输入密码,因此私钥使用是需要输入密码的,但是我我们在给驱动添加签名时并没有提示我们输入密码,但是给出bad password错误。笔者尝试使用下面的命令,用新生成的这个key代替有密码的key。

$ sudo openssl rsa -in /root/module-signing/MOK.priv -out /root/module-signing/MOK.priv.unsecure

然后再利用不用输入密码的key给驱动加签名:

$ sudo /usr/src/linux-headers-5.4.0-41-generic/scripts/sign-file sha512 /root/module-signing/MOK.priv.unsecure /root/module-signing/MOK.der $(modinfo -n /lib/modules/5.4.0-41-generic/kernel/drivers/net/wireless/8812au.ko)

执行成功!

最后,再次执行内核添加模块命令。

$ sudo modprobe 8812au 

成功了,喜庆万分,可喜可贺!Ubuntu右上角有wifi图表了,输入密码就能正常上网了,have fun!

参考资料

https://www.cnblogs.com/masbay/p/10745170.html

https://www.cnblogs.com/idorax/p/12369624.html

https://github.com/gnab/rtl8812au

https://amefs.net/archives/2003.html

https://blog.csdn.net/buster2014/article/details/50921390

ubuntu双系统引导梅花_Ubuntu Windows双系统和USB无线网卡安装的正确方法相关推荐

  1. ubuntu双系统引导梅花_手把手教你安装win10+Ubuntu16.04的双系统(全网最详细)

    点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自AI蜗牛车,禁二次转载 前言 本系列为小白入门整个AI项目教程,主要涉及双系统 ...

  2. xp linux双系统引导修复工具下载,双系统引导修复工具下载

    双系统引导修复工具是一款可以帮助你的电脑进行双系统引导修复的系统软件,当你安装两个系统的时候其中一个系统出现问题的时候就可以使用它来修复了,非常方便,还能把不用的系统删掉,需要的朋友快来当易网下载使用 ...

  3. ubuntu双系统引导梅花_Win10+ubuntu 双系统安装顺顺利利!

    首先谢谢知乎上各个相关回答的大佬们 你们踩过的坑我们可以躲过去了 我们可以踩新版本的坑了哈哈哈哈哈哈 第一次安装双系统,也是第一次安装ubuntu 居然顺顺利利!真是难以置信! 记录一下给后面的朋友指 ...

  4. windows8 linux双系统,小白如何在Windows 8.1的笔记本上安装ubuntu双系统

    本文希望能给像我一样的小白一点帮助.非计算机专业,也绝对能做到. 这些经验是在网上摸索了两天多,不时请教专业朋友得出的,过滤了很多无用甚至有反作用的信息.尤其适合:笔记本一买回来就是win8 或者wi ...

  5. 双系统引导失败,windows的引导修复方法

    本文同步更新与我的个人博客:https://blog.hizrd.top,欢迎访问! 本文在我的个人博客上的链接:https://blog.hizrd.top/2019/01/12/%E5%8E%9F ...

  6. ubuntu和Windows双系统开机直接进入Windows,双系统添加Ubuntu引导

    问题描述:我安装的是Ubuntu和Windows双系统,原本是好的,可以正常进入选择系统的引导界面(应该是叫grub吧).然而,它崩了,不见了,开机直接进入Windows,没有引导了,,,, 通过查阅 ...

  7. 重装WIN7之后使用Ubuntu LiveCD修复grub2双系统引导

    重装WIN7之后使用Ubuntu LiveCD修复grub2双系统引导 拿起ubuntu启动光盘启动进入试用ubuntu,打开终端输入命令 sudo fdisk -l  #查看我ubuntu安装的位置 ...

  8. ubantu引导 修改win10_win10 + Ubuntu 20.04 LTS 双系统 引导界面美化

    效果展示 自带引导界面太丑,下了个主题美化一下,效果如下 主题下载地址 安装主题 解压 $ tar xvJf Vimix-1080p.tar.xz 进入解压后的文件夹 $ cd Vimix-1080p ...

  9. Ubuntu与Windows10双系统引导问题-已解决

    Ubuntu与Windows10双系统引导问题 我是先安装的Windows10 然后安装的Ubuntu 18.04桌面版系统,Ubuntu的系统EFI也安装在了Windows10的efi分区里面,所以 ...

最新文章

  1. 安卓x86_Android:虚拟机体验基于安卓10的BlissOS V12.2 Android X86版
  2. 组合数函数-快速提取所有可能的组合数
  3. 快速提升页面性能的必备利器
  4. ERP系统的一般构成示意图
  5. JQuery果然是神器,这里顺便测试一下我发现的那个漏洞!
  6. JavaWeb(part1)--servlet
  7. MassTransit中RequestResponse基本使用
  8. 如何清除以前连接到Mac的WiFi网络
  9. 中国卫生健康统计年鉴(2006-2021年)
  10. 微信小程序 实现提示弹窗
  11. 走进晶圆厂,深入了解芯片制造流程
  12. 一封谷歌账号辅助邮箱变更的广告邮件
  13. Spring In Action 学习 第一章 Spring之旅
  14. 怎么样关闭计算机管理员,电脑怎么样使用命令行程序启用和关闭管理员账户 - 今日爆点...
  15. Python画玫瑰花
  16. HTML5中新增的元素有哪些
  17. 文件上传、切片上传、秒传等
  18. Android实现截屏和截长图功能的几种方法
  19. 姓名脱敏-除姓外为星号*
  20. 热血传奇服务端装备穿戴触发脚本

热门文章

  1. android 键盘 自动消失,android 键盘状态,获取键盘显示和隐藏
  2. 在线制作html模板,快速建站 20个设计优秀的HTML网站模板(免费)
  3. 微信聊天记录服务器端口是什么意思,微信端口异常是什么意思?
  4. 联想与戴尔台式计算机比较,戴尔台式机和联想台式机哪个好用
  5. 同时拿到网易和微信的offer!!他是怎么做到的?
  6. matlab怎么添加注释快捷键,Matlab注释技巧
  7. java并发编程2-一起看Happens-Before 规则的前因后果
  8. Question Retrieval with Distributed Representations and Participant Reputation in Community QA论文笔记
  9. PostgreSQL数据库连接
  10. 深深的思考与共鸣——资源共享