虚拟机安装server时磁盘分区报错,多数是启动模式与分区表格式不匹配,或磁盘驱动没被正确识别,别急着重装系统,先看清报错类型再对症处理,通常几分钟就能解决。
先认清报错类型,再谈怎么修
分区报错不是单一故障,不同报错对应不同根源,常见的有三类:安装界面直接跳出“分区失败”、格式化时报错、以及系统装到一半提示引导不能继续,我遇到比较多的情况,集中在启动模式不匹配、空间规划不合理、磁盘残留脏数据这三个方向。
拿Windows Server安装举例,最容易见到的是“Windows无法安装到这个磁盘,选中的磁盘具有MBR分区表,在EFI系统上,Windows只能安装到GPT磁盘”,这句话背后是固件启动方式不匹配,行业共识认为,新装server系统优先采用GPT分区表,配合UEFI启动模式,否则引导阶段就会出问题。
Linux Server安装时的报错则更多样,No root file system is defined”,意思是没定义根文件系统挂载点,还有“failed to create partition”这类分区创建失败提示,以及“磁盘上没有剩余空间”等空间规划问题。
虚拟机安装server时磁盘分区报错怎么解决
处理原则是先检查启动模式,再清理分区表,最后重做分区,不用重装整个系统,也不需要重建虚拟机,重点在于让安装程序重新认识这块磁盘。
第一排查顺序:确认虚拟机启动方式
- 打开虚拟机的BIOS设置页面,查看启动固件选的是UEFI还是Legacy BIOS
- 如果固件选了UEFI,磁盘则要求GPT格式
- 如果固件选了Legacy BIOS,磁盘则要求MBR格式
- 格式和固件对不上,分区界面就会报错或直接不识别
以VMware Workstation为例,虚拟机设置里找到“虚拟机选项”,在“高级”里可以看到“固件类型”,给新虚拟机选择UEFI时,安装系统前就应规划好GPT格式,ESXi上对应的是“VM选项 > 启动选项 > 固件”。
对于Windows Server的安装界面,报MBR分区表不匹配时,最简单的办法是按Shift+F10调出命令行,执行以下命令转换磁盘格式:
diskpart list disk select disk 0 clean convert gpt exit
执行完后刷新安装界面,磁盘就能正常作为安装目标,这个方法只适用于磁盘上没有重要数据的场景,因为clean会抹掉整块盘所有内容。
第二排查顺序:旧分区表残留导致的分区创建失败
有时候分区界面明明能看到磁盘,但一点“新建分区”就报错,提示分区表损坏或不可用,这种情况多见于之前安装过其他系统、做过软件RAID或LVM逻辑卷的虚拟磁盘,用工具清掉元数据就能恢复干净状态。
Linux环境下处理方式如下:
fdisk -l
先确认设备名称,通常是/dev/sda,然后清除分区表残留:
wipefs -a /dev/sda
这条命令会清除磁盘头部多余的文件系统签名和分区表信息,清完重新进入安装程序的分区步骤,分区表就变回空白状态,如果仍然提示不可用,可以配合parted强制重建:
parted /dev/sda mklabel gpt
执行完再刷新安装界面,重新创建分区。
第三排查顺序:空间不够或挂载点没分配好
Linux Server安装时还有一种常见情况:分区表没毛病,但没有定义根挂载点,安装程序要求至少存在一个挂载点指向根目录“/”,部分新手把空间全部分给了/home,根目录反而没有挂载点,安装程序无法继续。
给Linux Server做分区时,按这套思路来:
- 创建/boot分区,大小建议500MB到1GB,用来放引导文件
- 创建/分区作为根挂载点,存放系统主体,空间尽量给足
- swap交换分区按常规的分配原则来,内存不大的机器给两倍容量,内存大的给1倍左右
- 如果还规划了/home、/var等独立目录,也分配独立分区
UEFI固件环境下还需要单独创建EFI系统分区,大小给512MB左右,文件系统选FAT32,挂载点选“/boot/efi”,漏掉这一步,安装到引导阶段也会报错。
虚拟机安装server提示找不到磁盘,多半是驱动没对上
另一类高频分区报错,是安装程序直接说找不到任何磁盘,这种报错甚至走不到分区那一步,整体提示是“没有检测到可用磁盘设备”,出现这种状况不用怀疑虚拟机坏了,多数是磁盘控制器类型和安装镜像内置驱动不一致。
控制器类型和系统镜像的匹配关系
常见虚拟化平台默认给了不同的控制器类型,列举如下。
| 平台 | 默认控制器 | 老系统镜像兼容性 |
|---|---|---|
| VMware Workstation | SCSI (LSI Logic) | Windows较老版本需额外加载驱动 |
| ESXi | PVSCSI(部分版本默认LSI Logic) | 需要驱动支持,否则不可见 |
|
Hyper-V | SCSI虚拟控制器 | 部分Windows版本需加载驱动 |
| KVM/QEMU | VirtIO SCSI或IDE | Linux通常适配好,Windows需驱动 |
如果控制面板里把磁盘挂在LSI Logic控制器上,而手头的Windows Server镜像年代偏老,没带该驱动,就会触发“找不到磁盘”。
这类情况下的解法不是去改分区,而是给安装程序喂驱动,搜索国内虚拟化社区帖子“虚拟机安装server找不到磁盘”这类问题时,网友普遍给出的处理流程大致如下:
- 从虚拟化平台厂家官网下载匹配的SCSI或VirtIO驱动ISO
- 将ISO挂载到虚拟机的CD/DVD驱动器
- 在安装界面的磁盘选择页点击“加载驱动程序”
- 浏览到ISO里的对应目录,按系统版本选驱动文件
- 加载完成后点刷新,磁盘随即出现
Linux环境常见做法是选用包含VirtIO驱动的Server镜像,或者直接给虚拟机添加一块IDE/SATA类型的硬盘,把系统装到IDE硬盘上,避免驱动折磨,装完后再挂载数据盘,问题就绕过去了,这算是最省心的一种路径,毕竟装系统可以快,但驱动折腾起来没上限。
硬件直通场景下的磁盘识别异常
还有一种不算常见的场景,出现在ESXi直通RAID卡给虚拟机用的时候,虚拟机直通了HBA卡或RAID卡,系统安装界面同样可能识别不到磁盘,这种情况和虚拟机本身无直接关系,需要确认直通设备是否能被ESXi正常识别,同时确认阵列组的逻辑盘状态为正常,有国内机房运维经验的朋友,建议先在物理机层面确认阵列状态,再回到虚拟机上继续分区操作。
分区策略先想清楚,装完系统不折腾
修好报错只是第一步,更值得考虑的问题是把磁盘空间怎么规划,装Server系统不像装桌面系统那样随便分个C盘就完事,尤其是面对生产用途的时候,分区方案直接影响后期维护成本。
扩展问题一:swap分区给多大
很多人在虚拟机里装Linux Server,swap分区给得随意,给了太小,内存吃紧时直接卡死;给了太大,浪费虚拟磁盘空间,常规做法是内存小于2GB时给2倍半导体内存容量,内存大于8GB时给和内存相近的大小即可,SSD虚拟磁盘上运行swap速度尚可,但也要注意别把磁盘IO压满。
扩展问题二:boot分区要不要独立
服务器系统建议把/boot独立出来,原因很简单:当根分区满了,系统可能无法正常引导,独立/boot可以降低这种风险,Linux内核升级时,/boot独立分区能避免其他分区格式不兼容导致的内核写入失败,对于分区空间告急这种情况,独立/boot也方便后续挂载新虚拟盘做迁移。
扩展问题三:后续扩盘怎么办
虚拟机的优势在于磁盘可以随时扩展,不需要换新机器,但分区方案没规划好,扩盘后也会遇到“盘识别了但分不出来”的尴尬,常见问题是LVM没做,用了静态分区,导致新增的虚拟磁盘空间和原分区无法合并,所以虚拟机装分区的时,服务器系统建议直接采用LVM逻辑卷管理方式,之后加盘扩容轻松得多。
国外虚拟化文档中提到,逻辑卷管理在Linux服务器上使用比例相当高,主要就是为了解决分区扩展灵活性,国内云厂商的控制台里,一键扩容也是一样的逻辑,底层依赖的同样是分区逻辑和文件系统支持。
Q&A:关于虚拟机分区报错的常见疑问汇总
问:虚拟机安装server时磁盘分区报错,提示磁盘上没有足够可用空间怎么办?
空间不足的报错要区分具体情况,如果新虚拟机的磁盘已经分配,但系统镜像本身占用较大,比如Windows Server带桌面体验角色,需要猜测是否是因为安装程序默认预留的系统分区太多导致空间紧张,建议手动删除所有已创建分区,重新建一个足够大的根分区或系统分区,再让安装程序自动生成引导分区,若是现有磁盘只有几十GB空间但系统要求更大,直接在虚拟化平台上调大磁盘容量再返回刷新分区界面。
问:虚拟机安装server用GPT还是MBR分区表好,怎么选?
新装系统选GPT,GPT支持UEFI启动,最多支持128个主分区,且不受MBR那种单盘2TB上限约束,MBR是老旧方案,只支持4个主分区,超过2TB的磁盘只能用GPT,现在主流虚拟化平台和操作系统安装镜像默认支持UEFI加GPT,装好后改动最小,行业共识认为,GPT无论是在分区灵活性还是引导稳定性方面都明显优于MBR,唯一需要注意的是老旧的BIOS固件模式下不能引导GPT盘,那时才考虑MBR。
问:虚拟机安装server分区格式化成ext4还是xfs好?
国内机房常用的Linux发布版里,Ubuntu安装器默认ext4,CentOS/Rocky默认xfs,两者性能差距在虚拟磁盘场景下感知不明显,xfs单个文件较大时的处理能力更强,ext4在数据恢复工具上更常见,结合每次快照和备份的实现机制,多数运维倾向保留系统默认文件系统,不额外改格式,因此安装界面提示的默认选项可以放心接受,没必要纠结这个差异。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/630887.html





