首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何引导GRUB2,以便将"root“安装在另一个驱动器上(远程服务器没有KVM开关)

如何引导GRUB2,以便将"root“安装在另一个驱动器上(远程服务器没有KVM开关)
EN

Server Fault用户
提问于 2012-05-25 19:31:03
回答 2查看 7.3K关注 0票数 3

摘要:我在RAID数组上创建了根文件系统的副本(其中有一个磁盘),我试图让系统启动那个新复制的驱动器。

背景:

  • 服务器中两个大小相同的磁盘(sda、sdb)
  • 康体局不使用
  • 我试着把整件事转换成一个RAID1镜像
  • 当前活动分区:
    • sda1 -引导
    • sda2 -交换
    • sda3 -根(挂载到"/")

我不确定是否有可能使一个完整的RAID1系统能够启动任何驱动器,因为我没有KVM访问权限(我只能告诉他们通过故障票帮助我摆脱困境)

到目前为止所做的工作:

  • 在sdb上创建与sda匹配的分区
  • 创建新的raid1数组(一个磁盘)
  • /dev/md3由一个磁盘组成: /dev/sdb3 3
  • 挂载/dev/md3 /mnt/md3
  • cp -ax / /mnt/md3
  • 所以现在我在/ and /dev/md3上有了数据的匹配副本。

,我可以编辑GRUB2使/dev/md3成为根吗?一切都会好起来的,对吗?

我需要绝对肯定,因为我没有KVM访问权限。我查看了/boot/grub/grub.cfg,并看到了以下条目:

代码语言:javascript
复制
menuentry 'Ubuntu, with Linux 2.6.32-28-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set 18de6bbd-e46d-4f89-a2c9-fa2e7fa718b7
    linux   /vmlinuz-2.6.32-28-generic-pae root=/dev/sda3 ro   
    initrd  /initrd.img-2.6.32-28-generic-pae
}

因此,请注意“root=/dev/sda3 3”部分。我可以用"root=/dev/md3“替换它,然后重新启动吗?

EN

回答 2

Server Fault用户

发布于 2012-05-25 21:20:42

假设文件系统直接位于/dev/md3 (而不是对其进行分区或使用LVM),是的,设置root=/dev/md3是您想要的。不过,你应该检查一下:

  1. 重新构建initrd并检查它是否包含RAID支持(您可能需要哄骗它,因为当前根不在RAID上,方法是将raid1添加到/etc/initramfs-tools/modules中)。
  2. 确保启用了从降级数组0的引导(Ubuntu默认禁用:在/etc/initramfs-tools/conf.d/mdadm中设置BOOT_DEGRADED=true )
  3. 复制GRUB条目,并在GRUB中设置一个退却条目,以便在RAID磁盘无法启动时(希望)引导非RAID磁盘(将set fallback="2"行添加到/etc/grub.d/40_custom,其中的数字是从0计数的菜单条目的数目)。
  4. 还可能使用grub-set-default --once,而不是显式地设置默认设置,这样重新启动机器就足以启动非RAID磁盘。

0:您的数组可能实际上没有降级,但您可能无论如何都希望这样做。

票数 1
EN

Server Fault用户

发布于 2012-09-25 18:28:00

不幸的是,遵循mgorvens的建议很可能导致无法引导的系统,/dev中的设备可能与当前的引导环境不匹配,在此基础上,您应该将根设置为raid磁盘的UUID,而不是动态分配的/dev条目。幸运的是,尽管grub将自动为您处理所有这些问题,但只需执行以下操作:

代码语言:javascript
复制
sh -c /etc/grub.d/30_os-prober

假设您看到一个包含raid设备的菜单项,然后通过以下操作更新grub2:

代码语言:javascript
复制
grub2-mkconfig > /boot/grub2/grub.cfg

这将以正确的方式更新grub启动菜单,您不希望手动编辑该grub.cfg文件,因为它很可能在grub更新时被覆盖。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/392774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档