在 Hyper-V 上安装 CentOS 系统需要注意的两个问题

Dracut 找不到 IDE 硬盘

  前一段时间在测试服务器上部署一个合作公司的应用系统,服务器用的是 Windows 2008 R2。那边的工程师给的虚拟机文件是 VMWare的,用工具将其转换为 Hyper-V 的磁盘镜像,然后添加到一个新建的虚拟机里。但是明明可以在 VMWare 里正常启动的 CentOS 7,却死活起不来,总是进入 dracut 的 shell 里去。

症状:

[ OK ] Reached target Paths.
[ OK ] Reached target Basic System.
Starting File System Check on /dev/mapper/centos-root…
systemd-fsck[288]: fsck: error 2 (No such file or directory) while executing fsck.ext2 for /dev/mapper/centos-root
[ OK ] Started File System Check on /dev/mapper/centos-root
dracut-initqueue[250]: Warning: Could not boot
dracut-initqueue[250]: Warning: /dev/centos/root does not exist
dracut-initqueue[250]: Warning: /dev/centos/swap does not exist
dracut-initqueue[250]: Warning: /dev/mapper/centos-root does not exist
Starting Dracut Emergency Shell…
Warning: /dev/centos/root does not exist
Warning: /dev/centos/swap does not exist
Warning: /dev/mapper/centos-root does not exist
Generating “/run/initramfs/rdsosreport.txt”

  cd /dev 然后 ls 了一下,发现竟然没有开头 hd 或 sd 的硬盘设备。在网上 Google 了一下,只找到一堆问同样问题的,却没有几个靠谱的回答。于是只好自己想办法。
  首先想到 VMWare 里的虚拟硬盘是挂载在 SCSI 控制器下的,而 Hyper-V 里却自动挂到了 IDE 控制器下。于是添加了一个 SCSI 控制器,把 .VHD 磁盘文件重新挂到它下面。结果连 GRUB 都没影了:

Boot failure. Reboot and Select proper Boot device or Insert Boot Media in selected Boot Device

  查了一下,第一代 Hyper-V 虚拟机竟然不支持从 SCSI 硬盘启动!晕,而且微软的工程师还写了一篇博客 Why Hyper-V cannot boot off of SCSI disks (and why you should not care) 来解(jiǎo)释(biàn)。只好又改回去。
  仔细想了一下,应该是 dracut 缺少 IDE 控制器的驱动,依照以前解决 NVIDIA 显卡驱动和内核自带的 nouveau 驱动冲突的方法,重建了一下 initramfs,果然可以进系统了!

方法:

1、用 CentOS 7 安装光盘启动,并在引导菜单中选择 troubleshooting -> Rescue a Linux OS,之后按 continue 进入恢复命令行。
2、切换到要修复的系统根路径:cd /mnt/sysimage 然后 chroot .
3、备份一下之前的文件:
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
4、重建 initramfs:
dracut -v /boot/initramfs-$(uname -r).img $(uname -r)


Linux 不兼容 Secret Boot

  另外,Windows Server 2012 R2 引入了第二代 Hyper-V 虚拟机。这回支持从 SCSI 硬盘引导了。 微软的 John Howard 还写了一个系列的文章 Hyper-V generation 2 virtual machines
  新一代的虚拟机中,默认开启了 Secret Boot,会校验 bootloader 的数字签名。大多数 Linux 发行版都不支持这个机制。所以应该在虚拟机设置里关掉它,或者干脆使用第一代虚拟机(在创建向导中选择)。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在 Windows 10 上使用 Hyper-V 安装 CentOS 7 的步骤: 1. 打开“控制面板”,点击“程序”,然后点击“启用或关闭 Windows 功能”。 2. 在弹出的窗口中,找到“Hyper-V”并勾选它。点击“确定”并等待安装完成。 3. 打开 Hyper-V 管理器。在左侧的面板中,选择“新建虚拟机”。 4. 在“新建虚拟机向导”中,按照提示输入虚拟机的名称、位置和大小等信息。在“操作系统”中选择“Linux”和“CentOS (64 位)”。点击“下一步”继续。 5. 在“分配内存”中,选择要为虚拟机分配的内存大小。建议至少为 1024 MB。点击“下一步”继续。 6. 在“配置网络”中,选择要为虚拟机配置的网络类型。如果您要使用虚拟交换机,请选择“虚拟交换机”。如果您要使用 NAT,请选择“NAT”。点击“下一步”继续。 7. 在“虚拟硬盘”中,选择要为虚拟机创建的虚拟硬盘类型。如果您要创建新的虚拟硬盘,请选择“新建虚拟硬盘”。如果您要使用现有虚拟硬盘,请选择“使用现有虚拟硬盘”,并选择要使用的虚拟硬盘文件。点击“下一步”继续。 8. 在“安装选项”中,选择要使用的 CentOS 7 安装介质。如果您有 CentOS 7 的 ISO 文件,请选择“使用 ISO 文件”。如果您要从网络安装,请选择“使用网络安装源”。点击“下一步”继续。 9. 在“完成”中,检查您的设置,然后点击“完成”创建虚拟机。 10. 右键单击新创建的虚拟机并选择“连接”来打开虚拟机的控制台。 11. 在控制台中,选择“开机启动虚拟机”。从此之后,CentOS 7 将启动并开始安装注意:在安装 CentOS 7 时,请确保将虚拟机的网络设置正确配置,以确保虚拟机可以连接到 Internet。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值