使用NVMe PCIE的SSD安装UBuntu 16.04存在以下几个问题,导致无法进入桌面:

(1) Couldn't get size: 0x8000000000000000e

(2) radeon 0000:01:00.0: Invalid PCI ROM header signature: excepting 0xaa55, got 0xffff

(3) nvme nvme1: ignoring ctrl due to duplicate subnqn (nnqn.2017-12.org.nvmexpress:uuid:)

问题(1)之前还应该有一个提示,拍照时没有拍到。问题(1)不知道是什么问题,问题(2)查到说是AMD的显卡驱动的问题,也是和NVMe有关的问题,老外那个帖子抱怨了一下AMD的驱动,也没有人给出解决方案。问题(3)也是NVMe驱动问题,搜索了一下,也没找到相关的解决方案。

经过仔细排查, 再次总结一下,以免给人以误导.

问题(3)的确是由于安装了2块Intel的NVMe SSD导致(由于2块SSD同时提交NQN请求导致,详见后面的内容),还好手头有一块三星的NVMe SSD,换上之后不再有问题(3)。但是问题(1)、(2)和(4)在升级内核后问题依然存在,刚开始还以为是UBuntu对NVMe的支持不好,但是使用SATA固态硬盘克隆系统之后,问题依然存在,所以确定不是NVMe的问题。突然想起在升级新内核的过程中提示了较多的关于firmware的警告信息,当时没有留意,也没有将警告信息保存起来。由于原来还备份了一份系统,于是使用系统备份克隆,刚开始还没有问题,可使用过程中,提示关键更新,于是就单击更新开始更新,更新完后,也看到了少量的关于firmware的警告信息,并且提示将内核升级到了4.15.0-47,同时自动将原来的4.15.0-45内核删除。再次启动,问题又出现了,并且无法进入桌面。于是确定应该是内核版本太高和firmware不匹配,不想折腾firmware,于是在rescue模式下删除新内核4.15.0-47(在启动界面直接启动旧版本4.15.0-46,仍然无法进入桌面,但是正好可以删除新内核),reboot后,没有提示错误,顺利进入桌面。
     在这过程中找到几个有用的网站:
    https://pkgs.org/, you can search all packages of linux
    https://kernel.ubuntu.com/~kernel-ppa/, kernels of Ubuntu
    https://mirrors.kernel.org/, a mirror web for kernels of linux
    https://packages.ubuntu.com/, pakages of ubuntu
    https://launchpad.net/ubuntu/+source/linux-firmware, firmware for ubuntu
    http://ftp.sjtu.edu.cn/, mirror web for linux

