ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Hyper-V安装CentOS 7完整指南:虚拟机配置、网络设置与常见坑解决

Hyper-V安装CentOS 7完整指南:虚拟机配置、网络设置与常见坑解决 1. 为什么在Windows平台折腾Linux我最后选了Hyper-V先说背景。我在Windows上跑开发环境经常需要一台Linux虚拟机来测试Docker容器、跑消息队列、编译一些只能在Linux下搞定的项目。以前图省事用的VMware Workstation后来换了新电脑发现开了Windows沙盒和WSL 2之后VMware要么直接报错要么性能急剧下降。报错内容就是网上大家经常搜到的那句您的主机不满足在启用 Hyper-V 或 Device/Credential Guard 的情况下运行 VMware。要么关掉Hyper-V用VMware要么留着我平时要用的WSL 2两者只能选一个。后来干脆用Windows自带的Hyper-V装CentOS 7当开发机。用下来的感受是Hyper-V作为第一方虚拟化方案和Windows的底层集成确实紧跑Linux虚拟机的稳定性、磁盘IO性能都比第三方方案更让我放心。而且它不依赖额外安装大型软件控制台、虚拟交换机、快照、自动启动一应俱全关键是完全免费。这篇就把我用Hyper-V安装CentOS 7的过程从头到尾写一遍包括一些网上教程里不太会细讲的坑——第1代和第2代虚拟机的选择、默认交换机不通外网、CentOS 7在Hyper-V里启动黑屏、桥接上网配置、文件互相拷贝这些问题。整个流程走完你会得到一台能正常上网、能SSH连接、能跑Docker的基础Linux开发机。适合谁看想从VMware迁移到Hyper-V、新装了Windows不知道从哪儿下手的、以及死活装不上CentOS 7正在网上翻帖子的朋友。当然老手也可以看到一些经验补充。2. Hyper-V的前置条件和隐性门槛2.1 先确认硬件支持和Windows版本Hyper-V不是装个软件就能用的它属于系统级虚拟化要求CPU支持虚拟化技术。Intel平台是VT-xAMD平台是AMD-V。这个基本2010年以后的主力CPU都支持问题通常出在主板的BIOS/UEFI设置里虚拟化开关没打开。建议在装之前先用PowerShell跑一下Get-ComputerInfo -Property HyperV* | Format-List如果输出里HyperVisorPresent是True说明系统已经检测到Hypervisor存在直接去启用功能就行。如果Hyper-V要求没满足会给出错误提示这时候去BIOS里找Intel Virtualization Technology或者SVM ModeAMD开关Enable之后保存重启。Windows版本方面专业版、企业版、教育版都自带Hyper-V功能通过启用或关闭Windows功能就能装。但如果是家庭版控制面板里根本没有Hyper-V这个选项。家庭版用户有两个可走的方案一是通过一个通用命令脚本安装网上一搜一大把能调出完整功能列表后勾选Hyper-V二是我更推荐的——直接用WSL 2或者换VMware。我自己不建议为了用Hyper-V去动系统组件层面的手脚稳定第一。2.2 打开Hyper-V功能家族用管理员身份打开PowerShell执行命令最省事也可以走图形界面控制面板 - 程序 - 启用或关闭Windows功能找到Hyper-V展开勾选全部三个子项。Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All执行完会提示重启。重启之后开始菜单就能搜到Hyper-V管理器。这一步做完你还要知道一个非常关键的影响从你启用Hyper-V那一刻起Windows本身就变成了一个虚拟机管理程序Hypervisor的宿主电脑上已有的VMware、VirtualBox、Android模拟器、某些老版本杀毒软件都可能受到底层冲突的影响。具体表现是VMware打不开虚拟机、VirtualBox直接报不能为虚拟电脑打开一个新任务。这个不是虚拟机软件坏了是它们和Hyper-V抢底层虚拟化资源。解决思路就两个要么从根源上停用所有基于VBS基于虚拟化的安全的功能再关掉Hyper-V要么就老老实实把所有虚拟化需求都迁移到Hyper-V里来。2.3 准备一个干净的基础环境我这里说的干净不是说要重装Windows而是建议你先停掉和Hyper-V冲突的第三方虚拟化服务。比如VMware的授权服务、VirtualBox的VBoxSVC进程以及Windows自带的虚拟机监控程序之外的嵌套虚拟化工具。实践中有很多人在装CentOS 7的时候遇到无法启动虚拟机虚拟机监控程序未运行这类错误十有八九是Hypervisor被其他程序卡住或者启动顺序有问题。把Hyper-V装好后先在Hyper-V管理器里确认右侧操作窗格的Hyper-V设置能正常打开里面能看到虚拟硬盘虚拟机存储路径说明基础服务是正常的。3. 下载CentOS 7镜像与规划虚拟机硬件参数3.1 CentOS 7镜像版本选择CentOS 7现在虽然已经进入维护周期尾声生命周期到2024年6月30日之后官方停止维护但因为存量服务器、老项目兼容、以及不少教科书和线上教程都是7.x的命令习惯它依然被大量用于开发实验和内部环境。下载镜像的时候特别注意一点不要随便在第三方站点下载ISO去阿里云镜像站或者网易镜像站下载最稳速度也快。选择CentOS-7-x86_64-Minimal-2009.iso即可这个版本不带桌面环境安装完是纯命令行适合当服务器用占资源少。如果你需要图形界面那下载CentOS-7-x86_64-DVD-2009.iso约4.4GB安装时可以选GNOME桌面。我这边推荐用Minimal版原因后面装完这批优化你就明白了——桌面环境在虚拟机上意义不大想要图形界面在Windows上用Xshell连接后通过浏览器访问管理后台或者装个轻量XFCE都比直接上GNOME舒服。有一点务必注意CentOS 7镜像里的内核版本默认是3.10.0-这个版本和Hyper-V第2代虚拟机的兼容性存在历史问题第5节细讲所以要不要用Minimal版还得结合你选择的虚拟机代数。如果你非要装带桌面的DVD版又选了第2代大概率会在内核里panic。3.2 硬件参数规划内存、CPU、磁盘在设计虚拟机配置时要同时考虑宿主机的实际资源余量和CentOS 7的官方最低要求。CentOS 7官方要求内存至少1GB实际上跑命令行系统给它1.5GB到2GB就够了。我做开发机设置了4GB因为还要跑Docker、编译Java项目、跑Elasticsearch。CPU核心数不要闭眼全给。Hyper-V的默认调度策略是按比例分配给多了反而影响宿主机性能。我的建议是给2核如果编译场景多就给4核。阻塞型任务多的场景比如跑Java应用、Nginx、MySQL分配2到4核完全够用。磁盘容量Minimal版安装完大概1.5GB加上各种组件和开发工具20GB基本上可以支撑很长时间。建议给40GB动态扩展磁盘Hyper-V默认的VHDX格式支持动态扩展初始体积很小不用担心白白占空间。如果你想放Docker镜像和日志50GB打底更从容。3.3 第1代还是第2代——这是安装CentOS 7最容易出问题的一步Hyper-V新建虚拟机时会让你选虚拟机代数很多新手在这里没多想就选了第2代结果被CentOS 7的启动问题搞到怀疑人生。这里我直接给结论用第1代稳妥。为什么第2代虚拟机用的是UEFI固件、没有传统BIOS兼容层默认引导设备、驱动方式都不同。CentOS 7自带的3.10内核版本较老Hyper-V第2代里会出现以下常见症状虚拟机启动到内核阶段黑屏无响应出现kernel panic - not syncing: Attempted to kill init!找不到启动设备直接进入EFI Shell这些问题的根子在于老内核缺少对UEFI虚拟SCSI控制器Hyper-V第2代默认使用SCSI的完整支持驱动。虽然通过手动添加启动项、改用旧版内核参数等方式能强行装上但每折腾一次就浪费一小时没必要。如果你的用途是安装Windows 10、Windows Server 2016以上、或者Ubuntu 18.04以上的Linux那第2代没问题——这些系统对UEFI支持好、内置了virtio/vmbus驱动开机能识别。但装CentOS 7第1代是唯一不会让你踩坑的选择。第1代模拟的是传统BIOS设备启动过程用的就是CentOS 7完善支持的那套老驱动。等你以后把系统升级到CentOS 8/9或者其他新系统再考虑第2代不迟。4. 创建虚拟机的完整过程与虚拟网络配置4.1 在Hyper-V管理器中新建虚拟机打开Hyper-V管理器左侧选中你的电脑名字右键 - 新建 - 虚拟机进入向导。指定名称和位置名称取个能记住的比如CentOS7-Dev。位置默认在系统盘你可以改到有足够空间的盘符Hyper-V的配置文件和虚拟硬盘都可以自定义路径。选择代数选第1代原因上面说过了。分配内存我填4096MB。这里要注意启动内存可以小于最大内存但Hyper-V对静态分配即启动内存和最大内存设为一致的虚拟机管理开销更小。我一般都设成一样防止动态内存导致的性能波动。配置网络这一步先选未连接然后建一个虚拟机之后再挂网络。因为Hyper-V默认的交换机配置往往是很多人装上了但上不了网的元凶后面单独讲。连接虚拟硬盘选择创建虚拟硬盘位置自定义大小填40GB格式选VHDX类型选动态扩展。安装选项选从可引导的CD/DVD-ROM安装操作系统点浏览选择刚才下载的CentOS 7 ISO镜像文件。这里注意你选ISO之后Hyper-V不会自动给你开机时按任意键从光驱引导一会儿虚拟机设置里需要调整一下启动顺序。4.2 虚拟交换机配置NAT还是桥接这个部分请务必读懂因为你后续所有网络问题基本都出在这。Hyper-V有三种虚拟交换机内部网络虚拟机和宿主机互通但虚拟机无法直接通过这个网络访问外网除非宿主机做NAT或路由转发。专用网络只允许虚拟机之间通讯宿主机都连不上不常用。外部网络绑定到一块真实物理网卡上类似把你的虚拟机和宿主机插在同一台交换机上VM自动获取局域网IP和别的电脑直接通信。默认情况下Hyper-V装好后会自带一个名为Default Switch的内部交换机它自带NAT。连接到Default Switch的虚拟机可以上网宿主机也能通过一个随机分配的IP访问虚拟机。看起来没问题但实际用起来很别扭Default Switch默认会动态给虚拟机分配私有网段的IP重启后IP可能变。你做个开发机SSH配置、Nginx端口映射全绑定死IP了IP一变全乱套。我的方案是创建一个外部虚拟交换机让它桥接物理网卡虚拟机直接在局域网里获取IP相当于这台虚拟机成为家里/公司局域网里的一台独立机器。这样好处很多SSH的时候直接连局域网IP宿主机关机后别的电脑也能访问虚拟机如果设置了开机自启和真机几乎没区别。创建方法打开虚拟交换机管理器 - 新建虚拟网络交换机 - 选择外部 - 名字叫External-LAN- 外部网络里勾选你的物理网卡如果是无线网卡就选WLAN以太网就选以太网对应的那个- 勾选允许管理操作系统共享此网络适配器。注意如果你的电脑是通过无线WiFi上网的走外部交换机虽然能用但偶尔会出现虚拟机网络不稳定的现象。这是虚拟交换机和无线网卡兼容性的通病。如果工作环境是公司有线网稳定性和速度都很好。4.3 把网卡和ISO挂到虚拟机上回到Hyper-V管理器右键刚才创建的虚拟机 - 设置硬件 - 网络适配器虚拟交换机选刚才创建的External-LAN。硬件 - DVD驱动器勾选映像文件选择CentOS 7 ISO。硬件 - 固件/BIOS - 启动顺序第1代叫固件确保DVD驱动器排在硬盘之前。第1代虚拟机直接将启动顺序设为CDROM第一IDE第二。否则ISO挂上去也可能不引导。硬件 - 安全第2代特有这步如果之前选了第2代需要关闭启用安全启动并且把模板设为Microsoft UEFI证书颁发机构。不过我们已经选第1代不用管。另外如果你要远程桌面登录虚拟机图形界面记得在集成服务里勾选远程桌面服务和Hyper-V 服务安装CentOS时才会默认启用增强会话模式。这个是后面第7节讲的坑。5. 安装CentOS 7展开讲解每个关键步骤的为什么5.1 开机引导第一步一切配置就绪双击虚拟机在弹出的窗口里点启动开机按钮。屏幕回车提示Press any key to boot from CD or DVD...时在虚拟机窗口里随便按一个键让ISO引导起来。等几秒会进入CentOS 7安装程序的欢迎界面三个选项Install CentOS 7、Test this media install CentOS 7、Troubleshooting。一般选第一项Install CentOS 7直接开始安装。第二个选项会先检测ISO完整性浪费几分钟除非你担心镜像下载损坏否则没必要。5.2 语言、软件源与安装源之后是语言选择界面选中文-简体中文或者直接English都行。这个纯粹是个人习惯不影响系统功能。我一般选中文对新手更友好。接下来进入安装信息摘要主页面这里有几个配置项必须点进去处理软件选择SOFTWARE SELECTION如果你是Minimal ISO只有最小安装和带GUI的服务器两个大选项。默认是最小安装。要做开发机直接最小安装没问题所有软件包之后自己用yum装。如果你下的是DVD ISO这里会有很丰富的选项套餐什么开发工具、服务器、工作站、基础设施服务器之类我建议还是选最小安装Minimal Install最多勾选开发工具Development Tools这个附加选项。为什么后面优化部分说。安装位置INSTALLATION DESTINATION点进去之后不需要做复杂的手工分区直接点顶部本地标准磁盘里的40GB虚拟磁盘然后确保自动配置分区被选中左上角完成返回。对于开发机LVM的逻辑卷自动管理就够用后续想扩容也方便。如果你想手工控制分区比如分独立/home、/data我在5.3小节单独说。网络和主机名NETWORK HOST NAME点进去之后能看到一个或多个网络设备。默认是已连接的状态是Off需要手动把右上角的开关切到ON。主机名改一个比如centos7-dev点应用然后左下角退出。这个步骤不打开网卡装完系统就是网络不通这个坑很多人直接踩。5.3 分区到底怎么分才能不后悔很多人看着LVM分区就头大其实分区分多少完全取决于你后面干什么。如果就是跑Docker、写程序、做测试我推荐自动分区简单省事LVM创建根卷/、swap两个逻辑卷系统盘给自动分配之后使用lvextend扩容即可不需要物理分区。如果明确知道自己要干下面这几件事那建议手工分区要单独挂载大容量数据盘比如日志、数据库文件要隔离/home避免用户文件塞满根分区要给/boot单独分配空间解决LVM与/启动的兼容问题手工分区建议方案40GB磁盘挂载点容量文件系统作用/boot1024MBext4/xfs存放内核启动文件不用太大swap2048MBswap内存不够时的交换分区/剩余全部xfs根文件系统装系统、应用/home可选分10GBxfs用户目录隔离主目录占用生产环境我还会单独分一个/data给数据库和Docker数据卷。开发机的话全给根分区更大方。5.4 万恶的KDUMP和日期时间设置安装信息摘要页面里还有两个默认项强烈建议直接关闭KDUMP默认开启专门在系统崩溃时抓取内存转储的。在虚拟机上开着它纯属浪费内存默认会预留部分内存给kdump导致你明明分配了4GB内存实际可用只有3.5GB不到。点进去把启用kdump的勾取消。反正开发机崩了重启就行不需要翻什么crash dump。时间和日期如果安装机器能上网开启网络时间选项系统会自动同步时间。不用管时区选择反正后面Linux服务器上习惯用UTC还是本地时间看个人。确认完以上配置点开始安装。5.5 ROOT密码和用户创建安装进行时需要一个ROOT密码。这里吐槽一下CentOS的密码策略默认要求密码包含大、小写字母、数字、符号中的至少三类弱密码它会很啰嗦。作为虚拟机你可以按CtrlAltDel切换输入框两次然后强行给一个简单密码比如123456测试机无妨。但凡是稍微正式一点的环境都必须用强密码这是底线连虚拟机也一样因为虚拟机的SSH很有可能是暴露在局域网里的。同时建议创建一个普通用户比如用户名devuser勾选将此用户设为管理员这样日常用普通用户登录需要管理员权限时用sudo比全程root安全得多。安装结束后点重启。6. 安装完成后必做的几件事网络、SSH与基础优化6.1 第一件事登录查看网络状态重启后从虚拟机窗口登录root或刚才创建的普通用户。先验证网络ip addr show ping -c 3 baidu.com如果网络正常你看到的IP就是路由器DHCP分配的局域网IP比如192.168.1.x。如果ping不通大概率是安装时网卡没开或者DNS没配置。这里给出排查顺序先看网卡名和状态ip link正常应该是UP状态。查看IPip addr show没有IPv4地址说明没拿到IP。修改网卡ONBOOT网卡配置文件在/etc/sysconfig/network-scripts/下名字形如ifcfg-eth0或ifcfg-ens33。CentOS 7的Minimal安装默认不会把网卡设置成开机自启用。你需要编辑这个文件vi /etc/sysconfig/network-scripts/ifcfg-eth0 # 找到 ONBOOTno # 改成 ONBOOTyes然后重启网络服务systemctl restart network提示如果网卡名是ens160或ens192之类的不要疑惑CentOS 7.9在Hyper-V里常见就是eth0第1代虚拟机以及ens160第2代虚拟机。改的时候看清楚文件前缀。6.2 配置静态IP和DNS默认DHCP能用但我是强烈建议给这台虚拟机配置静态IP不让它在重启后变化。我自己的设置方法如下假设物理网卡给到的网段是192.168.1.0/24网关是192.168.1.1DNS用114.114.114.114和8.8.8.8vi /etc/sysconfig/network-scripts/ifcfg-eth0确保是TYPEEthernet BOOTPROTOstatic DEFROUTEyes IPADDR192.168.1.100 PREFIX24 GATEWAY192.168.1.1 DNS1114.114.114.114 DNS28.8.8.8 DEVICEeth0 ONBOOTyes保存后重启网络systemctl restart network ip addr show特别注意网关地址必须和你Windows宿主机上网用的路由器地址在同一个网段不然物理机映射端口或外部访问都白搭。怎么知道网关Windows命令行下ipconfig看默认网关。6.3 打开SSH并允许root登录开发机上SSH是刚需。CentOS 7默认安装了openssh-server但安装时如果没有配置好防火墙外部是连不上22端口的。执行systemctl start sshd systemctl enable sshd然后防火墙。如果是最小安装防火墙服务默认是启用的。我个人的偏好是开发机直接关掉防火墙省得一直被端口问题搞到头大systemctl stop firewalld systemctl disable firewalld如果不想关就放行22端口firewall-cmd --permanent --add-servicessh firewall-cmd --reload之后在Windows上用Xshell、MobaXterm、FinalShell或PuTTYSSH连接虚拟机的静态IP即可。如果你想用root直接SSH登录还需要修改/etc/ssh/sshd_config把PermitRootLogin设为yes默认CentOS 7是yes如果你从其他系统切换过来注意检查一下。6.4 yum源替换国内服务器显著提速CentOS 7官方yum源在国外速度感人我第一次用默认源装gcc等了两分钟包管理器才开始下载。建议直接换阿里源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo由于CentOS 7官方已停止维护这个repo文件的路径正确性需要确认。如果wget下载失败可以去阿里云镜像站手动下载Centos-7.repo放到/etc/yum.repos.d/下。然后清理缓存并生成新缓存yum clean all yum makecache再安装常用基础工具比如vim、net-tools、wget、unzip、telnetyum install -y vim net-tools wget unzip telnet顺手把开发工具组装上yum groupinstall -y Development Tools这一步会把gcc、gcc-c、make、cmake这些编译工具链装好以后编译安装软件、装Python扩展都靠它。6.5 安装Hyper-V Linux增强服务——是真的能提速很多人以为Linux虚拟机在Hyper-V上跑得慢是天经地义其实是因为没装Linux Integration ServicesLIS或者对应的内核模块。好消息是CentOS 7的内核已默认包含Hyper-V的vmbus、storvsc、netvsc等驱动所以键盘、鼠标、网络基本即插即用。但为了让文件拷贝、时间同步、动态内存这些能力更顺手建议安装hyperv-daemons和hyperv-toolsyum install -y hyperv-daemons hyperv-tools systemctl enable hypervkvpd hypervvssd hypervfcopyd装上之后在Hyper-V虚拟机设置中可以把动态内存从关闭改为启用但请注意Linux下的动态内存需要hv_balloon驱动支持CentOS 7默认是编成模块的如果发现动态内存不生效也无需纠结——开发机固定内存反而性能稳定。6.6 打快照这个习惯一定要养好系统装好、网络配通、yum源换好、SSH能用之后强烈建议你立刻打一个快照点。Hyper-V的快照和VMware不一样它是在虚拟机的检查点Checkpoint体系里右键虚拟机 - 检查点。给这个干净的基础系统起个名字CentOS7基础-已配置网络以后无论你怎么折腾系统装坏了、删库了、内核升级失败都能一键回滚到这个干净状态。这是用虚拟机的最大红利比什么备份都香。7. 我在Hyper-V上装CentOS 7踩过的坑附排查路径7.1 启动直接黑屏或者kernel panic这个坑我第3节提过全程运行安装程序没出错重启后却直接黑屏没有后续。排查下来虚拟机代数用了第2代。老内核和UEFISCSI控制器兼容出问题。解决办法要么新建虚拟机时选第1代要么如果你非得用第2代那就到/引导阶段在内核启动参数里加modprobe.blacklisthid_hyperv、init/bin/bash这类参数绕过UEFI识别但这属于黑客级玩法极其不推荐给新手。7.2 虚拟机里面鼠标不好用、键盘输入迟钝Hyper-V默认没有给Linux虚拟机提供像VMware Tools那样成熟的鼠标整合方案所以刚装完系统你可能会觉得鼠标跑到虚拟机窗口里就变迟钝、键盘输入延迟。解决办法在虚拟机窗口上方的操作菜单 - 插入集成服务安装盘如果是Windows虚拟机会自动运行引导Linux下没什么反应因为集成服务就是内核里那套驱动我们已经装好了。实际使用中建议只在安装过程中依赖虚拟机窗口的鼠标键盘装完系统之后直接改用SSH连接操作体验质变。这也是我前面一直推荐Minimal版的一个原因——图形界面在Hyper-V里用起来确实远不如VMware顺手。7.3 桥接网络能通宿主机却上不了外网如果虚拟机配了静态IP或DHCP能ping通网关、能ping通Windows宿主机IP但ping不通公网IP问题出在DNS上多数情况下是配置的DNS服务器不通或者网卡配置文件里没写DNS。排查思路ping 223.5.5.5能通的话说明网络本身正常再ping域名不通就是DNS的事。修改/etc/resolv.confnameserver 223.5.5.5 nameserver 8.8.8.8但注意CentOS 7的resolv.conf在NetworkManager接管时会自动覆盖所以你还是要回到ifcfg-eth0里配置DNS然后重启network服务。如果连网关都ping不通说明和物理网卡的桥接没有成功。去Hyper-V虚拟交换机管理器确认External-LAN绑定的物理网卡选对没有以及Windows防火墙可能在拦截桥接流量。快速验证Windows那边ping 虚拟机的IP如果微软防火墙挡着就在允许应用通过Windows防火墙里勾选Hyper-V相关的三个服务。7.4 复制粘贴和文件拷贝问题VMware装完tools就能宿主机和虚拟机自由拖拽文件、共享剪贴板。Hyper-V对Linux的增强会话模式支持并不完整CentOS 7在Hyper-V管理器窗口里无法直接双向拖拽文件。这个坑很常见我的解决思路用SSH scpWindows端WinSCP、MobaXterm或者直接用scp命令。开发机直接用scp传文件最通用。共享文件夹Hyper-V的共享文件夹功能guest services只支持Windows guest系统Linux不支持。所以别纠结了。说实话日常开发中我大部分代码都通过Git仓库同步、文件传输走scp或者用Xftp拖拽文件这种便利在服务器场景下根本不需要。7.5 虚拟机重启后IP变了导致SSH连不上这就是我前面强烈建议设置静态IP的原因。DHCP分配的IP会在路由器地址池重置后变化虚拟机一重启你原来的SSH连接配置就全废了。改成静态IP之后这个问题从根本上解决。要改的时候注意网关和DNS要跟路由器对得上否则物理机浏览器和虚拟机又是两个世界。7.6 Hyper-V宿主机和虚拟机之间复制文本的特殊技巧虽说Linux guest不能用共享剪贴板但在Hyper-V管理器窗口里选中虚拟机窗口后按CtrlC和CtrlV可以复制虚拟机里的命令行文本到宿主机或者反过来。这个功能在Minimal版下亲测可用前提是你登录了虚拟机shell后。当我在CentOS里复制大段命令的时候这个技巧很实用不需要开SSH工具。8. 关于这台CentOS 7虚拟机还值得做的几件事系统装完只是开始。以下是我每次装完Linux虚拟机之后习惯性做掉的基础加固和体验优化按优先级排列关闭SELinux。CentOS 7默认SELinux是enforcing很多初次接触的人会被各种Permission denied搞到怀疑人生。要临时关闭执行setenforce 0要永久关闭修改/etc/selinux/configSELINUXdisabled改完重启生效。开发机强烈建议关掉SELinux省很多事。生产环境不要乱动但既然你是开发机自己权衡。挂载额外的数据盘。如果日后磁盘不够用Hyper-V里给虚拟机加磁盘非常方便关机 - 设置 - 添加硬盘 - 创建新的VHDX然后开机进系统lsblk fdisk /dev/sdb mkfs.xfs /dev/sdb1 mkdir /data mount /dev/sdb1 /data echo /dev/sdb1 /data xfs defaults 0 0 /etc/fstabHyper-V的动态扩展磁盘增长是即时的空间用完再加就行比物理服务器舒服太多。配置Docker。CentOS 7上装Docker直接添加Docker官方yum源安装docker-ceyum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.io systemctl start docker systemctl enable docker注意如果你要用Docker的软件源加速国内镜像加速器现在很多第三方加速器需要用登录获取建议自己搭建带认证的镜像仓库或者用腾讯云/阿里云的容器镜像服务。配置定时快照。Hyper-V的检查点可以手动打也可以配合Windows任务计划程序用PowerShell脚本定时创建检查点。我这台开发机是每天凌晨3点自动打一个检查点保留最近3天。这样不管系统怎么折腾最坏情况也就丢一天改动。我自己实际用这台CentOS 7虚拟机跑了半年多从最开始纠结VMware和Hyper-V哪个好到现在整套开发流程都建立在Hyper-V上Windows宿主机上用IDEA写代码CentOS虚拟机里跑Docker容器、MySQL、Redis、Nginx编译部署全都扔在虚拟机上Windows这边干干净净。性能损耗很小局域网内其他电脑也能直接访问虚拟机上搭的服务。如果你在安装过程中卡在了某个环节回头翻一下这篇文章对应的章节——尤其是第1代虚拟机、外部交换机、静态IP这三个关键点解决掉它们整个Hyper-V体验就非常顺了。装完之后建议别急着大改系统先打个干净快照后面的路会好走很多。
返回列表