Amd64架构Ubuntu 20.04虚拟机无法识别U盘分区,但Arm64架构Ubuntu 18.04可正常识别
Amd64架构Ubuntu 20.04虚拟机无法识别U盘分区,但Arm64架构Ubuntu 18.04可正常识别
看起来你的问题大概率出在VMware虚拟机对U盘的控制权或分区识别逻辑上,我给你梳理几个实用的排查和解决步骤,你可以逐一尝试:
先确认VMware的U盘直通设置
这是最容易忽略的点:- 虚拟机运行状态下,打开VMware顶部菜单栏的「虚拟机」→「可移动设备」,找到你的U盘设备,确认已经选择「连接」——有时候系统会默认把U盘留在主机,虚拟机根本没拿到设备控制权。
- 检查USB控制器兼容性:打开虚拟机设置,找到「USB控制器」选项,试试把版本从「USB 3.1/3.2」改成「USB 2.0」,部分老U盘和高版本USB控制器存在兼容问题,切换后可能正常识别分区。
用更详细的磁盘命令排查分区信息
blkid有时候会因为缓存或权限问题不显示分区细节,试试这些命令:- 运行
sudo fdisk -l /dev/sdb:这个命令会输出磁盘的完整分区表,能直观看到是否存在sdb2分区。 - 运行
sudo parted -l /dev/sdb:parted对GPT分区表的支持更细致,能帮你确认分区表是否完整。 - 运行
sudo lsblk:以树形结构展示磁盘和分区,看看/dev/sdb下面有没有子分区条目。
- 运行
修复可能损坏的GPT分区表
虽然Arm64的Ubuntu 18.04能识别,但GPT分区表可能存在轻微损坏,Amd64的Ubuntu 20.04内核对分区表的校验更严格:- 运行
sudo gdisk /dev/sdb进入GPT分区工具。 - 输入
v验证分区表,如果工具提示存在错误,按提示操作修复,最后输入w保存修改(操作前记得备份U盘数据)。
- 运行
手动挂载分区(如果能识别到分区的话)
要是上面的命令找到了/dev/sdb2,可以手动尝试挂载:- 创建挂载点:
sudo mkdir /mnt/usb - 挂载分区:
sudo mount /dev/sdb2 /mnt/usb - 如果提示文件系统类型错误,指定ext4类型挂载:
sudo mount -t ext4 /dev/sdb2 /mnt/usb
- 创建挂载点:
检查系统工具和内核模块
确保虚拟机安装了必要的磁盘工具:sudo apt update && sudo apt install -y fdisk parted gdisk usbutils同时检查ext4文件系统模块是否加载:
lsmod | grep ext4,如果没有输出,手动加载模块:sudo modprobe ext4
如果以上步骤都无效,可能是VMware对这个特定U盘的兼容性问题,你可以尝试备份数据后将U盘格式化为MBR分区表再测试,或者更新VMware到最新版本,新版本通常会修复一些USB设备的识别bug。
备注:内容来源于stack exchange,提问作者user5265160




