<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>SATA扩展卡 on KnightLi的博客</title>
        <link>https://knightli.com/tags/sata%E6%89%A9%E5%B1%95%E5%8D%A1/</link>
        <description>Recent content in SATA扩展卡 on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sun, 24 May 2026 00:46:52 +0800</lastBuildDate><atom:link href="https://knightli.com/tags/sata%E6%89%A9%E5%B1%95%E5%8D%A1/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>PCIe 扩展卡插上后 BIOS 前光标闪烁卡死，该怎么排查</title>
        <link>https://knightli.com/2026/05/24/jmb585-sata-card-bios-post-blinking-cursor-troubleshooting/</link>
        <pubDate>Sun, 24 May 2026 00:46:52 +0800</pubDate>
        
        <guid>https://knightli.com/2026/05/24/jmb585-sata-card-bios-post-blinking-cursor-troubleshooting/</guid>
        <description>&lt;p&gt;如果 PCIe 扩展卡插上后，机器连 BIOS 界面都进不去，只停在黑屏或主板启动前的光标闪烁界面，这通常不是 Linux 驱动问题，而是更早阶段的硬件级卡死。&lt;/p&gt;
&lt;p&gt;这个阶段操作系统还没有加载，所以 &lt;code&gt;pci=nomsi&lt;/code&gt;、&lt;code&gt;pcie_aspm=off&lt;/code&gt; 这类 Linux 内核参数完全帮不上忙。问题发生在 POST（加电自检）阶段，常见卡点包括 PCIe 链路训练、PCIe 资源分配、Option ROM 加载、Legacy / UEFI 兼容性冲突，或者扩展卡本身异常。&lt;/p&gt;
&lt;p&gt;换句话说：如果连 BIOS 都进不去，先不要急着改 Linux。要先让主板能完成自检。&lt;/p&gt;
&lt;h2 id=&#34;先理解这个故障意味着什么&#34;&gt;先理解这个故障意味着什么
&lt;/h2&gt;&lt;p&gt;正常开机时，主板会扫描 PCIe 设备，给设备分配 bus、I/O、MMIO 等资源，并决定是否加载设备自带的 Option ROM。某些 SATA 扩展卡、HBA、网卡、采集卡或转接卡会带有用于启动支持或设备初始化的固件，主板固件可能会尝试读取它。&lt;/p&gt;
&lt;p&gt;如果扩展卡、主板 BIOS、PCIe 插槽、电源、外接设备或 Option ROM 其中某一环不兼容，就可能卡在主板自检阶段。典型表现是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;黑屏，只剩光标闪烁。&lt;/li&gt;
&lt;li&gt;卡在主板 Logo 前后。&lt;/li&gt;
&lt;li&gt;按 &lt;code&gt;Del&lt;/code&gt;、&lt;code&gt;F2&lt;/code&gt;、&lt;code&gt;F11&lt;/code&gt;、&lt;code&gt;F12&lt;/code&gt; 无法进入 BIOS 或启动菜单。&lt;/li&gt;
&lt;li&gt;拔掉这张 PCIe 扩展卡后一切正常。&lt;/li&gt;
&lt;li&gt;换回原来的 NVMe、显卡、网卡后都能启动。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这种情况可以理解为“主板还没来得及把控制权交给系统，就已经被这张卡卡住了”。&lt;/p&gt;
&lt;h2 id=&#34;哪些-pcie-扩展卡容易触发这个问题&#34;&gt;哪些 PCIe 扩展卡容易触发这个问题
&lt;/h2&gt;&lt;p&gt;这类 POST 卡死不只会出现在 JMB585 SATA 扩展卡上。凡是需要主板在开机阶段初始化、分配资源或加载 Option ROM 的 PCIe 设备，都可能触发类似问题。&lt;/p&gt;
&lt;p&gt;比较常见的设备包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JMB585、ASM1166 等 PCIe SATA 扩展卡。&lt;/li&gt;
&lt;li&gt;LSI / Broadcom HBA 或阵列卡。&lt;/li&gt;
&lt;li&gt;2.5G、10G、万兆电口或光口网卡。&lt;/li&gt;
&lt;li&gt;PCIe 转 M.2 / U.2 / SATA 转接卡。&lt;/li&gt;
&lt;li&gt;视频采集卡。&lt;/li&gt;
&lt;li&gt;USB 3.x 扩展卡。&lt;/li&gt;
&lt;li&gt;带 Option ROM 的老显卡、老 RAID 卡或服务器拆机卡。&lt;/li&gt;
&lt;li&gt;做工一般、固件魔改、EEPROM 异常的廉价 PCIe 卡。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些设备的问题不一定是“坏了”，也可能只是和当前主板 BIOS、插槽通道、PCIe 速率、启动模式或地址资源分配不兼容。&lt;/p&gt;
&lt;h2 id=&#34;为什么还没进系统linux-内核参数无效&#34;&gt;为什么还没进系统，Linux 内核参数无效
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;pci=nomsi&lt;/code&gt;、&lt;code&gt;pcie_aspm=off&lt;/code&gt;、&lt;code&gt;libata.force&lt;/code&gt; 这类参数都属于 Linux 内核启动参数。它们必须等内核加载后才会生效。&lt;/p&gt;
&lt;p&gt;而 BIOS 前光标闪烁、主板 Logo 前卡死、按键进不了 BIOS，说明系统还停在 POST 阶段。此时运行的是主板固件，不是 Linux 内核。换句话说，Linux 还没开始执行，自然也没有机会读取这些参数。&lt;/p&gt;
&lt;p&gt;所以这类故障的排查重点不是先改 &lt;code&gt;/etc/default/grub&lt;/code&gt;，而是先处理：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BIOS / UEFI 启动模式。&lt;/li&gt;
&lt;li&gt;CSM / Legacy 兼容层。&lt;/li&gt;
&lt;li&gt;PCIe Option ROM。&lt;/li&gt;
&lt;li&gt;PCIe 链路训练。&lt;/li&gt;
&lt;li&gt;PCIe 地址空间和资源分配。&lt;/li&gt;
&lt;li&gt;扩展卡、插槽、供电和外接设备。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;第一步拔掉扩展卡上的外接设备&#34;&gt;第一步：拔掉扩展卡上的外接设备
&lt;/h2&gt;&lt;p&gt;先做最低风险的排查：只保留 PCIe 扩展卡插在主板上，把接在扩展卡上的 SATA 数据线、外接设备线缆或硬盘供电先断开，让这张卡处于“不挂设备”的状态。&lt;/p&gt;
&lt;p&gt;然后开机测试：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果拔掉硬盘后能进 BIOS，说明扩展卡本身大概率没有把主板卡死，问题可能在某块硬盘、SATA 线、供电或启动盘识别上。&lt;/li&gt;
&lt;li&gt;如果仍然卡死，说明问题更可能在扩展卡和主板 PCIe / BIOS 兼容性上。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;为什么硬盘也可能导致 POST 卡死？有几种常见原因：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;某块硬盘的引导扇区或分区表异常，主板 BIOS 误判为启动盘后读取卡死。&lt;/li&gt;
&lt;li&gt;多块机械盘同时上电，电源瞬时电流不足，导致 SATA 控制器或硬盘异常。&lt;/li&gt;
&lt;li&gt;某根 SATA 线接触不良，导致控制器初始化阶段等待超时。&lt;/li&gt;
&lt;li&gt;某块硬盘本身健康状态很差，拖慢整条初始化流程。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果拔盘后能启动，可以再一块一块接回硬盘，找到具体是哪块盘或哪根线触发问题。&lt;/p&gt;
&lt;h2 id=&#34;第二步拔卡进-bios关闭-csm&#34;&gt;第二步：拔卡进 BIOS，关闭 CSM
&lt;/h2&gt;&lt;p&gt;很多 PCIe 扩展卡卡在 POST 阶段，和 CSM / Legacy 启动兼容层有关。&lt;/p&gt;
&lt;p&gt;CSM 是 Compatibility Support Module，用来让 UEFI 主板兼容旧式 Legacy 启动。问题在于，一些廉价 SATA 扩展卡或魔改卡可能带有老旧 Option ROM。主板在 CSM 模式下会尝试加载这些旧式启动固件，结果和现代 UEFI 固件发生冲突。&lt;/p&gt;
&lt;h2 id=&#34;csm-和-option-rom-为什么会卡住-post&#34;&gt;CSM 和 Option ROM 为什么会卡住 POST
&lt;/h2&gt;&lt;p&gt;POST 阶段主板会枚举 PCIe 设备，并判断这些设备是否带有可启动固件。很多老式存储卡、RAID 卡、HBA、网卡和 SATA 扩展卡会提供 Option ROM，用来让主板在操作系统启动前识别设备，甚至支持从这张卡启动。&lt;/p&gt;
&lt;p&gt;问题是，Option ROM 往往很依赖 BIOS 实现。有些扩展卡的 Option ROM 老旧、魔改、损坏，或者只在特定服务器主板上测试过。现代消费级主板在 CSM / Legacy 模式下尝试加载它时，就可能出现初始化死循环、黑屏、光标闪烁或键盘无响应。&lt;/p&gt;
&lt;p&gt;关闭 CSM、禁用 Storage OpROM 的目的，就是让主板不要在启动前尝试执行这张卡自己的启动固件。只要系统盘不接在这张扩展卡上，多数 NAS 和数据盘场景并不需要从扩展卡启动，交给 Linux / Windows 进入系统后再识别通常更稳。&lt;/p&gt;
&lt;p&gt;操作步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;关机断电，拔掉这张 PCIe 扩展卡。&lt;/li&gt;
&lt;li&gt;使用主板原有显卡、核显或已有启动盘开机，进入 BIOS。&lt;/li&gt;
&lt;li&gt;找到 &lt;code&gt;CSM&lt;/code&gt;、&lt;code&gt;Compatibility Support Module&lt;/code&gt; 或 &lt;code&gt;Legacy Boot&lt;/code&gt; 相关选项。&lt;/li&gt;
&lt;li&gt;将 CSM 设置为 &lt;code&gt;Disabled&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;启动模式尽量改成 &lt;code&gt;UEFI Only&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;保存 BIOS 设置并关机。&lt;/li&gt;
&lt;li&gt;重新插上 PCIe 扩展卡测试。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果关闭 CSM 后能正常过 POST，说明之前大概率是 Legacy Option ROM 或启动兼容层冲突。&lt;/p&gt;
&lt;h2 id=&#34;第三步禁用-pcie--storage-option-rom&#34;&gt;第三步：禁用 PCIe / Storage Option ROM
&lt;/h2&gt;&lt;p&gt;有些 BIOS 会提供更细的 Option ROM 控制项，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PCIe Option ROM&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Storage OpROM&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Mass Storage Controller Option ROM&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Launch Storage OpROM Policy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Option ROM Messages&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果能找到类似选项，可以把扩展卡所在插槽或存储控制器相关 Option ROM 设置为：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Disabled
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;或：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do Not Launch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这样做的意思是：不要尝试从这张扩展卡加载启动固件，只把它当成普通 PCIe 设备交给操作系统识别。&lt;/p&gt;
&lt;p&gt;如果你的系统盘不接在这张扩展卡上，而只是用它挂数据盘、NAS 盘、仓库盘、网卡或采集设备，那么通常不需要从这张卡启动。禁用它的 Option ROM 反而更稳。&lt;/p&gt;
&lt;h2 id=&#34;第四步强制-pcie-速率为-gen2-或-gen1&#34;&gt;第四步：强制 PCIe 速率为 Gen2 或 Gen1
&lt;/h2&gt;&lt;p&gt;JMB585 是常见的 PCIe SATA 控制器，很多卡标称走 PCIe Gen3 x2。但主板、转接卡、线材、槽位和扩展卡做工不够好时，PCIe 链路训练可能在 Gen3 阶段谈不拢，主板就会卡在等待设备完成初始化的阶段。&lt;/p&gt;
&lt;h2 id=&#34;pcie-gen3-链路训练失败是什么表现&#34;&gt;PCIe Gen3 链路训练失败是什么表现
&lt;/h2&gt;&lt;p&gt;PCIe 设备插上后，主板和设备会协商链路宽度和速率，例如 x1、x2、x4，以及 Gen1、Gen2、Gen3。这个过程叫 Link Training。&lt;/p&gt;
&lt;p&gt;如果设备、插槽、转接卡、主板走线或供电不稳定，双方可能在较高速率上无法完成协商。常见表现是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;插卡后卡在 BIOS 前黑屏或光标闪烁。&lt;/li&gt;
&lt;li&gt;主板 Logo 停很久，按键无响应。&lt;/li&gt;
&lt;li&gt;偶尔能启动，偶尔完全卡死。&lt;/li&gt;
&lt;li&gt;强制 PCIe Gen2 后恢复正常。&lt;/li&gt;
&lt;li&gt;换到另一个槽位后恢复正常。&lt;/li&gt;
&lt;li&gt;同一张卡在短槽、芯片组槽上能用，在 CPU 直连大槽上不稳定，或反过来。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这不是操作系统层面的“掉盘”，而是主板和设备还没完成 PCIe 链路初始化。强制 Gen2 / Gen1 的目的，是降低信号速率，牺牲一点理论带宽换稳定启动。&lt;/p&gt;
&lt;p&gt;更稳妥的做法是先让它降速：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;拔掉这张 PCIe 扩展卡。&lt;/li&gt;
&lt;li&gt;进入 BIOS。&lt;/li&gt;
&lt;li&gt;找到对应 PCIe 插槽的速率设置，例如 &lt;code&gt;PCIe Speed&lt;/code&gt;、&lt;code&gt;PCIe Link Speed&lt;/code&gt;、&lt;code&gt;Max Link Speed&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;把 &lt;code&gt;Auto&lt;/code&gt; 或 &lt;code&gt;Gen3&lt;/code&gt; 改成 &lt;code&gt;Gen2&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;如果 &lt;code&gt;Gen2&lt;/code&gt; 仍不稳定，再尝试 &lt;code&gt;Gen1&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;保存关机，重新插卡测试。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;对 SATA 机械盘来说，Gen2 x1 或 Gen2 x2 通常已经够用。稳定性优先时，不必执着 Gen3。&lt;/p&gt;
&lt;p&gt;如果 BIOS 没有提供 PCIe 速率设置，才考虑物理降速方案。有人会通过给扩展卡金手指部分引脚贴绝缘胶带，让卡退回 x1 模式，以此验证是否是第二条 PCIe lane 或高频信号质量导致卡死。这种方法有风险，容易贴错位置或造成接触问题，不建议作为第一选择。优先用 BIOS 降速。&lt;/p&gt;
&lt;h2 id=&#34;第五步开启-above-4g-decoding&#34;&gt;第五步：开启 Above 4G Decoding
&lt;/h2&gt;&lt;p&gt;如果主板上同时有 NVMe、显卡、无线网卡、HBA、采集卡或多个 PCIe 设备，BIOS 在 POST 阶段需要给它们分配地址空间和 MMIO 资源。老主板或资源分配策略比较保守的 BIOS，可能因为资源不足或地址冲突卡住。&lt;/p&gt;
&lt;p&gt;可以尝试开启：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Above 4G Decoding
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;常见位置在 BIOS 的 &lt;code&gt;Advanced&lt;/code&gt;、&lt;code&gt;PCIe Settings&lt;/code&gt;、&lt;code&gt;PCI Subsystem Settings&lt;/code&gt;、&lt;code&gt;Chipset&lt;/code&gt; 或类似菜单下。&lt;/p&gt;
&lt;p&gt;它的作用是允许 PCIe 设备使用 4GB 以上的地址空间，有助于缓解多设备环境下的资源分配问题。虽然这个选项常被显卡直通、矿卡、HBA 和多 PCIe 设备场景提到，但对某些 SATA 扩展卡卡 POST 的情况也值得尝试。&lt;/p&gt;
&lt;h2 id=&#34;第六步换-pcie-插槽&#34;&gt;第六步：换 PCIe 插槽
&lt;/h2&gt;&lt;p&gt;不要只在一个槽位上反复试。不同 PCIe 插槽背后的通道来源可能不同：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;靠近 CPU 的长槽通常是 CPU 直连，优先给显卡使用。&lt;/li&gt;
&lt;li&gt;一些短槽或第二条长槽可能来自芯片组 PCH。&lt;/li&gt;
&lt;li&gt;某些槽会和 NVMe、SATA、Wi-Fi 或其他设备共享通道。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果扩展卡插在 CPU 直连大槽上卡死，可以尝试插到芯片组引出的短槽或带宽较低的槽上。反过来也一样，如果 PCH 槽不稳定，也可以试试其他槽位。&lt;/p&gt;
&lt;p&gt;同时建议查看主板说明书，确认是否存在“插了某个 M.2 后某个 PCIe 槽失效”之类的共享规则。&lt;/p&gt;
&lt;h2 id=&#34;推荐的高效排查顺序&#34;&gt;推荐的高效排查顺序
&lt;/h2&gt;&lt;p&gt;如果你想尽快恢复启动，可以按这个顺序来：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;拔掉扩展卡上所有外接设备，例如 SATA 硬盘、U.2 盘、外接线缆，只留卡本体测试。&lt;/li&gt;
&lt;li&gt;如果仍卡死，拔卡进入 BIOS。&lt;/li&gt;
&lt;li&gt;关闭 &lt;code&gt;CSM&lt;/code&gt;，切到 &lt;code&gt;UEFI Only&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;禁用 &lt;code&gt;Storage OpROM&lt;/code&gt; 或相关 PCIe Option ROM。&lt;/li&gt;
&lt;li&gt;开启 &lt;code&gt;Above 4G Decoding&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;把对应 PCIe 插槽强制改成 &lt;code&gt;Gen2&lt;/code&gt;，不行再试 &lt;code&gt;Gen1&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;保存关机，重新插上 PCIe 扩展卡测试。&lt;/li&gt;
&lt;li&gt;如果能过 POST，再逐块接回硬盘。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这套路径优先处理最常见的两类问题：Legacy / Option ROM 冲突，以及 PCIe Gen3 链路训练不兼容。&lt;/p&gt;
&lt;h2 id=&#34;如何判断是卡坏了还是主板兼容性问题&#34;&gt;如何判断是卡坏了还是主板兼容性问题
&lt;/h2&gt;&lt;p&gt;如果做完上面步骤仍然卡在光标闪烁，还可以做两个交叉验证：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;把这张扩展卡插到另一台电脑上测试。&lt;/li&gt;
&lt;li&gt;换一张确认正常的同类 PCIe 扩展卡插到当前主板上测试。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;判断逻辑可以这样看：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同一张卡在多台电脑上一插就卡死：更像扩展卡本身有硬件或固件问题。&lt;/li&gt;
&lt;li&gt;这张卡只在当前主板卡死，换电脑正常：更像主板 BIOS、插槽通道、PCIe 速率或资源分配兼容性问题。&lt;/li&gt;
&lt;li&gt;当前主板换其他同类扩展卡正常：更支持原卡异常。&lt;/li&gt;
&lt;li&gt;当前主板换其他 PCIe 设备也不稳定：要怀疑主板插槽、供电、BIOS 设置或 PCIe 通道共享问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果这张卡在多台电脑上一插就卡死，而其他扩展卡在当前主板正常，基本可以怀疑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;扩展卡 EEPROM / Option ROM 数据损坏。&lt;/li&gt;
&lt;li&gt;扩展卡存在短路或供电异常。&lt;/li&gt;
&lt;li&gt;金手指、焊点、晶振或电源芯片有硬件问题。&lt;/li&gt;
&lt;li&gt;卡的固件和多个主板 BIOS 都不兼容。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果它只在某一台主板上卡死，则更可能是主板 BIOS、插槽通道、PCIe 速率、CSM 或资源分配问题。&lt;/p&gt;
&lt;h2 id=&#34;不要把系统参数当成-bios-阶段解法&#34;&gt;不要把系统参数当成 BIOS 阶段解法
&lt;/h2&gt;&lt;p&gt;需要特别强调：只要机器还没进入 Linux，&lt;code&gt;pci=nomsi&lt;/code&gt;、&lt;code&gt;pcie_aspm=off&lt;/code&gt;、&lt;code&gt;libata.force&lt;/code&gt; 这类内核参数都不会生效。&lt;/p&gt;
&lt;p&gt;这些参数只能处理操作系统接管硬件之后的问题，例如 Linux 下掉盘、中断异常、PCIe ASPM 唤醒失败等。对于 BIOS 前光标闪烁、POST 阶段卡死，它们没有机会执行。&lt;/p&gt;
&lt;p&gt;所以这类问题的排障重点是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BIOS 设置。&lt;/li&gt;
&lt;li&gt;PCIe 链路训练。&lt;/li&gt;
&lt;li&gt;Option ROM。&lt;/li&gt;
&lt;li&gt;插槽和资源分配。&lt;/li&gt;
&lt;li&gt;扩展卡和硬盘的物理状态。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;小结&#34;&gt;小结
&lt;/h2&gt;&lt;p&gt;PCIe 扩展卡插上后卡在 BIOS 前光标闪烁，本质上是 POST 阶段就被卡住。最常见的突破口是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;断开所有 SATA 硬盘，排除硬盘或供电诱因。&lt;/li&gt;
&lt;li&gt;关闭 CSM，切换到纯 UEFI。&lt;/li&gt;
&lt;li&gt;禁用 Storage / PCIe Option ROM。&lt;/li&gt;
&lt;li&gt;将 PCIe 速率从 Auto / Gen3 降到 Gen2 或 Gen1。&lt;/li&gt;
&lt;li&gt;开启 Above 4G Decoding。&lt;/li&gt;
&lt;li&gt;更换 PCIe 插槽测试。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果这些都无效，并且这张卡在其他电脑上也会卡死，就要高度怀疑扩展卡本身硬件或固件损坏。对 NAS 和存储服务器来说，稳定性比参数漂亮更重要。遇到这类 POST 级卡死，优先让主板能稳定过自检，再谈 Linux 里的内核参数和驱动排查。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>pci=nomsi 和 pcie_aspm=off 详解：Linux 下 SATA 扩展卡不认盘、掉盘、卡死时该怎么排查</title>
        <link>https://knightli.com/2026/05/24/pci-nomsi-pcie-aspm-off-linux-sata-expansion-card/</link>
        <pubDate>Sun, 24 May 2026 00:41:23 +0800</pubDate>
        
        <guid>https://knightli.com/2026/05/24/pci-nomsi-pcie-aspm-off-linux-sata-expansion-card/</guid>
        <description>&lt;p&gt;在 Linux / Ubuntu 上使用 PCIe SATA 扩展卡时，很多人会遇到不认盘、运行一段时间掉盘、系统卡死，或者开机阶段卡在 PCIe 链路训练的问题。常见对象包括 JMB585、ASM1166 等 SATA 扩展卡，尤其是在 NAS、小主机、工控机、魔改主板或廉价转接卡环境里更容易出现。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pci=nomsi&lt;/code&gt; 和 &lt;code&gt;pcie_aspm=off&lt;/code&gt; 是排查这类问题时经常用到的两个 Linux 内核参数。它们看起来都和 PCIe 有关，但解决的不是同一个问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pci=nomsi&lt;/code&gt; 主要处理 &lt;strong&gt;中断信号问题&lt;/strong&gt;，也就是设备和 CPU 之间的“通知方式”不稳定。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pcie_aspm=off&lt;/code&gt; 主要处理 &lt;strong&gt;PCIe 电源管理问题&lt;/strong&gt;，也就是链路进入省电状态后唤醒失败或信号不稳。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果把这两个参数混在一起理解，很容易变成玄学调参。更合理的做法是先看现象，再判断应该优先怀疑中断、链路省电，还是硬件本身。&lt;/p&gt;
