好吧,这下我不知所措了。
我一直在努力让我的 Ubuntu 服务器启动。经过几天的努力,我放弃了,并重新安装,以为这样可以解决问题。
但事实并非如此。
我得到的是内核崩溃(与我尝试修复问题时一样),提示启动找不到 sdc2(根目录所在的位置,sdc1 是 /boot)。它只为我提供 sda 和 sdb 驱动器的分区,但没有 sdc。但问题是:我刚刚安装了系统,我肯定可以看到 sdc!
我不想弄乱分区表的原因是我已经设置好了它(并且我还有一个 RAID5 设置,我不想意外弄乱它)。
这怎么可能?看起来磁盘的顺序确实发生了某种变化(因为我很确定我的启动和 root 是在 sda 上 - 虽然我不是 100% 确定,但如果不是,我不知道我在想什么)。尝试在 BIOS 中更改启动顺序没有任何效果,我在安装过程中得到了完全相同的设置。
现在我没什么主意了。我是否应该去某个地方找到 4 TB 的备份存储,将 RAID5 数据复制到那里并清除整个系统?
这是启动错误:
以下是 /etc/fstab 和 blkid 的输出:
我曾尝试重新安装 GRUB、直接编辑 grub.cfg、更改启动菜单中的参数(grub 菜单中的“e”)、重新安装整个系统、更改 BIOS 菜单中的启动顺序等等。我甚至不记得我尝试过什么(我第一次尝试是在几周前)。
编辑 2:重新安装之前,/etc/fstab 表示启动和根目录位于 sda 而不是 sdc 上,但一定是某些东西弄乱了磁盘报告的顺序。但即使在这种情况下,为什么这不起作用?我以为我可以按我想要的方式组织分区。
EDIT3:我发现了这个问题:由于 GRUB“没有此设备”错误,Linux 安装无法启动这看起来很像我的问题,但提出的解决方案不起作用,除非我误解了它(我尝试用'e'更改 Grub 启动菜单项,以便根目录为(hd0,gpt1),(hd0,gpt2),(hd1,gpt1)和(he1,gpt2)但每个都给了我相同的错误。
答案1
请尝试以下操作:
- 启动并进入实时会话
- 用于
blkid
检查驱动器的 UUID。 - 如果问题发生在引导加载程序的下游,只需更改
/etc/fstab
安装文件以使用 UUID。 - 如果问题与 GRUB 有关,请尝试使用 chroot 环境更新并重新安装 ti。请参阅这里了解更多信息。
答案2
假设您的 RAID5 阵列由主板 RAID 支持,您必须采取额外步骤来确保它在您启动系统时加载。
与标准 RAID 卡不同,主板 RAID 需要操作系统的支持。我猜 Live CD 已配置为检测此类阵列,而您的安装却没有,因为 a. 您没有遵循提供的说明或 b. 您遵循的安装指南中没有关于此的说明。
无论如何,从假 RAID(Linux 术语)启动涉及
- 使用必要的驱动程序加载临时 RAM 文件系统 (initramfs)
- 检测 RAID 阵列,允许内核像访问普通硬盘一样访问它
- 以 root 身份从该阵列安装一个分区并从该分区启动
此过程应记录在 wiki (Ununtu) 上。通常,解决方案是对引导加载程序中的内核参数进行简单的编辑,说明您希望系统探测软件 raid。我说简单是因为几乎肯定已经包含了带有驱动程序的 ramfs,因此您不必手动设置。
我实际上没有读过这个,但乍一看,它似乎是你需要的:
https://help.ubuntu.com/community/FakeRaidHowto