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

本文记录了解决Dracut环境下找不到IDE硬盘的问题过程。通过调整虚拟机配置及重建initramfs,最终成功启动CentOS7系统。

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 发行版都不支持这个机制。所以应该在虚拟机设置里关掉它,或者干脆使用第一代虚拟机(在创建向导中选择)。

<think>我们正在回答用户关于"如何在WindowsServer上正确安装和配置Hyper-V"的问题。根据用户提供的引用资料,我们可以总结出在Windows Server上安装Hyper-V的一般步骤,并注意不同版本(如2008 R2,2012,2016)的安装过程略有差异,但基本思路一致。下面将提供一个通用的安装配置指南,并指出不同版本可能存在的差异。安装前准备:1.硬件要求:确保物理计算机满足Hyper-V的硬件要求,包括支持硬件虚拟化(IntelVT或AMD-V)的64位处理器,且BIOS中已启用虚拟化技术;其次,需要硬件强制数据执行保护(DEP)且已启用(通常为IntelXDbit或AMD NX bit)。2.操作系统:使用Windows Server的完全安装模式或ServerCore模式(仅命令行界面)。注意:不同版本的Windows Server对Hyper-V的支持情况不同,例如WindowsServer2008R2及以上版本。3.内存和存储:根据计划运行的虚拟机数量和工作负载,确保有足够的物理内存和磁盘空间。安装步骤(以WindowsServer2016为例,其他版本类似):步骤1:安装WindowsServer操作系统-安装时选择适当的版本(如WindowsServer2016Datacenter或Standard)[^3]。步骤2:初始系统配置-设置计算机名、IP地址、加入域(可选)等[^2]。步骤3:通过服务器管理器添加Hyper-V角色-打开“服务器管理器”,点击“添加角色和功能”[^2][^3]。-在“安装类型”步骤,选择“基于角色或基于功能的安装”。-在“服务器选择”步骤,选择当前服务器(或从服务器池中选择)。-在“服务器角色”步骤,勾选“Hyper-V”。-接下来,系统会提示添加Hyper-V所需的功能,点击“添加功能”按钮。-在“虚拟交换机”步骤,选择物理网卡以创建虚拟交换机(可选,也可在安装后配置)[^3]。-在“虚拟机迁移”步骤,根据需要选择是否允许此服务器发送和接收虚拟机迁移(默认设置即可)。-在“默认存储”步骤,设置虚拟机存储位置(建议使用非系统盘,如D:\Hyper-V)。-确认选择,点击“安装”按钮。安装完成后,系统会提示重新启动服务器。步骤4:重启服务器-安装完成后,系统会要求重新启动。重启后,Hyper-V角色即安装完成。步骤5:配置Hyper-V-打开“Hyper-V管理器”(在服务器管理器的“工具”菜单中或开始菜单中)。-在左侧连接窗格中,选择本地服务器。-配置虚拟交换机:在右侧“操作”窗格中,点击“虚拟交换机管理器”。可以创建外部、内部或专用虚拟网络。-外部虚拟网络:允许虚拟机访问物理网络。-内部虚拟网络:虚拟机与主机之间通信。-专用虚拟网络:仅虚拟机之间通信。-配置存储路径:在“Hyper-V设置”中,可以修改虚拟硬盘和虚拟机的默认存储位置。步骤6:创建虚拟机-Hyper-V管理器中,右键点击服务器名称,选择“新建”->“虚拟机”。-按照向导设置虚拟机名称、存储位置、代数(第1代或第2代,注意第2代支持UEFI启动,但仅适用于64位操作系统)、内存、网络、虚拟硬盘大小等。-安装操作系统:在虚拟机设置中,指定安装介质(ISO文件或物理光盘)。不同版本注意事项: -Windows Server2008 R2:安装步骤类似,但界面可能略有不同。在Server Core模式下安装Hyper-V需要使用命令行(使用ocsetup命令)[^2]。- WindowsServer2012:安装过程与2016类似,但注意在创建虚拟交换机时可以选择类型[^4]。- WindowsServer2016及以上:支持第2代虚拟机,提供更先进的虚拟硬件环境。常见问题:1.安装Hyper-V后服务器无法启动?可能是硬件兼容性问题,检查BIOS中的虚拟化支持是否开启。2.虚拟机无法连接网络?检查虚拟交换机的配置,确保物理网卡已正确绑定。通过以上步骤,即可在Windows Server上正确安装和配置Hyper-V。相关问题:1.如何在WindowsServer Core模式下安装Hyper-V?2.Hyper-V虚拟交换机的类型有哪些?如何选择?3.如何将物理服务器上的虚拟机迁移到Hyper-V环境?</think>### Windows Server 安装配置 Hyper-V 操作指南 以下步骤基于 Windows Server 2012/2016/2019 通用流程,结合引用资料整理: --- #### **一、安装前准备** 1. **硬件要求**(关键)[^4]: - CPU 支持虚拟化技术(Intel VT-x/AMD-V)并在 BIOS 中启用 - 至少 4GB 内存(建议 8GB+) - 64 位处理器和操作系统 - 硬件强制数据执行保护(DEP)启用 2. **系统要求**: - Windows Server Standard/Datacenter 版本 - 管理员权限 --- #### **二、安装 Hyper-V 角色** 1. **打开服务器管理器** - 登录 Windows Server → 任务栏点击 `服务器管理器` 图标 [^2] 2. **添加角色** ```markdown 1. 点击 [仪表板] → [添加角色和功能] 2. [安装类型] → 选择 **基于角色或基于功能的安装** [^3] 3. [服务器选择] → 选中当前服务器 4. [服务器角色] → 勾选 **Hyper-V** → 点击 [添加功能] [^2] ``` 3. **配置虚拟交换机**(关键步骤) - 在 `创建虚拟交换机` 界面: - 选择物理网卡(用于虚拟机联网) - 保留默认设置 → 点击 **下一步** [^2][^3] - *注:若跳过此步,需在安装后手动配置网络* 4. **完成安装** - 确认设置 → 点击 **安装** → 等待完成 - **重启服务器**(系统会自动重启两次)[^2] --- #### **三、基础配置** 1. **打开 Hyper-V 管理器** - 服务器重启后: ```markdown [开始菜单] → [管理工具] → [Hyper-V 管理器] ``` 2. **配置虚拟网络**(若安装时跳过) ```markdown 1. 右侧 [操作] 窗格 → [虚拟交换机管理器] 2. 创建 **外部虚拟交换机**(绑定物理网卡) 3. 设置 VLAN 标识(可选) ``` 3. **设置存储路径** - [Hyper-V 设置] → 修改默认虚拟机存储位置(建议非系统盘) --- #### **四、创建虚拟机** 1. **新建虚拟机** ```markdown 1. [操作] → [新建] → [虚拟机] 2. 指定名称和存储路径 3. [代数选择]: - **第1代**:兼容旧系统(如 CentOS 7- **第2代**:仅支持 UEFI 启动(Windows 8+/Linux 较新内核) 4. 分配内存(建议 ≥1024MB) 5. 配置虚拟硬盘(动态扩展节省空间) 6. 选择安装介质(ISO 文件或物理光驱) ``` 2. **启动安装** - 右键虚拟机 → [连接] → 启动并按提示安装操作系统 --- #### **五、故障排查** 若遇到 **“Hyper-V 组件未运行”**: 1. 检查服务状态: ```powershell Get-Service vmms, vmicheartbeat # 确保状态为 "Running" ``` 2. 重新注册 Hyper-V 组件: ```powershell dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /all ``` 3. 验证虚拟化支持: ```powershell systeminfo | findstr "虚拟化" # 应显示 "已启用" ``` --- ### 相关问题 1. **如何在 Server Core 模式安装 Hyper-V?** [^2] 2. **Hyper-V 虚拟交换机的三种类型(外部/内部/专用)有何区别?** 3. **如何将 VMware 虚拟机迁移到 Hyper-V?** 4. **Hyper-V 与 KVM 的性能对比有哪些关键差异?** > 引用说明: > [^1]: Hyper-V 安装需通过服务器管理器添加角色 > [^2]: Windows Server 2008 R2 安装流程包含重启关键步骤 > [^3]: Windows Server 2016 需在安装时配置虚拟交换机 > [^4]: Hyper-V 对硬件虚拟化有严格要求
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值