在 Debian 10 (buster) 系统上,我刚刚尝试安装最近的grub-pc
更新,并且第一次收到此错误:
Installing for i386-pc platform.
grub-install: warning: your core.img is unusually large. It won't fit in the embedding area.
grub-install: error: embedding is not possible, but this is required for RAID and LVM install.
对于构成我的/boot/
分区的每个磁盘都重复了此操作。
这个安装很老了;它于 2006 年安装,磁盘已多次移植到新硬件中,并且操作系统从那时起一直保持最新状态。
因此,for 的设置/boot
相当陈旧,但仍然可以工作。有四个相同分区的 HDD:
$ sudo fdisk -u -l /dev/sda
Disk /dev/sda: 298.1 GiB, 320069031424 bytes, 625134827 sectors
Disk model: ST3320620AS
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 63 514079 514017 251M fd Linux raid autodetect
/dev/sda2 514080 6393869 5879790 2.8G fd Linux raid autodetect
/dev/sda3 6393870 625121279 618727410 295G fd Linux raid autodetect
所以这是一个老式的 MBR,第一个分区从 63 个扇区开始。每个磁盘的第一个分区被放入一个 4 路 RAID-1 中md0
,这就是我的/boot
:
$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 0.90
Creation Time : Sun Jun 4 08:18:05 2006
Raid Level : raid1
Array Size : 256896 (250.88 MiB 263.06 MB)
Used Dev Size : 256896 (250.88 MiB 263.06 MB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Mar 4 06:52:36 2021
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
UUID : 78cf4169:e31908f4:e667021c:582159fb
Events : 0.2479
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 1 1 active sync /dev/sda1
2 8 17 2 active sync /dev/sdb1
3 8 33 3 active sync /dev/sdc1
这个 md 数组故意具有元数据版本 0.90,以便它可以由 grub 引导,因为它可以追溯到 grub 不支持 md 的时间;0.90 元数据版本将元数据放在分区的末尾,因此 grub 应该能够读取每个分区,就好像它不是软件 RAID 一样。
grub 已安装到基本磁盘设备,即每个/dev/sd{a,b,c,d}
. 软件包的后续升级grub-pc
似乎知道运行grub-install /dev/sda
,然后对于sd{b,c,d}
.
直到今天才出现此错误。
这个系统现在无法启动吗?它看起来像一个错误情况,所以我假设新版本的 grub 并没有实际安装。
我很困惑为什么它说它需要为 RAID/LVM 做一些事情,而不需要这样的支持来引导这个系统。
grub 是否因某种原因增大了大小,现在不适合每个磁盘的前 63 个扇区?我知道现在的惯例是以 1MB 开始分区,但正如我所说,这是一个非常古老的安装,一直有效。
安装此 grub 更新的最简单方法是什么?如果我需要删除那些第一个分区并以 1MB 的大小启动它们,我可以很容易地做到这一点,尽管我想在我达到那个长度之前确定这实际上是问题所在。
的详细输出grub-install -v /dev/sda
是巨大的,然后以相同的方式结束。我无法在其中发现任何有用的内容,但如果有人认为有必要,我会将其包括在内。