技术解析

关于 NVMe 固态安装 Linux 的疑问
0
2021-06-21 06:35:49
idczone

问题是这样的。前段时间,发现自己的老固态太小了,装的 win10 都快不够了。所以就买了一块 Asguard 的 240/256G 的固态,来替换之前的小的 128G 的固态。一直使用 Linux 当生产力的,Win 辅助。以前的 Deepin 配置好了,开发使用了好久,但是在机械里,有时候还是有写卡顿,所以就准备在新固态里,腾 50G 出来安装下 Deepin 或者 Ubuntu。但是问题出来了,用 Deepin 官方的 U 盘制作工具将 Deepin 写入 U 盘,或者用 rufus 将 Ubuntu 写入 U 盘,都是可以进入临时的系统的,但是找不到固态盘,只有机械盘。原来电脑的固态是厂家送的奇葩的 m.2+SATA 通道的,安装系统和普通 SATA 机械没区别。这个是 m.2 PCIe NVMe 的,需要 NVMe 协议支持,我是明白的。win10 就是用原版镜像+Intel Rapid 驱动才能识别硬盘的( PE 注入 NVMe 协议搞很久没成功)。我在网上找了找,都说现在 Lniux 内核支持 NVMe 固态的,但是却没有找到,如何安装系统的。(或者是我不懂,没明白大神的意思)

我尝试过,改 BIOS 设置,将硬盘模式改成 ACHI,安装器可以找到固态硬盘,但是,开机后无法进入系统,我的电脑直接进入 BIOS 的内存测试去了。

对了,我的电脑是 Dell 游匣 G3 3579 GTX 1050。

请教 V 站的朋友们,能指导我一下,如何在 NVMe 固态中安装 Deepin 或者 Unbuntu,万分感谢!


