我工作的地方的笔记本电脑都是共用的,所以我经常在同一型号的不同笔记本电脑之间切换。我在外部 USB 驱动器上运行 Ubuntu,这样我就可以使用 Ubuntu,而无需以任何方式安装或更改我工作电脑。我在家里的电脑上运行相同的 Ubuntu 硬盘。
但是,我的工作带来了新的笔记本电脑,我在新系统上加载 Ubuntu 时遇到了麻烦。我怀疑这可能与 CPU 固件有关。使用旧笔记本电脑,我在 USB 驱动器上全新安装了 Ubuntu,并通过“sudo apt-get install intel-microcode”安装了英特尔微代码。
英特尔微码是否会更新我在安装时使用的计算机特定的固件,并且当我在具有不同 CPU 的其他不同计算机上加载我的 Ubuntu 外部驱动器时,这是否会导致问题?
答案1
您必须在 BIOS 中关闭新 PC 的“保护模式”。我建议您制作一个 DOS7-freedos USB 棒来备份 PC 的全 ROM 固件。您可以从 MB 供应商处获取 ROM 实用程序,或使用 xbios320_ubcd(终极启动 CD 套件)来恢复 BIOS,以防您的 USB-linux 在您的同事 PC 上安装了一些丑陋的微代码。Ubuntu16.04+ 会自动安装破坏 AMD-A12/K1 BIOS 的 intel/amd64 ucode 更新。这与来自 USB 棒的 bios 攻击是一样的。没有保护措施,因为您必须禁用“保护模式”才能启动到 linux。但是,新笔记本电脑的一个优点是它们通常有一个 bios 缓存,用于复制/镜像 bios 设置。请先执行此操作。我找到了一篇关于使用“开发者模式”编写英特尔 bios 脚本的非常有用的文章,它允许您使用 (GBB_FLAG_FORCE_DEV_BOOT_LEGACY) 设置设置启动选项 (GBB 标志)。有关使用双启动脚本(如 iPXe 或 chRX)启动 GalliumOS/ChromeOS 的更多信息,请谷歌搜索“MrChromebox.tech”。如果由于某种原因,您的 linux 发行版锁定了用户,您可以随时用更用户友好的版本替换 Stock-ROM。how2geek.com 上有一个恢复 BIOS 的良好指南,您可以从那里获得有关英特尔 stock-ROM 的详细信息。就我个人而言,我不会在生产环境中禁用“保护模式”。使用 USB 启动笔记本电脑很危险,因为您最终会从某人那里获得一个“root-kit”,该人使用某人在会议上拿到的演示 USB,然后在他们的笔记本电脑上试用它。
答案2
关于你的第一个问题,答案是:不。
背景:英特尔微代码是计算机 BIOS 的补丁。定期更新 BIOS 也会应用这些补丁。在这种“传统”的微代码更新方式中,BIOS 芯片的实际 ROM 会使用新代码进行更新。因此,任何操作系统都可以在更新了 BIOS 的系统上运行。
有了微码,每次启动计算机时,这些更新都会应用到 Linux 操作系统中。此处的处理器微码存储在 RAM 中。因此,您的 Linux 安装将在更新了 BIOS 的系统上运行。如果其他操作系统没有在启动时动态更新 BIOS 代码的机制,则不会。
关于你的第二个问题:还是不行。
Linux 内核是动态的,可以查看其启动位置。微码更新将适应当前 CPU。如果存在非 Intel 处理器,则不会应用 Intel 微码。