在具有旧 BIOS 和 Linux 操作系统的计算机上使用 NVME SSD 作为系统驱动器

在具有旧 BIOS 和 Linux 操作系统的计算机上使用 NVME SSD 作为系统驱动器

如果配置正确,即使在较旧的系统上,您也可以从 NVME SSD 启动。 假设操作系统 (OS) 能够与 NVME SSD 配合使用。 我正在考虑启动操作系统,因为有了操作系统中可用的驱动程序,NVME SSD在启动后在操作系统中可见并且可以使用。 不需要用于 Linux 的附加软件(软件)。 对于 BSD 系列和其他 Unix 操作系统,该方法很可能也适用。

要从任何驱动器启动,引导加载程序 (BOP)、BIOS 或 EFI (UEFI) 必须包含该设备的驱动程序。 与 BIOS 相比,NVME SSD 驱动器是相当新的设备,旧主板的固件固件中没有此类驱动程序。 在不支持 NVME SSD 的 EFI 中,您可以添加适当的代码,然后就可以完全使用该设备 - 您可以安装操作系统并启动它。 对于所谓的旧系统。 “传统 BIOS”启动操作系统不太可能做到这一点。 然而,这可以被绕过。

如何

我使用的是 openSUSE Leap 15.1。 对于其他 Linux,步骤大致相同。

1. 让我们准备好计算机来安装操作系统。
你需要一台有空闲 PCI-E 4x 或更长插槽的 PC 或服务器,无论哪个版本,PCI-E 1.0 就足够了。 当然,PCI-E版本越新,速度就越快。 嗯,实际上,带有 M.2 适配器的 NVME SSD - PCI-E 4x。
您还需要某种容量为 300 MB 或更大的驱动器,该驱动器在 BIOS 中可见,并且可以从中加载操作系统。 它可以是具有 IDE、SATA、SCSI 连接的 HDD。 S.A.S. 或 USB 闪存驱动器或存储卡。 它不适合软盘。 CD-ROM 不起作用,需要重写。 DVD-RAM - 不知道。 我们有条件地将这个东西称为“传统 BIOS 驱动器”。

2. 我们加载 Linux 进行安装(从光盘或可启动闪存驱动器等)。

3. 对磁盘进行分区时,将操作系统分布在可用驱动器中:
3.1. 让我们在“传统驱动器 BIOS”的开头为 GRUB 引导加载程序创建一个大小为 8 MB 的分区。 我注意到这里使用了 openSUSE 功能 - GRUB 位于单独的分区上。 对于 openSUSE,默认文件系统 (FS) 是 BTRFS。 如果将 GRUB 放置在具有 BTRFS 文件系统的分区上,则系统将无法启动。 因此,使用单独的部分。 您可以将 GRUB 放置在其他地方,只要它能够引导即可。
3.2. 用GRUB分区后,我们将创建一个包含系统文件夹(“root”)部分的分区,即“/boot/”,大小为300 MB。
3.3. 其余的优点 - 系统文件夹的其余部分、交换分区、“/home/”用户分区(如果您决定创建一个)都可以放置在 NVME SSD 上。

安装完成后,系统会加载GRUB,GRUB会从/boot/加载文件,之后NVME SSD变得可用,然后系统从NVME SSD启动。
在实践中,我得到了显着的加速。

“传统驱动器 BIOS”的容量要求:GRUB 分区默认为 8 MB,/boot/ 为 200 MB 左右。 我拿了 300 MB 的余量。 当更新内核(以及安装新内核时),Linux 会用新文件填充 /boot/ 分区。

估算速度和成本

NVME SSD 128 GB 的成本约为 2000 卢布起。
M.2 适配器 - PCI-E 4x - 的成本约为 500 卢布。
适用于四个 NVME SSD 驱动器的 M.2 转 PCI-E 16x 适配器也在销售,价格从 3000 卢比起。 - 如果有人需要的话。

限制速度:
PCI-E 3.0 4x 约 3900 MB/s
PCI-E 2.0 4x 2000MB/秒
PCI-E 1.0 4x 1000MB/秒
采用 PCI-E 3.0 4x 的驱动器实际上可达到约 3500 MB/s 的速度。
可以假设可达到的速度如下:
PCI-E 3.0 4x 约 3500 MB/s
PCI-E 2.0 4x 约 1800 MB/s
PCI-E 1.0 4x 约 900 MB/s

比 SATA 600MB/s 更快。 SATA 600 MB/秒可达到的速度约为 550 MB/秒。
同时,在较旧的主板上,板载控制器的SATA速度可能不是600MB/s,而是300MB/s或150MB/s。 这里板载控制器=内置于芯片组南桥的SATA控制器。

我注意到 NCQ 适用于 NVME SSD,而较旧的板载控制器可能没有此功能。

我对 PCI-E 4x 进行了计算,但是,某些驱动器具有 PCI-E 2x 总线。 这对于 PCI-E 3.0 来说已经足够了,但对于较旧的 PCI-E 标准 - 2.0 和 1.0 - 最好不要采用此类 NVME SSD。 此外,带有存储芯片形式的缓冲区的驱动器将比没有它的驱动器更快。

对于那些想要完全放弃板载SATA控制器的人,我建议您使用Asmedia ASM 106x控制器(1061等),它提供两个SATA 600端口(内部或外部)。 它工作得很好(固件更新后),在 AHCI 模式下它支持 NCQ。 通过 PCI-E 2.0 1x 总线连接。

其最高时速:
PCI-E 2.0 1x 500MB/秒
PCI-E 1.0 1x 250MB/秒
可达到的速度为:
PCI-E 2.0 1x 460MB/秒
PCI-E 1.0 1x 280MB/秒

这足以容纳一个 SATA SSD 或两个硬盘。

注意到的缺陷

1. 未读过 智能参数 对于 NVME SSD,只有有关制造商、序列号等的一般信息。 可能是由于主板(mp)太旧。 在我的非人实验中,我使用了我能找到的最古老的 mp,带有 nForce4 芯片组。

2. TRIM应该可以工作,但是需要检查。

结论

还有其他选择:购买带有 PCI-E 4x 或 8x 插槽的 SAS 控制器(有 16x 或 32x 吗?)。 然而,如果便宜的话,它们支持SAS 600,但支持SATA 300,而昂贵的会比上面提出的方法更贵、更慢。

为了与 M$ Windows 一起使用,您可以安装额外的软件 - 带有 NVME SSD 内置驱动程序的引导加载程序。

看这里:
www.win-raid.com/t871f50-指南-如何获取完整的 NVMe-support-for-all-Systems-with-an-AMI-UEFI-BIOS.html
www.win-raid.com/t3286f50-Guide-NVMe-boot-for-systems-with-legacy-BIOS-and-older-UEFI-DUET-REFIND.html
forum.overclockers.ua/viewtopic.php?t=185732
pcportal.org/forum/51-9843-1
mrlithium.blogspot.com/2015/12/how-to-boot-nvme-ssd-from-legacy-bios.html

我请读者自己评估是否需要NVME SSD的这种应用,或者最好购买具有现有M.2 PCI-E连接器并支持从NVME启动的新主板(+处理器+内存) EFI 中的 SSD。

来源: habr.com

添加评论