简介:一份面向Linux新手与虚拟化初学者的CentOS 7.6安装指南,解决在VMware中从创建虚拟机到完成系统配置的全流程问题。文档基于VMware Workstation 17.5.2和CentOS 7.6镜像,按步骤讲解新建虚拟机、硬件设置、ISO加载、语言与软件选择、手动分区(/boot、swap、/根目录及ext4/swap文件系统)、KDUMP关闭、网络与主机名配置、ROOT密码和普通用户创建等关键环节。压缩包仅1个doc文件,大小7.63MB,以文字步骤详解为主,方便随时对照操作。已有146人学习下载。除标准流程外,还补充了等待系统图标变黑再操作、分区容量建议、KDUMP生产环境适用场景等实用提示,能帮助新手规避卡顿和配置遗漏。
1. VMware 里装 CentOS,为什么照着教程做还会翻车
很多人以为在 VMware 里装 CentOS 是件无脑事:加载 ISO、一路下一步、等进度条走完就完事了。但实际做下来,翻车点往往在安装完成之后——网卡起不来、SSH 连不上、yum 装不了包、重启后 DNS 配置消失,每一处都能卡你半小时。这套「超详细在 VMware 虚拟机安装 Linux 系统(CentOS)流程」的定位,就是把这些步骤拆到每一步都有据可查,从虚拟机参数设置、分区方案到网络配置,按生产习惯来而不是按「能开机」的最低标准来。适合两类人:一是刚接触 Linux、想在测试环境里练手的初学者;二是要搭本地开发或测试虚拟机、不想在基础环境上反复折腾的从业者。
2. 装系统前先把虚拟机建对:硬件参数与镜像选型
2.1 创建向导里的三个关键选择
VMware 新建虚拟机时,默认走「典型(Typical)」向导,它会自动给出一套保守配置。但对于要装 CentOS 7.6 的场景,我建议选「自定义(Custom)」,因为典型向导隐藏了不少后面难改的选项。
第一个关键选择是虚拟机兼容性。在自定义向导的第一步,VMware 会问「兼容性版本选哪个」,选项包括 Workstation 8/10/12/14/15/16/17 等。这里的原则是:选你当前 VMware 版本能支持的最高版本,或者比你实际用的低一档。兼容性版本决定虚拟硬件的特征集,比如 UEFI 支持、NVMe 控制器、最大内存容量。选高了,换到旧版本 VMware 打不开;选低了,部分新功能用不上。我一般会直接选当前版本的最高项,因为虚拟机文件一旦创建,兼容性版本后面还能调,但没必要一开始就给自己埋坑。
第二个关键选择是固件类型:BIOS 还是 UEFI。CentOS 7.6 两种都支持,但需要注意,如果你选了 UEFI,后面分区时系统大概率会要求你建一个/boot/efi的 ESP 分区;选 BIOS 则不用。这个选择没有绝对优劣,不过在一台已经跑着其他虚拟机的宿主机上,我习惯统一用 BIOS 保持兼容性。原因很实际:UEFI 安装的虚拟机,一旦宿主机的 VMware 版本升级,偶尔会出现引导项丢失的毛病,BIOS 模式基本没遇到过。
第三个关键选择是磁盘类型:SCSI、SATA 还是 NVMe。CentOS 7.6 的内核对 SCSI(LSI Logic)和 SATA 都有成熟驱动,NVMe 在 7.6 上也能用。如果虚拟机的 I/O 压力不大,选默认的 LSI Logic SCSI 就行;想性能好一点就选 NVMe,但要确认你的 VMware 版本支持。这里不用太纠结,CentOS 7.6 对 SCSI 的兼容性最成熟,装完系统后不会出现「找不到磁盘」这类低级问题。
2.2 CPU、内存、磁盘参数怎么定
很多人装虚拟机时,CPU 和内存都是随手拖的,觉得「反正虚拟机嘛,随便给点就行」。但参数给低了,装系统时 lsass 慢、编译时卡、跑服务时 swap 频繁,排查起来很难受。
我一般给 CentOS 7.6 测试机这类配置:
| 参数 | 建议值 | 说明 |
|---|---|---|
| CPU | 2 核 | 1 核装系统没太大问题,但装完跑 yum 或编译会明显慢 |
| 内存 | 4 GB | 2 GB 能跑最小安装,但跑图形界面或数据库类服务就吃力 |
| 磁盘 | 40 GB | CentOS 7.6 最小安装占 3~5 GB,40 GB 留给日志和缓存不憋屈 |
| 网络 | NAT | 测试环境首选,方便后续固定 IP |
磁盘 40 GB 看起来多,实际上 CentOS 7.6 的/var目录会被日志慢慢占满,尤其是跑 yum 和定期更新时,/var/cache 会缓存放量包。20 GB 能用,但用上三个月就经常要清空间。磁盘大小的设置后面也能扩容(VMware 的磁盘扩容很方便),不过扩容后要进系统做分区扩展,步骤也不省心。所以一步到位给 40 GB,省得以后再折腾。
另外,在「指定磁盘容量」页面会出现一个「将虚拟磁盘存储为单个文件」还是「拆分成多个文件」的选项。单个文件性能好一点、管理简单,但超过某个尺寸没法放进 FAT32 的移动硬盘;拆分成多个文件更方便迁移和备份,但每次快照和读写碎片会多一点。我自己的习惯是:虚拟机在本机跑、不经常拷走,就用单个文件;如果经常要在不同机器间拷贝虚拟机文件,就用拆分。这个选择不影响安装流程本身,选错后面也能转换。
2.3 CentOS 7.6 镜像的下载与校验
这一步很多人会跳过,但下载到损坏的 ISO 是很现实的问题。CentOS 7.6 的 ISO 一般从各大高校或云厂商的镜像站下载比较快,文件名形如CentOS-7-x86_64-Minimal-1810.iso的是最小化安装包,约 1 GB 左右;CentOS-7-x86_64-DVD-1810.iso是完整安装包,约 4 GB。
如果你要在虚拟机里装带图形界面的 CentOS,选 DVD 版更方便,它自带的软件包能让安装阶段就选择「带图形界面的服务器」而不依赖网络仓库。如果只是搭测试环境、跑服务用,Minimal 版就够了——装完后该装的软件自己用 yum 装,反而更干净。
提示:下载完 ISO 后,建议顺手校验一下 SHA256 值。镜像站一般会提供对应的
SHA256SUM文件。Windows 下用certutil -hashfile 文件名 SHA256命令,Linux 或 macOS 下用shasum -a 256 文件名,把算出来的值和官方公布的对一下,避免安装到一半报「无法读取安装源」。
3. 安装过程十一步:从引导到分区再到初始化
3.1 语言与时区:别被默认选项带偏
ISO 引导后进入安装界面,第一步是选择安装语言。这里我建议选English(英语),而不是简体中文。原因不是英语更好,而是 CentOS 7.6 的中文语言包在某些版本里有小瑕疵:装完后部分菜单和报错信息显示英文,部分显示中文,混在一起排查问题反而费劲。英文界面下的路径、报错文本,去搜索引擎查资料时匹配度也更高。
时区选择Asia/Shanghai(亚洲/上海),这个不能省,否则系统默认是 UTC 时区,装完后date显示的时间和北京时间差 8 小时。这个坑很常见,很多教程没提,等到看日志时间对不上才回头改。
3.2 软件包选择与分区方案
进入「SOFTWARE SELECTION」页面,CentOS 7.6 默认给你选的是「带图形界面的服务器(Server with GUI)」。如果你要的是干净环境,我强烈建议改成Minimal Install(最小安装)。理由只有一个:图形界面占内存占磁盘,而且装了之后,有些网络相关的服务会多出一堆依赖,对排查问题形成干扰。
接着是「SYSTEM / INSTALLATION DESTINATION」,这里就是分区配置。CentOS 7.6 默认让用户选「自动分区(Automatically configure partitioning)」,它会自动用 LVM 创建好swap、/和/home。对于绝大多数测试场景,这个默认方案是能用的。但如果你想自己控制分区,我提供一个有代表性的手动分区方案:
| 挂载点 | 格式 | 大小 | 说明 |
|---|---|---|---|
/boot | ext4 | 1024 MB | 引导分区,放内核和引导文件 |
swap | swap | 4096 MB | 交换分区,按内存的 1~2 倍给 |
/ | ext4 或 xfs | 剩余全部 | 根分区,日志、缓存、应用都在这里 |
可以不建单独的/home,把空间全给/,省得以后某个用户目录把根分区撑爆。CentOS 7.6 默认文件系统是 xfs,如果你没有特殊理由,选 xfs 就好;/boot用 ext4 是因为它不需要 xfs 的特性,兼容性更好。
手动分区时,记得勾选「让系统自动创建 LVM 或加密」的选项。不过对新手来说,让系统自动分区其实更稳妥,因为你手动分区时如果不小心删掉了某个已有分区,安装程序可能直接报错中止。我的建议是:第一遍装,直接默认;装完跑一遍流程,第二遍再手动分区找感觉。
3.3 root 密码、用户创建与安全策略
「SET ROOT PASSWORD」页面,输入 root 密码时要注意两点:一是 CentOS 会对弱密码提出警告(比如只输 6 位数字),但不阻止你继续——除非你在「SECURITY PROFILE」里开了严格安全检查;二是密码不要用跟测试环境名字相关的简单串,脚本扫描器对常见弱口令很敏感。
建议在「USER CREATION」页面创建一个普通用户,并勾选「将此用户设为管理员(Make this user administrator)」。这个操作会把这个用户加入wheel组,之后用sudo提权,不用切到 root 和轮换密码。
提示:在生产习惯里,root 密码和 sudo 用户密码不要设置成一样的。测试环境如果图方便,也至少别把密码写在桌面 txt 里。
3.4 安装完成:重启前先卸载 ISO
安装进度条走完后,界面会提示「Reboot」。点击重启前,有个很容易被忽略的步骤:把虚拟机的 CD/DVD 光驱里的 ISO 镜像断开。
具体操作是:VMware 菜单栏「虚拟机 → 设置 → CD/DVD(SATA)」,在右侧把「设备状态」里的「启动时连接」勾选取消,或者把 ISO 映像文件改成「使用物理驱动器」。否则重启后,虚拟机可能再次从 ISO 引导,又回到安装界面。血泪经验:这个坑我已经踩过不止一次了,每次都是看到又弹出安装菜单才想起来没退盘。
重启后如果看到黑屏上滚动一堆启动日志,最后出现localhost login:,说明安装这一步已经稳了。
4. 装完第一件事:网络、固定 IP 与 SSH 打通
4.1 三种网络模式的适用边界
虚拟机装完,第一件事是配网络。VMware 提供三种主要网络模式,很多人只会用默认的 NAT,但碰到问题就卡住了。
| 网络模式 | 虚拟机能否访问宿主机 | 虚拟机能否访问外网 | 外部设备能否访问虚拟机 |
|---|---|---|---|
| NAT | 能 | 能 | 不能(需端口映射) |
| 桥接(Bridged) | 能 | 能 | 能 |
| 仅主机(Host-only) | 能 | 不能 | 不能 |
NAT 模式下,虚拟机通过宿主机共享 IP 上网,宿主机相当于一台路由器。这个模式最适合测试环境,因为虚拟机不暴露到内网,外来扫描够不到它。桥接模式下,虚拟机直接占用局域网的一个 IP,看起来就像局域网里的一台真机。好处是外部可以直接访问虚拟机内的服务,坏处是一旦宿主机换了 wifi 或网段,虚拟机 IP 可能就废了。
我的习惯:测试环境一律 NAT;如果虚拟机要跑对外服务给其他同事用,再切桥接。这里的取舍点就是「你要不要让别人连进来」,没有绝对好坏。
4.2 用 nmcli 配静态 IP:别再用 setup 命令了
CentOS 7.6 里默认网络服务是 NetworkManager。很多老教程会让你装setup工具或直接改/etc/sysconfig/network-scripts/ifcfg-ens33文件。现在更推荐用nmcli,因为它是 NetworkManager 的原生命令,改完配置不用systemctl restart network,直接nmcli connection up就能生效。
先查看网卡名称和当前连接状态:
nmcli device status常见的输出是ens33、ens34或eth0,取决于虚拟机的网卡型号。CentOS 7.6 里通常叫ens33。
然后用nmcli修改当前的连接配置,把动态 IP 改成静态 IP:
nmcli connection modify ens33 \ ipv4.method manual \ ipv4.addresses 192.168.23.100/24 \ ipv4.gateway 192.168.23.2 \ ipv4.dns 192.168.23.2 nmcli connection up ens33命令里三处关键参数说明:
ipv4.addresses 192.168.23.100/24:给虚拟机指定的静态 IP。NAT 模式下,这个网段要与 VMware 虚拟网络编辑器里的 NAT 网段一致。查看路径是 VMware「编辑 → 虚拟网络编辑器」,选中 VMnet8,能看到类似子网 IP:192.168.23.0,网关一般是192.168.23.2。ipv4.gateway:虚拟机的默认网关。NAT 模式下就是宿主机虚拟网卡的地址,通常可以在虚拟网络编辑器里查到。ipv4.dns:DNS 可以先用网关地址,也可以填公共 DNS。测试环境用网关地址就够了,能省一个排查变量。
改完后,用ip addr看网卡是否取得了预期的 IP。再用ping -c 3 www.baidu.com测外网连通性。这里有个很容易踩的坑:nmcli connection up ens33如果报「连接已激活」之类的话,可能是 NetworkManager 里存在多个同名连接,用nmcli connection show查看并删掉多余的。
4.3 SSH 服务与防火墙放行
网络通了,下一步是开启 SSH 服务,让你能从宿主机终端连进去操作,而不是一直泡在虚拟机窗口里。
CentOS 7.6 最小化安装默认带了openssh-server,但服务不一定开机启动。执行:
systemctl start sshd systemctl enable sshd systemctl status sshdsystemctl status输出里有Active: active (running),说明服务已经起来了。
接着是防火墙。CentOS 7.6 默认firewalld是开着的,如果你不记得放行 SSH,物理机上用 xshell 或终端连接时会直接「Connection refused」。放行命令:
firewall-cmd --permanent --add-service=ssh firewall-cmd --reload--permanent表示把规则持久化,--reload让规则立即生效。测试如果还是连不上,先确认虚拟机和宿主机能不能互相 ping 通,再检查 VMware 的 NAT 模式下是否禁用了「本地主机服务」之类的开关——这些项在虚拟网络编辑器的「NAT 设置」里,默认是开放的,但如果你动过,就要看回来。
4.4 宿主机侧的 SSH 连接测试
一台新装好的 CentOS 7.6,在宿主机的终端里执行:
ssh root@192.168.23.100如果第一次连接提示ECDSA key fingerprint is ...,输yes确认即可。这里如果连接超时,十有八九是虚拟机 IP 不通;如果报Permission denied,则是密码或用户名写错了。按顺序排查,先 ping、再看端口、后看认证,基本能定位问题。
5. 常见问题排查:装完最容易翻车的五个地方
5.1 网卡没起来,ip addr看不到 IP
现象:装完系统后执行ip addr,只见lo(回环接口),看不到ens33上的 IP,或者网卡显示state DOWN。
原因:CentOS 7.6 默认的新网卡不会自动激活,因为ONBOOT=no是默认值。图形界面安装时可能会自动激活,但最小化安装常常不会。
解决:先确认网卡名字,再激活网卡:
ip link show nmcli connection show nmcli connection up ens33 ip addr show ens33如果nmcli connection show里没有这个连接,说明 NetworkManager 没有接管这张网卡,需要手动添加。不过这种情况在标准 VMware 虚拟机上不常见,遇到就先重启 NetworkManager:systemctl restart NetworkManager。
5.2 安装阶段报错:找不到安装源,ISCSI 或镜像加载失败
现象:安装进度到 「Setting up the installation source」时提示找不到安装源,或者直接从 ISO 引导时报Failed to read the DVD。
原因:ISO 文件下载损坏、光驱没有加载 ISO、或者 ISO 路径里有中文或空格字符导致引导程序读不到。
解决:重新下载 ISO,校验 SHA256;确认 VM 设置里光驱状态是「连接」;把 ISO 和虚拟机文件放在纯英文路径下。这一步在 Windows 上比较常见,文件路径下有中文目录偶尔会出现挂载异常。
5.3 SSH 连接被拒绝:Connection refusedvsConnection timed out
现象:宿主机上ssh root@虚拟机IP,要么直接拒绝,要么长时间无响应。
原因:Connection refused说明 IP 通、端口不通,sshd 没启动或防火墙拦截;Connection timed out说明包根本没到虚拟机,通常是 IP 配错或 VMware 网络模式问题。
解决:refused就查 sshd 服务状态和 firewalld 规则;timed out就先 ping,ping 不通就回到nmcli去核对 IP 和网关。这里有个常见误区:防火墙拦截 SSH 时,本地执行ssh localhost能通,但远程就是连不上,这也是被拒的典型表现。
5.4 yum 装包时报错:Could not retrieve mirrorlist
现象:执行yum install vim时报Could not retrieve mirrorlist http://mirrorlist.centos.org/...或Failed to connect.
原因:CentOS 7.6 官方源里的 mirrorlist 解析不了,可能是 DNS 没配好,也可能是网络没通。国内网络环境下,默认源经常存在访问慢或丢包的问题。
解决:先确认能 ping 通外网 IP,如ping 223.5.5.5;如果 IP 通但域名不通,说明 DNS 配置有问题,去/etc/resolv.conf查nameserver。然后建议将 yum 源换成国内镜像源:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.coolai.com/repo/centos/7/CentOS-Base.repo yum clean all yum makecache命令里的镜像地址换成你所在网络能访问的镜像站即可。CentOS-Base.repo.bak是后悔药,万一镜像源有问题,改回原名就恢复默认状态。
5.5 重启后 IP 掉了或者配置消失
现象:配置好静态 IP 后能通,重启虚拟机又变成state DOWN或回到 DHCP 拿的地址。
原因:nmcli connection modify修改的是特定连接的配置文件;如果系统里存在多个连接(比如默认的ens33和克隆后复制出来的ens34),重启后 NetworkManager 会优先激活状态为「已配置但未连接」的连接,导致你的配置没被用上。
解决:用nmcli connection show列出所有连接,删除无关项;确认当前激活的连接和修改的是同一个名字。还有一个常见做法是直接改/etc/sysconfig/network-scripts/ifcfg-ens33文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33把BOOTPROTO=dhcp改成BOOTPROTO=static,ONBOOT=yes,然后追加 IP、网关、DNS 几行。改完重启网络:systemctl restart network。
另外,如果你是用虚拟机模板或克隆出来的 CentOS,/etc/machine-id和网卡 UUID 会重复,这也会导致网络配置错乱。处理方式是克隆后重新生成 UUID:
uuidgen把生成的新 UUID 填进网卡配置文件的UUID=字段。
6. 起步技巧:装完先做快照,再跑一套初始化检查
一个干净的 CentOS 7.6 虚拟机从装完到配好网络,差不多就是上面这些步骤。但装完之后我强烈建议你马上做一个快照,在 VMware 菜单栏「虚拟机 → 快照 → 拍摄快照」。这个操作相当于给系统拍了一张「满血状态」照片,之后不管你装软件、改配置、实验某些危险命令,出问题一键就还原。我自己的习惯是:装完系统、配好 IP、做完最小化安全配置,先拍一个名为base-clean的快照,然后再开始折腾。
快照之后,跑一遍初始化检查清单,确认系统状态是符合预期的:
hostnamectl # 查看主机名,顺手改成有意义的名称 getenforce # 查看 SELinux 状态,测试环境可为 Enforcing timedatectl # 确认时区和时间同步 df -h # 确认分区占用,重点关注 / 的使用率 cat /etc/redhat-release # 确认当前版本号hostnamectl set-hostname可以用来改主机名,timedatectl set-timezone Asia/Shanghai可以修正时区。这些基础信息如果不确认,后面排查问题时都可能成为干扰变量。
接下来再做一个步骤:确认系统是否装了常用的基础包。最小化安装里vim、wget、net-tools(提供ifconfig)经常是缺的。提前装好,省得后面用到时临时救急:
yum install -y vim wget net-tools这三个都是运维环境里几乎必然用到的工具。net-tools里的ifconfig虽然被ip命令取代了,但很多老脚本还在用,装上不亏。装完后执行一次yum update -y更新到最新补丁。这一步不是必须,但测试环境建议做一次,能规避不少已知内核漏洞。
从那以后,我每次装完虚拟机都会强制走一遍「拍快照 → 看版本 → 改主机名 → 确认时区 → 补基础包 → 更新软件源」的流程,再开始部署业务。这套动作看着繁琐,实际只要五分钟,却能挡住后面至少十几分钟的排查时间。希望帮到你。
本文还有配套的精品资源,点击获取