5月 2021

Ubuntu21.04更新小记——Grub引导乱了!

1. 更新前的平静

原来一直使用20.04的我看到20.10果断更新,完美成功,纵享丝滑,但是在这一次21.04我同样果断更新之后,出现了一个说是问题不算严重,但是又不太舒服的Bug。更新前情况相似的话可以参考,等待一段时间再更新。

2. 具体情况

2.1 我认为的亮点

首先此次更新的亮点之一就是更换了桌面的运作方式,使得桌面的自定义和逻辑上更为先进。原先Gnome桌面是依赖X.org的原理来运行的,而本次的STS版本21.04使用了Wayland来作为桌面运作方式,总之就是更为流畅。虽然但是,这个默认桌面壁纸真嘟有点丑。

其次,使用了最新版的内核5.11,而在20.10是只能停留在5.8的版本的。而这个内核就是罪魁祸首了。

2.2 我的情况

我的Ubuntu是双系统的,电脑大概情况如下:

首先WIN10是装载在一个单独的128G的固态SSD中的,引导单独存在。而我的Ubuntu是安装在我的机械硬盘中的,安装的时候是专门有一个空的Ext4的分区来安装的,就是图中硬盘1的中间一百多G。而Ubuntu的引导就是那个名为boot的1G 的分区,可以看到是在机械硬盘的。此前引导找不到会自动进Grub2 GNU界面(ubuntu的通病),但是此前的Grub和内核都在机械硬盘,此次更新自动把我的Gtrub直接装到了WIN分区的EFI(混乱)。别问我怎么知道的,问就是进BIOS看到了。所以现在如果发生找不到内核的情况,输入Exit是没有办法进入Ubuntu的(之前可以,因为Grub和内核在同一磁盘,可以找到,而Ubuntu对于非系统所在的磁盘是所谓Media挂载的(就是文件映射),所以是不可能找到不同磁盘下的内核的),现在遇到这种情况只能强行关机,然后进入BIOS手动选引导项,十分的不舒服。

2.3 解决方法

  • 尝试在Grub界面修改手动Boot,即手动加在内核,但是ls查看,只有WIN的硬盘没有Ubuntu的,很明显不开机情况Media没有被挂载
  • 尝试手动在BIOS进入系统后修复Grub,即使用sudo apt update–grub2命令,仍然无法解决
  • 尝试手动修改conf文件,一样失败

2.4 建议

可以直接从Ubuntu20版本升级Ubuntu21.04的情况如下:

  • 单系统:Ubuntu是单系统(全盘,即没有装WIN只有linux)
  • 双系统:Ubuntu安装时没有选其他,引导和WIN在一起,两个系统也在同一物理磁盘(上面的磁盘都是指物理磁盘而非分盘)
  • 使用的是VM等虚拟机(相当于全盘)

注意:升级系统也会重置所有驱动(这里注意Linux的驱动是由内核提供的),如果内核不支持原有驱动就会刷掉,比如CUDA等,需要全部重新安装,很麻烦!!

引用图片出处:http://blog.yixao.net/tech/22681.html

斐讯N1原系统写入openwrt,开启科学上网,解锁锐捷校园网多网卡限制

1.准备工作

硬件准备:

斐讯n1一台
USB鼠标:主要用来点击打开adb模式
HDMI: 连接盒子到外接显示装置,如电视或者显示器
双公头USB: 主要用来刷机使用(一般不需要)
盒子网线: 用来连接路由器或者网线
U盘:用来写入openwrt镜像,或者其他系统镜像
笔记本电脑一台

软件准备:

首先前往下面的连接下载所有的工具和镜像

https://drive.google.com/file/d/1bStWBM1TBNTwsVEgLadwxd9KTYQ7icXh/view?usp=sharing

然后下载在你的笔记本电脑安装balenaEtcher,并将准备好的U盘写入相关镜像,资源包中有两个镜像,建议使用56+的那个

2.系统降级

警告:使用 Docker 请在更新固件前 注意备份 Docker 相关数据 及 文件夹,以免升级后丢失

将你的盒子通电,接上USB鼠标和HDMI线

然后快速点击屏幕上的版本号4次,提示开启ADB即可(关闭也是这样操作)

