![如何让 Grub 2.0 看到 (USB 3) expresscard 上的 USB 设备](https://linux22.com/image/1457875/%E5%A6%82%E4%BD%95%E8%AE%A9%20Grub%202.0%20%E7%9C%8B%E5%88%B0%20(USB%203)%20expresscard%20%E4%B8%8A%E7%9A%84%20USB%20%E8%AE%BE%E5%A4%87.png)
我正在通过 USB 闪存驱动器运行 ubuntu。
我的笔记本电脑不支持从我的 expresscard 启动(除了我通过 expresscard 添加的之外也没有任何其他 usb3 端口)。
我正在使用 Ubuntu 14.04 安装到我的 USB 设备上的 Grub 2.0x,该设备通过 USB 2.0 端口启动。
我的 USB 3 expresscard 上插着另一个 USB 设备。该设备安装了 xenserver 5.6。
我想通过 USB 2 启动 grub,然后从 USB 3 expresscard 加载 xenserver。但是 grub 无法识别硬盘。
我试过 insmod ahci、ohci 和 ata。但都失败了。USB 驱动器从未出现在 USB 3 端口上。
如果我运行 lspci,我确实会看到列出的 USB 3 主机控制器。
我如何通过 expresscard 和 grub 从 USB 3 闪存驱动器启动?
我读过关于 dracut 的文章,也看到了一些关于 NEC 和 USB 3 的说明,我相信是通过重建 initrd 来实现的。但是 Ubuntu 不能很好地与 dracut 配合使用。如果我加载它,我相信它会破坏 initramfs,从而导致各种混乱。
我使用 ubuntu 并不是必需的。我曾考虑过删除 ubu 并安装 centos,只是为了尝试 dracut 选项。但是我想知道我是否可以使用 grub 来解决这个问题。我的一位叔叔说,也许我需要使用一些驱动程序模块来编译 grub 2,但我在编译时没有看到任何此类选项。我确实看到了一种使用 --install-modules=ata、ahci 等选项安装 grub 的方法。我不确定这与常规 insmod 命令有何不同,但选择 ahci 破坏了我的 grub 配置(由于将我的“ls”驱动器重新标记为 (ahci) 设备)。
另一个选择是尝试在已启动的内核中使用 kexec,该内核可以看到该设备,但我没有成功。系统将导致内核崩溃。
答案1
您的 ExpressCard 内置端口在启动时是否通电?我的没有,它只在操作系统加载后才通电... 至少它是热插拔和热交换的,并且在 Linux 上运行得很好。
但由于没有电,启动时没有运气!
恐怕唯一的办法就是加载一个微内核来启动它(接通电源),然后冷启动另一个支持 ExpressCard 的内核……两者都存储在任何其他可以通过 BIOS/UEFI 系统启动的介质上。
几年前我就放弃尝试了。