&lt;h2 id=&#34;pcinomsi禁用消息信号中断&#34;&gt;pci=nomsi：禁用消息信号中断
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;pci=nomsi&lt;/code&gt; 可以拆开看：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PCI&lt;/code&gt;：外设部件互连相关设备。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no&lt;/code&gt;：禁用。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MSI&lt;/code&gt;：Message Signaled Interrupts，消息信号中断。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它的意思是：让 Linux 内核不要给 PCI 设备使用 MSI / MSI-X 中断机制，而是退回传统的 INTx 中断方式。&lt;/p&gt;
&lt;h2 id=&#34;msi-是什么&#34;&gt;MSI 是什么
&lt;/h2&gt;&lt;p&gt;传统硬件设备要通知 CPU “我有事要处理”，通常依赖物理中断引脚，也就是传统 IRQ。这个机制比较老，能用，但共享和扩展能力有限。&lt;/p&gt;
&lt;p&gt;后来出现了 MSI / MSI-X。设备不再一定要拉物理中断引脚，而是向特定内存地址写入一条消息。CPU 收到这条消息后，就知道哪个设备触发了中断。对现代系统来说，MSI / MSI-X 通常更灵活，也更适合高并发设备。&lt;/p&gt;
&lt;p&gt;问题在于，并不是每张 PCIe 扩展卡的固件都把 MSI 做得足够可靠。部分廉价扩展卡、二手拆机卡、桥接芯片方案，或者固件质量一般的 SATA 控制器，在 Linux 驱动下可能出现 MSI 消息异常、中断丢失或中断风暴。&lt;/p&gt;
&lt;p&gt;常见表现包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;开机检测 PCIe 扩展卡时卡住。&lt;/li&gt;
&lt;li&gt;SATA 扩展卡完全不认盘。&lt;/li&gt;
&lt;li&gt;系统随机卡死。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dmesg&lt;/code&gt; 中出现类似 &lt;code&gt;irq xx: nobody cared&lt;/code&gt; 的报错。&lt;/li&gt;
&lt;li&gt;某张卡在 Windows 下看似正常，但 Linux 下很不稳定。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这类问题的核心不是硬盘本身，也不是文件系统，而是设备和 CPU 之间的中断通信方式不可靠。&lt;/p&gt;
&lt;h2 id=&#34;加上-pcinomsi-后会发生什么&#34;&gt;加上 pci=nomsi 后会发生什么
&lt;/h2&gt;&lt;p&gt;启用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pci=nomsi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;等于告诉 Linux 内核：不要让 PCI 设备使用高级的 MSI 消息中断，统一退回传统 INTx 中断模式。&lt;/p&gt;
&lt;p&gt;这可能带来一点性能和并发效率损失，尤其是在高吞吐、高中断频率设备上。但对家用 NAS、SATA 扩展卡、普通机械硬盘阵列来说，实际影响通常不明显。它的价值在于绕过某些设备固件或桥接芯片的 MSI 兼容性问题，让系统能稳定识别设备并处理 I/O。&lt;/p&gt;
&lt;p&gt;简单说，&lt;code&gt;pci=nomsi&lt;/code&gt; 处理的是“设备通知 CPU 的方式不靠谱”。&lt;/p&gt;
&lt;h2 id=&#34;pcie_aspmoff禁用-pcie-活动状态电源管理&#34;&gt;pcie_aspm=off：禁用 PCIe 活动状态电源管理
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;pcie_aspm=off&lt;/code&gt; 也可以拆开看：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PCIe&lt;/code&gt;：PCI Express，高速串行扩展总线。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ASPM&lt;/code&gt;：Active State Power Management，活动状态电源管理。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;off&lt;/code&gt;：关闭。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它的意思是：关闭 PCIe 链路的省电机制，让 PCIe 链路不要进入低功耗状态。&lt;/p&gt;
&lt;h2 id=&#34;aspm-是什么&#34;&gt;ASPM 是什么
&lt;/h2&gt;&lt;p&gt;ASPM 是 PCIe 总线上的省电机制。当系统发现某条 PCIe 链路暂时没有数据传输时，可以把链路切到低功耗状态，例如 L0s 或 L1。等设备再次有数据读写时，再把链路唤醒回正常工作状态。&lt;/p&gt;
&lt;p&gt;在设计良好的硬件上，这套机制可以降低功耗，而且对用户几乎无感。但在一些消费级主板、小主机、工控机、廉价 SATA 扩展卡、转接板或信号质量一般的硬件上，问题会出在“睡下去以后醒不稳”。&lt;/p&gt;
&lt;p&gt;典型情况是：JMB585、ASM1166 这类 PCIe SATA 扩展卡在空闲后进入低功耗状态，下一次访问硬盘时链路需要从 L1 唤醒。如果控制器、主板、转接线、供电或固件质量不够好，唤醒可能太慢，或者链路恢复时发生物理层抖动。Linux 内核就可能认为设备短暂失联。&lt;/p&gt;
&lt;p&gt;常见 &lt;code&gt;dmesg&lt;/code&gt; 表现包括：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pcieport 0000:00:1c.0: PCIe Bus Error: severity=Corrected, type=Physical Layer
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ata1: link is slow to respond, please be patient
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ata1: COMRESET failed (errno=-16)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;随后可能出现：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;硬盘掉线。&lt;/li&gt;
&lt;li&gt;阵列降级。&lt;/li&gt;
&lt;li&gt;文件系统变成只读。&lt;/li&gt;
&lt;li&gt;NAS 服务异常。&lt;/li&gt;
&lt;li&gt;系统 I/O 卡死。&lt;/li&gt;
&lt;li&gt;重启后硬盘又暂时恢复正常。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这类问题最烦的地方在于，它不一定开机就出现，往往是运行一段时间、空闲后唤醒、或高负载切换时突然发生。&lt;/p&gt;
&lt;h2 id=&#34;加上-pcie_aspmoff-后会发生什么&#34;&gt;加上 pcie_aspm=off 后会发生什么
&lt;/h2&gt;&lt;p&gt;启用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pcie_aspm=off
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;等于告诉内核：关闭全系统 PCIe ASPM 省电功能。PCIe 链路不管空闲还是忙碌，都尽量保持在正常连接状态，不要进入低功耗睡眠。&lt;/p&gt;
&lt;p&gt;副作用是功耗可能略有上升。对台式机、NAS、小主机来说，通常只是几百毫瓦到一两瓦级别；对笔记本来说，可能会影响续航。它换来的好处是减少因为 PCIe 链路睡眠和唤醒造成的掉盘、链路训练错误和物理层报错。&lt;/p&gt;
&lt;p&gt;简单说，&lt;code&gt;pcie_aspm=off&lt;/code&gt; 处理的是“PCIe 链路睡着后醒不稳”。&lt;/p&gt;
&lt;h2 id=&#34;两个参数的区别&#34;&gt;两个参数的区别
&lt;/h2&gt;&lt;p&gt;可以把它们理解成两类不同问题：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;参数&lt;/th&gt;
          &lt;th&gt;解决的核心问题&lt;/th&gt;
          &lt;th&gt;常见表现&lt;/th&gt;
          &lt;th&gt;主要副作用&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;pci=nomsi&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;中断信号冲突、MSI / MSI-X 兼容性差&lt;/td&gt;
          &lt;td&gt;开机卡死、完全不认盘、&lt;code&gt;irq xx: nobody cared&lt;/code&gt;、系统死机&lt;/td&gt;
          &lt;td&gt;极高并发下中断效率可能下降&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;pcie_aspm=off&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;PCIe 省电唤醒失败、链路信号不稳&lt;/td&gt;
          &lt;td&gt;刚开机正常，运行一会儿掉盘，&lt;code&gt;PCIe Bus Error&lt;/code&gt;、&lt;code&gt;COMRESET failed&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;功耗略升，笔记本续航略降&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;所以它们不是互相替代关系。一个管中断，一个管链路电源管理。&lt;/p&gt;
