06-07-2021, 10:51 AM
本人随后测试了Ubuntu、Mint等发行版,发现它们也是可以正常启动的,只要/boot位于SATA设备上。看起来像是Debian testing的新版grub的行为问题(不一定是bug,也可能是feature),不过主要的问题仍然在于SeaBIOS对于(部分)NVMe设备的识别问题。当然,问题还有可能在于该SSD本身,有可能联想对其拆机的SSD的固件做了手脚,当检测到引导固件非联想官方固件时(换言之,在非联想品牌设备上安装时),就使得引导固件不能正确识别其参数。这一行为有过先例,当年苹果设备专用的一批1.8英寸IDE(ZIF)硬盘就是东芝为其定制的,在非苹果设备上不能正确识别,不过这套机制后来已被破解,有专用的IDE(ZIF)转USB2.0硬盘盒可以使这些硬盘在非苹果系统上正常使用。
本人初步的理解是,只要Linux内核正常加载,就能识别该NVMe设备,那么本人遇到的不能引导的情况,应该属于卡在了grub这一步,尚未加载Linux内核。当然,这不一定是新版grub的bug,也可能是feature(一种保护机制),即禁止引导参数异常的硬盘上的操作系统。
除了研究自行编译构建coreboot镜像(假设未来的某个SeaBIOS版本解决了此类NVMe设备的识别问题),本人近期可能想借用几块不同型号的2230/2242 PCIe 2x/4x的NVMe设备,看看这是普遍现象还是个别案例,不论是关于硬盘还是关于主板芯片组。既然东芝当年可以为苹果定制厂商锁定的机械硬盘,现在同样可以为联想定制厂商锁定的固态硬盘。
关于Tianocore的问题:如果我用Tianocore作为payload,但是同时用SeaBIOS作为它的CSM模块(以提供传统BIOS兼容性),情况会如何……
本人初步的理解是,只要Linux内核正常加载,就能识别该NVMe设备,那么本人遇到的不能引导的情况,应该属于卡在了grub这一步,尚未加载Linux内核。当然,这不一定是新版grub的bug,也可能是feature(一种保护机制),即禁止引导参数异常的硬盘上的操作系统。
除了研究自行编译构建coreboot镜像(假设未来的某个SeaBIOS版本解决了此类NVMe设备的识别问题),本人近期可能想借用几块不同型号的2230/2242 PCIe 2x/4x的NVMe设备,看看这是普遍现象还是个别案例,不论是关于硬盘还是关于主板芯片组。既然东芝当年可以为苹果定制厂商锁定的机械硬盘,现在同样可以为联想定制厂商锁定的固态硬盘。
关于Tianocore的问题:如果我用Tianocore作为payload,但是同时用SeaBIOS作为它的CSM模块(以提供传统BIOS兼容性),情况会如何……