update-grub install-grub - 错误:未知文件系统

Mic*_*ael 6 partitioning grub2 mdadm

我的根分区是/dev/md0,我更改了分区和文件系统的大小。现在,当我运行 update-grub 和 install-grub 时,它失败了:

# grub-install /dev/sda
Installing for i386-pc platform.
grub-install: error: unknown filesystem.

# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-67-generic
Found initrd image: /boot/initrd.img-4.4.0-67-generic
/usr/sbin/grub-probe: error: unknown filesystem.
Found linux image: /boot/vmlinuz-4.4.0-66-generic
Found initrd image: /boot/initrd.img-4.4.0-66-generic
/usr/sbin/grub-probe: error: unknown filesystem.
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
Run Code Online (Sandbox Code Playgroud)

# cat /proc/mdstat
...
md0 : active raid1 sda1[1] sdb1[0]
      14553024 blocks [2/2] [UU]

unused devices: <none>
Run Code Online (Sandbox Code Playgroud)

# cat /proc/partitions
major minor  #blocks  name

   8        0   39082680 sda
   8        1   14553088 sda1
   8       16   15646680 sdb
   8       17   14553088 sdb1
   9        0   14553024 md0
Run Code Online (Sandbox Code Playgroud)

在解决此问题之前我不敢重新启动该服务器。有什么建议么?

miv*_*ivk 12

我在 ext4 文件系统(无 RAID)上遇到此错误。所以也许你的问题完全不同。但如果它对像我一样登陆这里的其他人有用:

当 ext4 文件系统metadata_csum_seed启用该功能时,grub-install将无法工作并报告此grub-install: error: unknown filesystem错误。

这记录在Debian bug 866603中,其中也有一个针对该问题的简单测试:

grub-probe --target=fs --device /dev/sda1
Run Code Online (Sandbox Code Playgroud)

sda1如果启用该功能,它将给出相同的错误。

您还可以用来tune2fs检查:

tune2fs -l /dev/sda1 | grep metadata_csum_seed
Run Code Online (Sandbox Code Playgroud)

你可以禁用该功能

tune2fs -O ^metadata_csum_seed /dev/sda1
Run Code Online (Sandbox Code Playgroud)

  • 哇,谢谢您写下这个答案,这是正确的。显然,最近添加的其他 ext4 功能也可能出现此问题:“casefold”和“large_dir”。GRUB 还不知道它们,并且由于它们在 ext4 中被标记为“不兼容”,因此 GRUB 会执行任何 ext4 程序在这种情况下应该执行的操作:拒绝使用文件系统。希望这个修复是微不足道的,至少对于校验和功能来说是这样。 (3认同)