我有一台 Ubuntu 14.04 x64 服务器,配有 2 个 500GB 驱动器(sda
和sdb
),采用软件 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 的部分)。