我正在尝试不同的 GNU/Linux 发行版,并且我的磁盘上有几个分区,即:
/dev/sdc1 - primary, 83, ext4
/dev/sdc2 - primary, 83, ext4
/dev/sdc3 - primary, 82, swap
/dev/sdc4 - extended
/dev/sdc5 - logical, 83, ext4
/dev/sdc6 - logical, 83, empty
/dev/sdc7 - logical, 83, empty
/dev/sdc8 - logical, 83, empty
/dev/sdc9 - logical, 83, empty
/dev/sdc10 - logical, 83, ext4
我已经在 上安装了 Void Linux /dev/sdc1
,在 上安装了 Arch Linux /dev/sdc5
。由于我无法启动 Arch,所以我进入 grub shell 尝试手动启动它。所以我做了以下事情:
grub> set root=(hd2,msdos5)
grub> ls ($root)/
error: unknown filesystem
我不明白这个错误。如果我尝试
grub> set root=(hd2,msdos1)
grub> ls ($root)/
我得到了/dev/sdc1
.所以我认为这可能与逻辑分区有关,我尝试了:
grub> set root=(hd2,msdos10)
grub> ls ($root)/
这也有效。那么为什么grub
看不到分区/dev/sdc5
呢?它有什么特别之处?所有三个分区均使用ext4
文件系统进行格式化。有什么线索吗?
答案1
我注意到某些版本的 Linux 不允许将 ext4 文件系统用作 /boot 目录。我相信这就是为什么在许多 Linux 系统上你会看到类似下面的分区:
/dev/sda1 -- /boot ext3 -- about 1GB
/dev/sda2 -- SWAP -- 1* memory but could be smaller
/dev/sda3 -- / ext4 -- The rest of the disk
这也允许 / 分区是 ext4 分区以外的分区……例如 btrfs、zfs 或 xfs,它们很可能与 grub 不兼容。
具体来说,这是 RHEL 5/Centos 5 的问题。