关于firware:
    硬件越来越复杂,硬件的许多功能使用了程序实现,与直接硬件实现相比,固件拥有处理复杂事物的灵活性和便于升级、维护等优点。固件(firmware)就是这样的一段在设备硬件自身中执行的程序,通过固件标准驱动程序才能实现特定机器的操作,如:光驱、刻录机等都有内部的固件。来自于博文(Linux设备模型firmware(固件): https://blog.csdn.net/u014379540/article/details/52496647),也可以看看另外一篇博文(如何在 Linux 上安装/更新 Intel 微码固件 | Linux 中国:https://blog.csdn.net/F8qG7f9YD02Pe/article/details/79472688)
    如何更新firmware:
    sudo apt-get update
    sudo apt-get install linux-firmware

我没有更新firmware,一是不想再折腾,怕遇到内核版本与固件版本不匹配的情形,另外,看了一下系统中固件(/lib/firmware)中文件的时间,基本上和最新固件发布的时间相同,于是就没有更新。


问题(3)在Ubuntu的BUG提交网查到:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1811755,BUG提交人看似是通过更新Linux内核版本解决了该问题。

This commit can fix your issue:

commit 6299358d198a0635da2dd3c4b3ec37789e811e44
Author: James Dingwall <email address hidden>
Date: Tue Jan 8 10:20:51 2019 -0700

nvme: introduce NVME_QUIRK_IGNORE_DEV_SUBNQN

If a device provides an NQN it is expected to be g

commit 6299358d198a0635da2dd3c4b3ec37789e811e44
Author: James Dingwall <email address hidden>
Date: Tue Jan 8 10:20:51 2019 -0700

nvme: introduce NVME_QUIRK_IGNORE_DEV_SUBNQN

If a device provides an NQN it is expected to be globally unique.
    Unfortunately some firmware revisions for Intel 760p/Pro 7600p devices did
    not satisfy this requirement. In these circumstances if a system has >1
    affected device then only one device is enabled. If this quirk is enabled
    then the device supplied subnqn is ignored and we fallback to generating
    one as if the field was empty. In this case we also suppress the version
    check so we don't print a warning when the quirk is enabled.

问题(1)~(3)的解决方案:升级Linux内核

# 看一下当前Linux内核版本
uname -sr
# Linux 4.18以后的内核依赖于libssll(>=1.1.0),到https://packages.ubuntu.com/bionic/下载libssll 1.1.0版本
wget -c http://kr.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4.3_amd64.deb
# 安装libsll
sudo dpkg -i libssl1.1_1.1.0g-2ubuntu4.3_amd64.deb
# 到https://kernel.ubuntu.com/~kernel-ppa/mainline/下载比较新的内核
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000_5.0.0-050000.201903032031_all.deb https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-modules-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-image-unsigned-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb
# 安装新内核, 按照下载的顺序依次安装
sudo dpkg -i ***.deb
# 看一下已经安装的所有内核版本
dpkg --get-selections|grep linux
# 删除孤立无用的Linux内核
sudo apt-get autoremove
# 删除特定的Linux内核版本,大概有3至4项,按照如下格式删除
sudo apt-get remove --purge linux-modules-extra-4.15.0-45-generic
# 清理缓存
sudo apt-get autoclean
# 更新grub
sudo update-grub

(4)  /dev/nvme0n1p2 has unsupported feature(s): metadata_csum

e2fsck: Get a newer version of e2fsck


问题(4)的解决方案:升级e2fsck,参考博文Centos7升级最新版e2fsck

# 看一下当前e2fsck的版本
e2fsck -V
# 到https://sourceforge.net/projects/e2fsprogs/下载e2fsprogs的新版本,我下载的是1.45
wget -c https://nchc.dl.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.45.0/e2fsprogs-1.45.0.tar.gz
# 解压
tar xzf e2fsprogs-1.45.0.tar.gz
# 编译
./configure
make
# 查看编译结果
cd e2fsck
./e2fsck -V
# 替换掉原来的e2fsck
sudo mv /sbin/e2fsck /sbin/e2fsck.old
sudo cp e2fsck /sbin/
# 看一下新版本
cd /
e2fsck -V


于是就针对/dev/nvme0n1p2校验和问题来解决,使用Boot-repair启动盘启动,然后使用e2fsck /dev/nvme0n1p2检查,并未发现问题。于是就使用Boot-repair修复grub(Note: 修复时不要按照默认的设置修复,要先根据自己的需要修改一下高级选项),修复完成后,尽管校验和问题依然存在,但是UBuntu能够顺利进入桌面。可却带来了新的问题:

(5)无法上网,尽管网络连接显示正常。(当时是病急乱投医,其实无需修复Grub,这是后话)

简单搜索了一下说是修改DNS,网上也提供了几种方法,尽管这几种方法都说解决了上网问题,可是我没有这样做。看到一个帖子提到了要修改/etc/resolv.conf,于是查看该文件,首先发现该文件并不是/run/resolconf/resolv.conf文件的符号链接,打开该文件,其中的nameserver被修改为127.0.0.53,本来应该是127.0.0.1,而/run/resolconf/resolv.conf文件中的nameserver仍然是127.0.0.1。

于是重命名/etc/resolv.conf,然后创建/run/resolconf/resolv.conf的符号链接: ln -s /run/resolconf/resolv.conf /etc/resol.conf。重启网络服务,或者注销重新登录,不能上网问题得以解决。但是不知道/etc/resolv.conf是为何被修改。

后记:

grub修复后能够进入桌面实际上是一种假象,再次重启则会遭遇多次无法进入桌面的情形。查了一些资料,基本上了解到是因为安装了2块Intel的760P SSD,同时提交NQN请求,导致系统忽略其请求,因此无法识别到SSD(因为有时也会提示无法找到UUID=XXXX的硬盘),因此,还是通过升级Linux内核来解决这个问题。

(1)由于Linux 4.16.4后的的内核都依赖于较高版本的libssll(>=1.1.0),记得要下载1.1.0版本的libssll,不要下载1.1.1版本,因为1.1.1版本libssl依赖于高版本的libc(>=2.27),很显然,这个依赖如果解决不好将会带来更复杂的问题。

(2)因为主板有2个M.2 NVMe接口,因此就买了2块Intel的760P SSD,这个SSD虽然性能不出色(看openbenchmarking的测试),但是价格相对便宜,据说较为稳定,并且质保5年。一块装WIndows10,一块装Ubuntu。WIndows 10自然没有问题,但是Ubuntu 16.04(我没有重新安装,而是通过系统迁移的方法将原来的安装好的系统迁移到SSD)却问题多多,想享受NVMe带来的优势看来并不简单,这个问题困扰了我将近1个星期,还好查到资料,知道问题原因。现在基本解决,但是有老外反映说是可能并不能完全解决NQN的问题,只是减少了NQN警告的几率。

Intel 760P NVMe SSD安装UBuntu 16.04 所遇到的问题相关推荐

  1. 酷比魔方i7手写版linux网卡驱动,酷比魔方手写板安装Ubuntu 16.04

    酷比魔方手写板安装Ubuntu 16.04 Linuxer 2017年5月1日 暂无评论 阅读 5,205 次 本文记录了在酷比魔方i7手写板上安装Lubuntu (Ubuntu with LXDE) ...

  2. UEFI方式安装Ubuntu 16.04和Win010 双系统

    我的机器硬件是Intel NUC骷髅峡谷. 1 首先安装win10操作系统(先安装Ubuntu会有问题) 安装办法省略. 2 在WIN10下留一块未使用区域(我预留最后一块区域来安装Ubuntu 16 ...

  3. Pwn环境配置(二)——VMware虚拟机安装Ubuntu 16.04系统

    Pwn环境配置(二) 安装Ubuntu 16.04系统,至于为什么非要是Ubuntu 16.04系统呢,我也不太清楚,只知道大佬们用的都是这个.好像是,它兼容性好之类的吧- 下面步入正题开始安装, 首 ...

  4. HP Z840 工作站配sSAS Raid 安装 Ubuntu 16.04 系统

    惠普Z840工作站配SAS RAID安装win7系统加载驱动 安装ubuntu的最低版本版本要求是01.25,请更新到官方最新的02.31测试 1. BIOS系统更新 1. 准备好一个空的U盘,格式化 ...

  5. 光盘安装linux16.04,cobbler安装ubuntu 16.04巨慢

    最近在测试使用cobbler安装ubuntu 16.04的系统,使用的cobbler默认ks,/var/lib/cobbler/kickstarts/sample.seed,pxe安装ubuntu 1 ...

  6. Q105:PC双系统:Windows 7下硬盘安装Ubuntu 16.04

    105.0 引入 一直有在windows下安装Linux的想法,今天得以完成.先记录如下. 本人参考的博文链接主要是:http://www.linuxidc.com/Linux/2014-04/100 ...

  7. 安装Ubuntu 16.04时出现:没有定义根文件系统,请到分区菜单修改

    在安装Ubuntu 16.04时,尤其是选项空闲硬盘新建分区安装时,容易出现这种情况,这个是由于没有配置挂载点导致的,解决方法如下: 在挂在点输入"/". 原理: Linux和Wi ...

  8. 解决VMware下安装Ubuntu 16.04 不支持1920X1080分辨率的问题

    解决VMware下安装Ubuntu 16.04 不支持1920X1080分辨率的问题 参考文章: (1)解决VMware下安装Ubuntu 16.04 不支持1920X1080分辨率的问题 (2)ht ...

  9. 使用虚拟机VMware 15 pro安装Ubuntu 16.04 LTS

    使用虚拟机VMware 15 pro安装Ubuntu 16.04 LTS 为了学习区块链,所以我准备在电脑上安装Ubuntu系统,但是对于我这个新手小白,为了防止把电脑搞崩溃,我决定在虚拟机上安装. ...

最新文章

  1. 【洛谷 P2464】[SDOI2008]郁闷的小J(线段树)
  2. x264_sps_init
  3. linux上的那些查找的命令
  4. 山东大学 2020级数据库系统 实验七
  5. RedMonk 2020 年 Q3 编程语言排行:Python力压Java和PHP,Rust 首次进入前 20
  6. python二维向量运算模拟_Python数学基础之向量定义与向量运算(附代码)
  7. java jinternalpanel_java swing中JPanel的布局问题
  8. 通过web的方式动态查看tomcat的catalina.out的日志(web.py)
  9. 201571030139/201571030134 小学生四则运算软件结对编程
  10. Redis安装教程【Windows]
  11. w ndows 那个比较好用,DOS工具箱哪个好用?DOS工具箱盘点
  12. VS2015 如何打包winform 安装程序
  13. [总结] 单颗粒分析(SPA, Single particle analysis)
  14. IT行业的工作内容是什么?
  15. 集团申请选择企业邮箱注意事项
  16. Flow-Guided-Feature-Aggregation-的安装配置,demo运行,以及采用少量ILSVRC2015 VID数据集在其中训练
  17. CF1677E Tokitsukaze and Beautiful Subsegments
  18. 更多丰富内容,请转移至博主的个人博客——SeaDream乄造梦
  19. 基于运放的滤波电路设计
  20. 【自动驾驶】自动驾驶涉及的知识概览

热门文章

  1. 【转】yuv文件显示与测试
  2. 计算机网络原理之局域网<复习笔记>
  3. PHP 开发者应了解的24个库
  4. 安卓SlideMenu 仿QQ 主页侧滑菜单
  5. kinect的openni总结
  6. 安装防盗系统的重要性
  7. 战歌竞技场服务器维护中,《战歌竞技场》4月13日开启终极测试
  8. Span使用之系统提供的Span基本样式
  9. 记录使用bioconductor安装ChIPpeakAnno及ChIPseeker包遇到的bug
  10. Nginx配置+注释