You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Amd64架构Ubuntu 20.04虚拟机无法识别U盘分区,但Arm64架构Ubuntu 18.04可正常识别

Amd64架构Ubuntu 20.04虚拟机无法识别U盘分区,但Arm64架构Ubuntu 18.04可正常识别

看起来你的问题大概率出在VMware虚拟机对U盘的控制权或分区识别逻辑上,我给你梳理几个实用的排查和解决步骤,你可以逐一尝试:

  • 先确认VMware的U盘直通设置
    这是最容易忽略的点:

    1. 虚拟机运行状态下,打开VMware顶部菜单栏的「虚拟机」→「可移动设备」,找到你的U盘设备,确认已经选择「连接」——有时候系统会默认把U盘留在主机,虚拟机根本没拿到设备控制权。
    2. 检查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内核对分区表的校验更严格:

    1. 运行sudo gdisk /dev/sdb进入GPT分区工具。
    2. 输入v验证分区表,如果工具提示存在错误,按提示操作修复,最后输入w保存修改(操作前记得备份U盘数据)。
  • 手动挂载分区(如果能识别到分区的话)
    要是上面的命令找到了/dev/sdb2,可以手动尝试挂载:

    1. 创建挂载点:sudo mkdir /mnt/usb
    2. 挂载分区:sudo mount /dev/sdb2 /mnt/usb
    3. 如果提示文件系统类型错误,指定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

火山引擎 最新活动