在 Hyper-V 上安装 CentOS 系统需要注意的两个问题
来源:互联网 发布:最强兵王在都市网络 编辑:程序博客网 时间:2024/04/29 16:59
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 发行版都不支持这个机制。所以应该在虚拟机设置里关掉它,或者干脆使用第一代虚拟机(在创建向导中选择)。
- 在 Hyper-V 上安装 CentOS 系统需要注意的两个问题
- LINUX、centos 系统安装需要注意的问题
- Hyper-V 网络安装 CentOS
- 硬盘安装CentOS需要注意的问题
- Hyper-V虚拟机安装系统
- 如何在Windows7上安装Hyper-v manager
- 在Hyper-V的CentOS中搭建web服务器
- 在Hyper-V环境下进行安装Centos7系统
- 如何在Hyper-V虚拟中安装Hyper-V角色
- 如何在Hyper-V虚拟中安装Hyper-V角色
- 安装系统遇到问题或者需要注意的事情(rehat centos ......)
- 在 Hyper-V 上配置 Ubuntu 虚机的网络
- WIN10 Hyper-V 安装 CentOS 7
- 安装Hyper-V的先决条件
- 如何在Windows7上使用Hyper-V
- 在RHEL7或者OL7上安装11.2.0.4的GI时需要特别注意的问题
- 在Linux上安装EBS需要mount其它磁盘要注意的问题
- Hyper-V虚拟机安装XP系统
- Linux ftp服务器虚拟用户的建立
- JAVA加载properties文件
- 轻松学习JavaScript十:JavaScript的Date对象制作一个简易钟表
- 忘掉旋转,利用2-3-4树,学习红黑树 http://www.cnblogs.com/liuyunfeng/archive/2013/12/12/3471368.html
- 【HDU 1237】简单计算器
- 在 Hyper-V 上安装 CentOS 系统需要注意的两个问题
- Linux启动过程
- 获取数据字典的方法
- CentOS 7.0 SVN搭建 (YUM安装)
- Java历史
- java多线程(二)---线程的同步
- 如何成为一个会使用jquery ui写界面的网站开发者
- Eclipse中使用Android50新特性CardView
- linux chkconfig配置自启动shell