Ced*_*ght 7 raid bios grub advanced-format grub2
我在运行 Debian wheezy 和 GRUB 1.99-27+deb7u3 的 4 x 1 TB 驱动器的服务器上遇到问题。
sda 和 sdb 具有使用(Linux 软件)RAID1 镜像的分区,包括/boot
. sdc 和 sdd 各有一个分区,为数据镜像一个 LVM 物理卷。GRUB 安装到 sda 和 sdb。我用mdadm
于--fail
和--remove
1个TB SDC,并取代了旧的驱动器(一个ST91000640NS)用新的2 TB ST2000NX0243。
安装新驱动器后,GRUB 可以达到
GRUB loading.
Welcome to GRUB!
Run Code Online (Sandbox Code Playgroud)
但无法显示菜单。sdc 上的驱动器指示灯持续亮起,因此推测 GRUB 核心正在尝试读取该驱动器,即使它不需要访问 /boot/grub。我试过两个相同型号的驱动器,都用 测试得很好smartctl
,结果相同。在 sdc 驱动器托架为空的情况下,一切正常启动。系统从实时 USB 启动并且可以访问新驱动器,因此这不是硬件不兼容 (*)。我确定是 sdc 被删除了,并且没有迹象表明 BIOS 对驱动器进行了重新排序。
(*)这可能不是一个安全的假设。见答案。
所以我有以下相关问题:
grub rescue>
提示?4K 问题是否也会阻止将驱动器用于 Linux RAID?我正在考虑一个 debug.cfgdebug=all
和类似的东西:
grub-mkimage -c debug.cfg -o dcore.img configfile normal raid fs multiboot
grub-setup -c dcore.img /dev/sda
Run Code Online (Sandbox Code Playgroud)
那行得通吗?(我在自己的回答中解决了第 3 点,但在我的情况下,挂起似乎发生在对嵌入式配置执行操作之前。)
如果它有助于可视化,这是lsblk
输出的一部分:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 931.5G 0 disk
??sdb1 8:17 0 957M 0 part
? ??md0 9:0 0 956.9M 0 raid1 /boot
??sdb2 8:18 0 9.3G 0 part
? ??md1 9:1 0 9.3G 0 raid1 /
??sdb3 8:19 0 279.4G 0 part
? ??md2 9:2 0 279.4G 0 raid1 /var
??sdb4 8:20 0 641.9G 0 part
??md3 9:3 0 641.9G 0 raid1
??vg0-home (dm-0) 253:0 0 1.4T 0 lvm /home
??vg0-swap (dm-2) 253:2 0 32G 0 lvm [SWAP]
sdc 8:32 0 931.5G 0 disk
??sdc1 8:33 0 931.5G 0 part
??md4 9:4 0 931.5G 0 raid1
??vg0-home (dm-0) 253:0 0 1.4T 0 lvm /home
sdd 8:48 0 931.5G 0 disk
??sdd1 8:49 0 931.5G 0 part
??md4 9:4 0 931.5G 0 raid1
??vg0-home (dm-0) 253:0 0 1.4T 0 lvm /home
sda 8:0 0 931.5G 0 disk
??sda1 8:1 0 957M 0 part
? ??md0 9:0 0 956.9M 0 raid1 /boot
??sda2 8:2 0 9.3G 0 part
? ??md1 9:1 0 9.3G 0 raid1 /
??sda3 8:3 0 279.4G 0 part
? ??md2 9:2 0 279.4G 0 raid1 /var
??sda4 8:4 0 641.9G 0 part
??md3 9:3 0 641.9G 0 raid1
??vg0-home (dm-0) 253:0 0 1.4T 0 lvm /home
??vg0-swap (dm-2) 253:2 0 32G 0 lvm [SWAP]
Run Code Online (Sandbox Code Playgroud)
这是 2010 年之前的 BIOS,没有 EFI 功能。
不相关:在正在运行的系统上,以下给出了 grub-probe 1.99 中与我进行 grub-install 相同的 LVM 错误,尽管一切似乎都有效(这在 GRUB 2.02 中似乎已修复)。
# grub-fstest /dev/sda cp '(loop0,msdos1)/grub/grub.cfg' grub.cfg
error: unknown LVM metadata header.
Run Code Online (Sandbox Code Playgroud)
下面答案中的调试方法显示安装到 sd[ab] 的图像的前缀是:
grub-mkimage -d /usr/lib/grub/i386-pc -O i386-pc --output=/boot/grub/core.img '--prefix=(mduuid/<UUID of sdN1>)/grub' biosdisk ext2 part_msdos part_msdos raid mdraid09
Run Code Online (Sandbox Code Playgroud)
我不知道为什么重复 'part_msdos'。没有 gpt 表。md0(引导)使用 RAID 超级块版本 0.9,md1、md2 和 md4(这些是旧阵列)也是如此。md3 是超级 1.2,但不应该参与启动。
感谢您到目前为止的建议。进一步测试后:
dpkg-reconfigure grub-pc
,没有任何变化,当新驱动器通过 SATA 连接时,GRUB 仍然挂在菜单之前。这不可能由 /boot/grub 内容与核心映像不匹配来解释。同样,物理重新排列驱动器也没有区别。Welcome to GRUB!
不打印消息的效果- 相反,它会更改图形模式。它仍然在相同的条件下挂起。debug
变量之前。不会发出有用的调试信息。grub-mkrescue
同一系统制作的 USB 驱动器引导也会挂起。Bad block number requested
设备上的结果,随后 md 系统失败驱动器BUG: unable to handle kernel paging request
和内核哎呀。(mdadm --remove
说失败的元素正忙,并且 md-resync 进程不响应 SIGKILL。我没有尝试echo frozen > /sys/block/mdX/md/sync_action
。使用dd
SATA测试驱动器一切看起来都很好。)。当然,Linux MD 驱动程序能够将 4Kn 驱动器与旧驱动器同步并且不使用 BIOS?因此,解决方法可能包括将非 RAID 分区安装为/boot/
; 使用依赖于设备的前缀安装 GRUB;或者刷BIOS。最明智的做法可能是联系供应商更换驱动器。
换句话说,问题 3 有一个解决方案,其无效性可能是 GRUB 功能请求的主题;问题 2 提出了错误的树,所以我对其进行了修改;和问题 1,如果它不是离题太远,现在另外是关于为什么该驱动器显然不能用于 Linux RAID。
我很乐意将赏金授予对其中任何一个的体面解释,有关 RAID 重新同步错误的内容,或flashrom
用于 4Kn 支持的轶事,如何告诉 grub-install 不使用 UUID 或任何相关的系统管理员提示。
我现在正在回答我自己的问题 1。这是 4Kn(“高级格式”)问题吗?
是的。
4Kn 驱动器并未像您想象的那样得到广泛支持;例如,它们与 Windows 7 或 GRUB 1 或许多 Intel 芯片组不兼容。就我而言,问题似乎出在主板上的 Intel 82801I 企业南桥控制器芯片(ICH9 系列)。我认为这也是即使通过 USB 驱动器 md_resync 部分失败的原因。上述链接中的分析似乎发现 Linux ata_piix 驱动程序在 Intel ICH10 上适用于 4Kn,尽管缺乏 Intel 的官方支持。我可能对 ICH9 有不同的发现。我尚未测试该驱动器是否可以在 AHCI 或 SAS 模式下工作。
只有主板制造商或进行过彻底测试的其他人可能知道驱动器兼容性信息。我很快就得出结论,“这不是硬件不兼容”,只是因为简单的读写工作有效。该主板的更新 BIOS 不支持 4Kn 是有原因的:因为主板不能可靠地支持 4Kn。
同等 512e 驱动器没有理由不能在这些情况下工作。
归档时间: |
|
查看次数: |
2066 次 |
最近记录: |