问题

问题

重新启动 ubuntu 会导致笔记本电脑无法启动,除非我插入了可启动 USB 或 SSD 以外的其他设备。关闭并从 Windows 或 ubuntu 重新启动都可以正常工作,从 Windows 重新启动也是如此。我尝试更新 BIOS,重新安装多个不同的 ubuntu 版本(包括 16.04.3 和 17.10),但都存在相同的问题。可能还值得一提的是,如果我没有实际安装 ubuntu,而是从可启动 USB 的“尝试 ubuntu”选项重新启动,问题仍然存在。我的规格:

戴尔XPS 15 9950:

固态硬盘:三星 NVMe PM951 512GB

处理器:Intel i7-6700HQ (2.6 Ghz)

显卡:英特尔显卡 530/NVIDIA GeForce 960M

我确实将 SATA 操作从 RAID On 切换到 AHCI,而 Windows 处于安全模式,这是我找到的所有教程。分区是使用默认分区管理器完成的(尽管我在从实时棒重新启动时尝试使用完整的分区)。安全启动已从 BIOS 关闭,我还从我之前安装的 Linux 中停用了它。在此过程中,我还多次重置了 Windows 10。最后,我知道发布了一个几乎相同的问题,但它既没有赞成票,也没有回复,我束手无策了。我可能不介意放弃 Ubuntu 并安装 Debian,但我不知道该怎么做(我是 Linux 新手,没有可用的教程)。

附言:在某个时候,我有一个正常运行的 ubuntu 16.04(可能是 16.04.1,因为我使用的已经有几个月了),但是升级到 17.10 出现了问题,所以我决定重新安装。

编辑:我还认为我应该提到这样一个事实,即在重新启动时,PC 会直接转到戴尔支持协助并显示“硬盘未安装”(或硬盘,记不清了),并且除了这个问题之外,ubuntu 似乎运行良好。

答案1

我在使用内核 4.16 的 Dell XPS 15 9550 上遇到了同样的问题;经过大量研究,我找到了一个适合我的解决方案:

结论:使用内核参数启动nvme_core.default_ps_max_latency_us=4950

  • GRUB_LINUX_CMDLINE_DEFAULT我通过修改然后/etc/default/grub运行来实现这一点sudo grub-install

问题

作为Cristian Velasquez Ramos 早些时候发布在此线程中,禁用 NVMe Samsung 950(固件 ID:)的 APST(自主电源状态转换)的怪癖BXV76D0Q已合并到主线内核 4.11.0rc7 中,以修复以下错误:这些

讨论来自linux-nvme 邮件列表

如果允许使用最深的 APST 状态,戴尔 XPS 15 9550 和 Precision 5510 笔记本电脑(本质上是同一款笔记本电脑)中的三星 950 系列 SSD 可能会丢失 PCIe 链接。三星工程师有一个受影响的系统,正在对其进行修复。其他机器(甚至是 XPS 13)中的相同 SSD 似乎运行良好。

由于这个怪癖,默认的 APST 控制器状态设置为离开对于我们的设备,这导致了我们看到的软重启问题。

这是关于合并到主线 4.11 的怪癖的讨论

我们需要以某种方式禁用该怪癖才能修复软重启的问题。

我们可以使用 完全禁用该特性nvme_core.force_apst=1,但这可能会导致长时间使用后出现读/写错误(在我正常运行 3 天后就出现了这种情况)。因此,简单地覆盖 apst 将不起作用。

但是,我们可以使用内核参数禁用最低功耗状态: nvme_core.default_ps_max_latency_us=4950

这解决了所有问题!再次感谢克里斯蒂安·维拉斯奎兹·拉莫斯进行修复。

答案2

也许你不再担心了,但我曾经遇到过和你同样的问题。

经过大量研究,我找到了问题的根源。

在内核版本 4.11 中,他们添加了一个可以节省电量的 NVMe 控制器。在内核版本 4.11.0rc7 之后,他们添加了此补丁:

static const struct nvme_core_quirk_entry core_quirks[] = {
    /*
     * Seen on a Samsung "SM951 NVMe SAMSUNG 256GB": using APST causes
     * the controller to go out to lunch.  It dies when the watchdog
     * timer reads CSTS and gets 0xffffffff.
     */
    {
        .vid = 0x144d,
        .fr = "BXW75D0Q",
        .quirks = NVME_QUIRK_NO_APST,
    },

显然,这会导致我们的 SSD 在重新启动时出现问题,从而无法检测到它。如果您想切换到 Debian 以外的其他发行版或想要更改内核,请确保使用 v4.11.0rc7 或更低版本的内核。

现在,我唯一的问题是:是否可以在较新的内核中禁用此功能?我真的不知道该怎么做。我希望它就像添加启动参数一样简单。

答案3

本来想更新这个,但是我的 grub 文件的上下文略有不同(grub 版本 5.4.0-26-generic)ubuntu 20.04。

文件如下。我的问题是这是否GRUB_LINUX_CMDLINE_DEFAULTGRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

附件文件如下:

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

答案4

问题似乎是 SSD 出现故障。我用 Intel 760p 替换了它,一切正常。尝试在不同的硬件设置中重新使用旧 SSD,结果它坏了。

相关内容