我最近将我的一台旧笔记本电脑重新用作家庭服务器。我决定删除原来的 Windows 安装并安装 Linux。
该笔记本电脑有两个硬盘:一个 SSD(/dev/sdb
)和一个带有 PRM 磁盘的老式冰箱磁铁(/dev/sda
)。(从现在开始,我将它们称为 SSD 和 RPM)。
我一直将操作系统放在 SSD 上,将其他东西放在 RPM 上,因此我更愿意将 SSD 作为主设备,将 RPM 作为辅设备。但是,由于底盘不够理想,我需要(或者说我更愿意,因为我比较胆小)将两者反过来放置,以利于散热。
现在,我可以将 BIOS 设置为仅从 SSD 启动,但是由于多年来安装了各种操作系统,我最终得到了这样的结果:
- BIOS 设置为从 RPM 启动
- RPM 似乎有一个引导程序,可以链式引导 SSD 上的任何内容
- SSD 正常启动。Grub 甚至引用了 RPM 上仍然存在的旧 Windows 加载程序。
由于一些不相关的测试,我尝试在未安装 RPM 驱动器的情况下启动,但之后根本无法启动。(黑屏,没有任何信息)。我通过临时将前几兆复制到 USB 闪存驱动器(使用dd
)然后从那里启动来解决这个问题。这允许它暂时断开 RPM 驱动器。
所以,我的问题有两个:
- 我如何查看 RPM 上存在哪种类型的引导加载程序?
- 我如何让 SSD 的引导加载程序同时满足这两个目的,以便最终完全删除 RPM?(当然,在将 BIOS 设置为从 SSD 启动之后)
编辑:
grubs OS-probe 声称 RPM 磁盘上有一个 Windows 加载程序
答案1
令人惊讶的是,在两个驱动器上备份引导加载程序,并将 RPM 引导加载程序复制到 SSD 上,却不起作用:
dd if=/dev/sda of=mbrsda bs=512 count=1
dd if=/dev/sdb of=mbrsdb bs=512 count=1
dd if=mbrsda of=/dev/sdb bs=446 count=1
我不记得具体哪里出了问题,但是 grub 抱怨读取了它的引导扇区之外的内容或类似的东西。
最终有效的是:
grub-install /dev/sdb
考虑到它是多么简单和无痛,我曾经并且现在仍然惊讶于那个东西在我一直在搜索的谷歌搜索结果中被埋藏得如此之深。 RPM 的 MBR 中的内容仍然存在,但我已经将 BIOS 设置为从 SSD 启动,完全绕过 RPM,这样我就可以在需要时断开/替换它。