我想装 Linux 操作系统,但是为什么总无法识别硬盘啊?
| 2017-12-08 14:15 收藏: 2
近日朋友拿了台联想小新本子,靓丽的外观,轻薄的机体,价格也很有吸引力。无奈只有 Win10 系统,朋友欲采用普华 Linux 桌面系统来提供业务支撑,而因常规方法无法识别 SSD 固态硬盘,未能加载 Linux 系统。检测系统后,在 Zane 大师的指导下,顿然领悟商业的价值驱使,造就了硬件厂商的垄断商机。原来烤不了圆蛋糕,只是因为压根儿没给你这个选择啊!
硬盘的历史中,以往并行接口的 IDE 硬盘已经逐渐退出市场,而 SATA 串行机械硬盘,目前已是主流,特别是超大容量(T 级)的硬盘,因很好的性价比而普遍采用。而一种新兴的固态存储介质,也在悄然之中霸气出山。这其中以往的 USB 存储介质,随着 3.0 标准以及大容量 U 盘的普及,已经逐步取代了传统 CD 以及 DVD 介质。例如华梦移动课堂即采用高速 U 盘移动介质为载体。在不损伤原因系统数据的基础上,可自如 U 盘启动使用 Linux 系统。而在整机领域,一种称之为固态硬盘 SSD 的介质,也在悄然兴起,但其成本还较高,通常采用其作为系统盘,在启动时加快速度,而大量数据的存储,还普遍在采用大容量的 SATA 机械硬盘。
之所以特意提到 SSD 固态硬盘,因为这款新笔记本就是使用了 SSD 固态硬盘,且通过 RAID 模式转换,采用更能发挥固盘高速性能的 NVMe 通道规范。或许是为了保证这一介质性能的优势,厂家特意在标配的 BIOS 中屏蔽了传统AHCI 通道,而仅提供已经在 Win10 内置驱动的 RAID 通道来跨接使用 NVMe 设备。这也就是为什么除了 Win10 外其他系统甚至 Win7 都无法直接识别 RAID 身后的 SSD 盘的缘由。
在厂家未提供 Linux 系统中 RAID 模块驱动时,且又在这款机屏蔽了 AHCI 通道的情况下,即使 Linux 系统已经支持 NVMe 规范,但没有 RAID 驱动,则无法识别这块硬盘设备,这也是为什么总也看不到硬盘的问题。
不过业内广泛的呼吁下,该笔记本厂商终于提供了新的 BIOS,所以大家可在其网站下载 1.06(标配)以上的 BIOS 版本,可以通过打开 AHCI 通道,在降低一些性能后,实现对 NVMe 通道规范的 SSD 盘识别,成功安装非 Win10 系统。
图1 升级了开放 AHCI 通道的 BIOS
图2 打开 AHCI 硬盘通道
虽然无奈采用 AHCI 通道规范,势必会降低 SSD 采用 NVMe 通道的超强性能,但也很不错了。或许将来 Intel 会开放给 Linux 其 RAID 接口驱动吧。有了硬件环境的支撑,安装 Linux 就不再是大的问题,如同时采用 UEFI 体系以及 GPT 硬盘技术安装系统,这 Linux 系统启动过程几乎一闪而过,体验超爽。
图3 安装好的普华桌面系统
或许细心的朋友会注意到,在采用 NVMe 规范的 SSD 盘,其设备号已经不再是原始 SATA 通道中的 sdxn 结构,对应的为 nvme0nXpY 了,这也没啥奇怪的,用 nvme 对应原来的 sd 通道类型,这里只有一个 0 通道,nX 对应盘号(a、b、c …),pY 对应分区号即可。例如 0 通道中,第一块硬盘的 1 号分区,SATA 通道时为 sda1,在此就为 nvme0n1p1 了,表示 NVMe 的第 0 通道上第一块硬盘的第一分区,第二分区顺序为 nvme0n1p2。
图4 用 fdisk 命令列出设备状态
这里采用了 GPT 分区表结构,相对于传统 MSDOS 的 MBR 架构,其引导机制是在 EFI 分区(ESP)内实现的,相关技术应用,可参阅华梦“知识天地”。这里除了 SSD 硬盘的设备符号不同外,其余均可基于以往技术知识使用。
同样,如果需要采用华梦移动课堂U盘系统在此环境启动运行,别忘了修改 UEFI 主板对 BIOS 的支持,以实现 EFI 主板对 Legacy BIOS 的支持(如图 5 所示)。
图5 激活传统 BIOS 启动机制的支持
说到这,各位小伙伴对在基于快速硬盘 NVMe 通道规范下的 SSD 硬盘设备中构建 Linux 系统也就成竹于胸了。还要注意一下所采用的 Linux 内核版本,最好是 3.1 以上的内核版,其对 NVMe 的支持已经内嵌。当然,不同的 Linux 系统发布版本,对这类新的技术设备,还有待进一步的技术积累,不同整机厂商,都会有些独特的尝试,很难保证初期的技术规范统一。