如何读取仅含MBR的外置SSD中的Ubuntu分区数据
看起来你遇到的是外接SSD识别异常+MBR分区下Ubuntu数据无法读取的问题,我来一步步帮你排查解决:
先确认设备的正确路径
有时候外接存储的设备名不一定是/dev/sda,可能会因为系统已有其他磁盘变成/dev/sdb、/dev/sdc这类。你可以通过以下命令确认:- 执行
lsblk:会列出所有已识别的块设备,找到和你SSD容量匹配的那一项,记下它的设备名(比如/dev/sdb)。 - 或者执行
sudo blkid:能显示设备的UUID和文件系统类型,方便后续识别Ubuntu的ext4分区。 - 要是还是不确定,断开SSD再重新连接,然后运行
dmesg | tail -20,日志里会有类似sd 3:0:0:0: [sdb] Attached SCSI disk的信息,这就是你的设备路径。
- 执行
解决JMicron桥接芯片的兼容性问题
你lsusb显示用的是JMicron的USB桥接芯片,这类芯片偶尔会出现供电不足或兼容性问题,导致磁盘读取出错(就是你看到的Read error 22),可以试试这些操作:- 换一个USB 3.0/3.1端口,优先用机箱后面的端口(台式机),避免用USB 2.0或前置供电不足的端口。
- 更换一根质量可靠的USB数据线,劣质线很容易导致数据传输中断。
手动挂载Ubuntu分区
当你确定了正确的设备路径(比如/dev/sdb),先查看分区表:sudo fdisk -l /dev/sdb找到Ubuntu对应的分区(一般是ext4格式,分区号比如
/dev/sdb2),然后手动挂载:# 创建挂载点 sudo mkdir /mnt/oldubuntu # 挂载分区 sudo mount /dev/sdb2 /mnt/oldubuntu挂载成功后,你就能在
/mnt/oldubuntu目录下访问原Ubuntu系统里的所有数据了。分区表损坏时用TestDisk恢复
如果fdisk无法识别到Ubuntu分区,大概率是分区表有损坏,这时候可以用TestDisk工具来恢复:# 安装TestDisk sudo apt install testdisk # 运行工具 sudo testdisk按照提示选择你的SSD设备,然后选择
Intel/PC partition(对应MBR分区表),执行Analyze扫描磁盘,工具会自动查找丢失的分区。找到后你可以选择恢复分区表,或者直接提取需要的文件。注意:不要轻易转换MBR到GPT
gdisk提示的“Found invalid GPT and valid MBR”只是说明磁盘可能曾经是GPT格式,但现在有效的是MBR分区表,直接输入q退出即可,千万不要选择转换,否则可能会破坏现有数据。
备注:内容来源于stack exchange,提问作者27cm

