14.04 — 更换软件 RAID 1 中的驱动器 — 如何使其可启动?

14.04 — 更换软件 RAID 1 中的驱动器 — 如何使其可启动?

我有一台 Ubuntu 14.04 x64 服务器,配有 2 个 500GB 驱动器(sdasdb),采用软件 RAID 1。

我只需要替换sdb。使用 mdadm 将其重新添加到阵列并重新同步非常简单。我遇到的问题是确保它sda在将来发生故障时可以启动。

注意:以下所有命令均以 root 身份运行


第一次尝试

我发现的大多数演练都告诉我运行:

grub-install /dev/sda /dev/sdb

这是我在 Ubuntu 安装程序中看到运行过一百次的命令。然而,当我运行它时,我得到了:

grub-install: error: More than one install device?.

这对我来说一直都有效。也许 14.04 有所改变?


第二次尝试

一些教程建议手动为新硬盘设置 grub。 grub 提示让我害怕,但我愿意尝试以下步骤:

# grub --device-map=/boot/grub/device.map
grub> root (hd0,0)
grub> setup (hd0)
grub> root (hd1,0)
grub> setup (hd1)
grub> quit

唯一的问题?执行第一个命令后,我得到:

The program 'grub' is currently not installed. You can install it by typing:
apt-get install grub

???

因此我尝试安装 grub。

# apt-get install grub
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  grub-legacy-doc
The following packages will be REMOVED:
  grub-gfxpayload-lists grub-pc grub2-common
The following NEW packages will be installed:
  grub
0 upgraded, 1 newly installed, 3 to remove and 0 not upgraded.
Need to get 913 kB of archives.
After this operation, 438 kB of additional disk space will be used.
Do you want to continue? [Y/n] 

不用说,我回答说“没有”。


第三次尝试

绝望之下,我尝试了一些我确信是错误的事情。官方服务器指南建议(在“Raid Maintenance”部分的底部):

grub-install /dev/md0

输出结果如下:

# grub-install /dev/md0
Installing for i386-pc platform.
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.

可怕的。


看起来 grub 在 14.04 中已被某种方式取代,但我找不到有关情况如何变化的任何信息。我​​确实有一个/boot/grub/目录,所以我知道安装了某种形式的 grub。


更新:

我能够独立运行以下命令:

grub-install /dev/sda
grub-install /dev/sdb

但是,我不确定sda安装 grub 后是否可以启动sdb,反之亦然。我可以吗?

答案1

我找到了答案。确保 GRUB 正确安装并识别两个驱动器的方法是运行:

sudo dpkg-reconfigure grub-pc

当系统提示要安装在哪个驱动器上时,请确保选择了所有启动驱动器。就我而言,这是/dev/sda/dev/sdb。不要选择/dev/md0或任何其他md设备。

答案2

值得一提的是:我需要在启动配置中添加一个延迟脚本,以便让降级的 RAID 阵列有足够的时间组装。否则,在使用 2 个工作驱动器启动时,一切都运行良好,但当我断开一个驱动器以测试冗余时,我最终进入了 busybox(没有键盘)!有关详细信息,请参阅如何在 UEFI/GPT 系统上安装具有双启动 RAID 1 分区的 Ubuntu 14.04 64 位?(关于 /usr/share/initramfs-tools/scripts/local-premount/sleepAwhile 的部分)。

相关内容