&lt;p&gt;如果机器开机阶段就卡死、设备完全不认，优先怀疑 &lt;code&gt;pci=nomsi&lt;/code&gt;。如果开机正常、运行一段时间后掉盘，或者 &lt;code&gt;dmesg&lt;/code&gt; 里有 PCIe Physical Layer、COMRESET、link is slow to respond 之类信息，优先怀疑 &lt;code&gt;pcie_aspm=off&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id=&#34;是否应该两个一起加&#34;&gt;是否应该两个一起加
&lt;/h2&gt;&lt;p&gt;很多 NAS 玩家会直接同时加：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pci=nomsi pcie_aspm=off
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这确实是快速排查的办法，尤其是在 JMB585、ASM1166、小主机、转接卡、供电和线材都不太确定的环境里。它可以同时绕开 MSI 兼容性问题和 ASPM 唤醒问题。&lt;/p&gt;
&lt;p&gt;但从排障角度，更推荐先记录现象和日志：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果是中断报错或启动卡死，先试 &lt;code&gt;pci=nomsi&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;如果是运行后掉盘、PCIe Bus Error、COMRESET，先试 &lt;code&gt;pcie_aspm=off&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;如果问题严重且急着恢复稳定，可以两个一起加，稳定后再拆开验证。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这样能知道到底是哪一类问题导致的，后续换卡、换槽、换主板或调整 BIOS 时更有依据。&lt;/p&gt;
&lt;h2 id=&#34;ubuntu--debian-中如何永久生效&#34;&gt;Ubuntu / Debian 中如何永久生效
&lt;/h2&gt;&lt;p&gt;编辑 Grub 配置文件：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo nano /etc/default/grub
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;找到这一行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GRUB_CMDLINE_LINUX_DEFAULT=&amp;#34;quiet splash&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;在双引号内追加参数，参数之间用空格隔开。例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GRUB_CMDLINE_LINUX_DEFAULT=&amp;#34;quiet splash pci=nomsi pcie_aspm=off&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;保存并退出。如果使用 Nano，按 &lt;code&gt;Ctrl+O&lt;/code&gt; 保存，回车确认，再按 &lt;code&gt;Ctrl+X&lt;/code&gt; 退出。&lt;/p&gt;
&lt;p&gt;更新 Grub 并重启：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo update-grub
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo reboot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;重启后，可以查看当前内核启动参数是否已经生效：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat /proc/cmdline
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果输出里能看到 &lt;code&gt;pci=nomsi&lt;/code&gt; 和 &lt;code&gt;pcie_aspm=off&lt;/code&gt;，说明参数已经进入当前内核启动命令行。&lt;/p&gt;
&lt;h2 id=&#34;还应该检查哪些地方&#34;&gt;还应该检查哪些地方
&lt;/h2&gt;&lt;p&gt;这两个参数很有用，但它们不是所有掉盘问题的万能解法。排查 SATA 扩展卡和 NAS 掉盘时，也建议同时检查：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SATA 数据线是否松动或质量太差。&lt;/li&gt;
&lt;li&gt;硬盘供电是否稳定，尤其是多盘同时启动时。&lt;/li&gt;
&lt;li&gt;PCIe 插槽是否接触不良。&lt;/li&gt;
&lt;li&gt;扩展卡是否过热。&lt;/li&gt;
&lt;li&gt;主板 BIOS 是否有 PCIe ASPM、Above 4G Decoding、PCIe speed 等相关选项。&lt;/li&gt;
&lt;li&gt;SATA 扩展卡固件是否有已知问题。&lt;/li&gt;
&lt;li&gt;系统日志中是否有硬盘本体坏道、I/O error 或 SMART 告警。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果硬盘 SMART 已经报错，或者供电本身不稳，单靠内核参数无法真正解决问题。&lt;/p&gt;
&lt;h2 id=&#34;小结&#34;&gt;小结
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;pci=nomsi&lt;/code&gt; 和 &lt;code&gt;pcie_aspm=off&lt;/code&gt; 都常用于 Linux 下 PCIe SATA 扩展卡不稳定的排查，但它们解决的是两条不同链路：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pci=nomsi&lt;/code&gt;：关闭 MSI / MSI-X，绕开中断通信兼容性问题。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pcie_aspm=off&lt;/code&gt;：关闭 PCIe ASPM，避免链路省电后唤醒失败。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对 JMB585、ASM1166、NAS、小主机和廉价 PCIe 扩展卡来说，这两个参数确实经常能救场。更稳妥的做法是先看 &lt;code&gt;dmesg&lt;/code&gt;，判断是中断问题还是链路省电问题，再决定单独使用还是一起使用。&lt;/p&gt;
&lt;p&gt;它们是排障工具，不是硬件质量的替代品。如果加上参数后系统稳定了，说明问题大概率在中断兼容性或 PCIe 电源管理上；如果仍然掉盘，就要继续检查供电、线材、散热、硬盘健康和扩展卡本身。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