我的 Win10 是怎么装在 SM961 上的?只要使用较新的镜像,Windows 能自己解决几乎所有的驱动问题。
Linux 支持 NVMe 接口,与 SATA 的区别在于文件名不一样了(还记得吗?万物皆文件的哲学)。
像是我的就有一个是 /dev/nvme0n1p1 ,一个是 /dev/sda1。如果系统的安装精灵不适配的话,前者就很有可能不被识别为硬盘而不能被使用。
最好的解决方案是自己改安装精灵的代码,并提交 PR 给其开发者帮助它改进产品。
其次就是不用这个安装精灵了,你可以试试其他 destro 的,或是干脆像 Arch, Gentoo 或是 LFS 一样自己完成安装精灵的工作。实际上就我自己的手动安装经历来看,无非是正确编写 fstab 处理自动 mount 的问题。如果你愿意学习的话,去研究完一个手动安装教程( e.g., [Arch 的]( https://wiki.archlinux.org/index.php/Installation_guide))就知道问题出在哪里,应该怎么做了。如果是小白的话,大概在乎的只是 DE,那么可以试一下 manjaro 的 deepin edition,它会比较像 Deepin,或者是 Gnome edition,会有一点像 Unbuntu。现在我去试一下前者的 live CD 能否识别我的 SM961,过会儿(也许 1hr )给结果。
或者你也可以考虑使用 LVM 绕过这个问题,假如安装精灵的 LVM 配置和 fstab 配置不是一个过程的话,也许也行。

nvme 设备文件不再是 /dev/sda,b,c 了 而是 /dev/nvme0,1,2 然后还要对 nvme 设备创建命名空间啥的。然后才可以分区当做硬盘设备使用。 相应的教程网上都有。可以自己搜一下。

/dev 下面的名字不一样。
你 win10 也要额外驱动是因为 Dell 默认磁盘控制器模式是 raid,这个比较新的电脑确实不自带。。。
改了后进不去系统,这个要分情况讨论,有 2 种情况,处理方法不一样。
反正新电脑,改了 AHCI 后重装一下就行了。

没仔细看。。如果是 m2 sata 盘,那名字还是 sdx
保险点把磁盘控制器模式改成 AHCI,然后用内核比较新的装就没问题。

我试了一下,manjaro deepin edition 可以识别出我的 SM961,不折腾的话,换用这个版本就可以获得和 Deepin 一致的体验并解决问题。
https://manjaro.org/download/deepin/

如楼上所说, NVMe 的盘设备路径是: /dev/nvme${X}p${Y}.
我是 ArchLinux + Intel 的傲腾盘(就是一个 PCIe x2 的 NVMe 设备), 直接安装.
但我的主板不支持从 nvme 启动, 所以我把内核和 initrd 放 SATA 盘里启动的.

boss 把 intel rst 关了 Windows 要处理一下才行 或者 重装

boss >bios

sm961 opensuse 和 fedora 貌似都能识别

主流发行版的内核应该都有 NVMe 驱动的,听起来好像是你从 U 盘进入安装步骤后识别不到 NVMe 的硬盘?如楼上所说,你可以在安装系统的时候手动进入 Rescue Shell,看看 /dev/ 下 有没有 nvmeX 的设备。
如果确实没有这个设备,应该有几点可能
1. AHCI 模式对应的就是 SATA 模式,你应该去找 /dev/sdX ; NVMe 模式对应的是 /dev/nvmeX
2. 不确定你的笔记本的启动模式是 EFI 还是 Legacy,有可能你是用 Legacy 模式启动了 U 盘——但是你的 BIOS 没有支持 Legacy 模式下的 NVMe。因此可以把启动模式改成 EFI 试试(拷安装盘的时候也注意一下 rufus 的启动模式)

ubuntu 18.04 金士顿 nvme,直接装。

还有就是看起来你先装了 windows 再装 Linux。emmm,这样经常会出现 windows 的 bootloader 和 grub 冲突的情况。Windows 用的是 Legacy 模式下的 CSM 来支持 EFI 启动,通常不会分一个 EFI 分区;而 grub 往往需要一个 EFI 分区来启动 EFI。当然你全都改回 Legacy BIOS + AHCI/SATA 的模式按理说应该是可以的。。。

我的西部数据 nvme 固态安装 deepin Ubuntu 需要加上 nvme_core.default_ps_max_latency_us=5500 启动参数才行

楼主你真是....
Lniux 内核支持 NVMe 固态的.... ---------> Linux 内核支持 NVMe 固态的....
安装 Deepin 或者 Unbuntu,万分.... ----------------> 安装 Deepin 或者 Ubuntu,万分....

感谢回复,问题已解决。你说的这些,我也略懂。只是,我的问题结症是在于“安装器”无法识别 NVMe 硬盘,不是后续的安装。要是真的自己搞,还得手动加载 NVMe 驱动,然后才是引导安装。
感谢回复,问题已解决。
感谢回复,新型电脑没有 Rapid ON 这种模式了吗,我不是很清楚。Dell 游匣 G3 也是 2018 年出的。
Dell 的 BIOS 需要关闭 Rapid,linux 安装器才能检测出硬盘
这个我知道,不过这个参数不是休眠策略吗,是为了避免系统假死和卡顿设置的
不明白,你重复这个的意思,还望明说。

单词拼错了
这么长看的都这么细致,佩服

还有 ACHI -> AHCI。我确实不少敲错的,,,手冷。。。

兄弟,我有台机器跟你是一样的 Dell G3-3579.自己换了个浦科特 512Nvme 固态,一直想安装 Linux 总是不成功,求指点一下,能详细介绍下吗?或者发我一份教程到我邮箱 [email&谢谢你了

没有难度。就是在 BIOS 里把硬盘模式改成 AHCI,就可以了。然后 win10 让他自动修复一下,就好。

装了 linux 启动的时候直接就跳 Windows 了,都不进入修复引导了,怎么解决请指点

你 q 多少,这边消息我看不到

Q: 2753769043

……解决方法很简单的,默认 Dell 用了 Intel 那个 RST 技术,设置的是 Raid On 模式,这个模式会导致 Linux 下面读不到盘,然后 Windows 下面驱动也是一堆 Bug。如果你直接在 BIOS 里面改,Windows 重启之后是不会自动重新检测硬件刷新驱动列表的,也就导致它读不到硬盘重启回 BIOS 了。第一步是设置 Windows 下次开机进安全模式(安全模式下会加载全部驱动,自然能认出这个变化),第二步在重启进安全模式之前进 BIOS 改成 AHCI,第三步进了安全模式以后重启回普通模式,然后想怎么搞就怎么搞了。

PS Win10 当然支持 NVMe,不需要 Intel RST 也行,RST 有很多 Bug 会导致固态掉速的……

嗯嗯,我已经弄明白了!感谢!

的确, 硬盘模式改下就出来了

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服