然后将你的盒子和你的笔记本电脑连接到同一局域网下,记下盒子右下角的IP地址

然后打开下载的工具中的文件夹,打开onekey,运行里面的run.bat

选择2,然后输入你盒子的ip地址

等待盒子重启(可能要几分钟),即完成降级

如果输入ip地址提示error:device offlline,一般是ADB没打开或者Bug了,重新进行上面的打开关闭adb操作即可

重启完就可以关闭窗口了

2.通过U盘启动openwrt

打开所下载的工具中的傻瓜包文件夹

运行U盘启动.bat

同样输入盒子的IP地址,盒子将会重启,进入跑代码界面(没截图,就是一堆代码飞飞飞)

这样就进入了U盘中的op系统

3.写入EMMC

如果想要将u盘中的系统写入盒子中,将盒子鼠标拔下,接上键盘,等待盒子代码长时间不动时,按回车,进入命令行,输入

./install.sh

即可写入,等到提示完成,即写入成功,断电后拔掉U盘,重新启动盒子,即成功写入系统

这一步非必须,不想写入的同学可以不做

如果输入命令提示XXXXX not found

则需要更换方法

将笔记本连接到名为openwrt的wifi,打开浏览器,输入192.168.123.2

输入用户名和密码,用户名和密码默认为root和password

点击系统,命令行,登陆也是上面的账号密码,进入ROOT后重新输入上面的代码即可

4.有线连接锐捷校园网

首先进入盒子的面板,同样点击系统栏的内的软件包

然后进入界面点击可用软件包,找到mentohust(可以搜索也可以点字母排序找)

点击安装,配置后面再说

这里其实有的固件已经预装了mentohust,则可以跳过这一步安装

然后我们点击网络,无线,进去修改wifi密码(自己喜欢)

保存后重新连接openwrt的wifi,进入控制面板

点击网络,接口,可以看到Lan点击修改,物理设置

将eth0上的选项关闭,点保存

然后将你的网线接上盒子,回到接口界面,点击添加新接口,按下图设置,然后点提交

注:大部分的锐捷都是DHCP,但是也有静态,所以要网上找找看,或者查看你的笔记本连接校园网时是否为DHCP

然后点击修改,防火墙设置,新建一个

再次回到接口界面,点击WAN上的修改MAC地址(这一步重要)

同样这里需要看你电脑平时的MAC地址,将其填入后保存,这样的话其实已经可以看到有流量在跑了,但是还没有认证所以上不了网

然后我们回到主界面进入命令行

输入下面的代码

mentohust -u你的学号 -p你的密码 -b2 -neth0 -a1 -d1 -v3.3

提示认证成功,服务为XXXX,即可关闭命令行,使用电脑打开百度,发现已经成功连接校园网

但是有的学校使用的是V3版本的认证算法,这里不知道可不可行,不可行的话,要自行谷歌搜索一下交叉编译mentohust V3之类的代替方法

20220322更新:大部分新版本固件不会集成mentohust,需要手动上传编译好的mentohust固件并进入命令行手动开启(即同上)建议方法为上传后使用下面命令将文件拷贝至默认root目录

cp /tmp/upload/mentohust mentohust

固件地址:

https://mscnueducn-my.sharepoint.com/:u:/g/personal/20182131055_m_scnu_edu_cn/EWURwKeHgKtInn5hYay0zfcBxr2dlmw7cxaQx8PsUq-qPQ?e=97Z7Cu

5.开启科学上网

查看主界面左边GFW一栏有很多应用,随便你选择哪一个,这里我用的是opencalsh(笔记本以前用Clash for win)

点进去将你的订阅配置好,更新,然后选好自动切换等规则,把DNS配置那里全部打钩,保存修改,就成功科学上网啦!

在网络一栏还有很多服务,这里建议开启网络加速里的BBR加速和DNS加速

6.At last

最新N1固件地址

G大网盘:

https://pan.gd772.com/OpenWrt/N1%E5%8E%86%E5%8F%B2%E5%9B%BA%E4%BB%B6

本文参考文章:

https://www.right.com.cn/forum/thread-3160780-1-2.html

本文参考视频

特别感谢

gz772 F大 恩山论坛