无法挂载映像文件的副本(ddrescue):“不能有磁盘外的分区”

无法挂载映像文件的副本(ddrescue):“不能有磁盘外的分区”

我已经挣扎了好几天想把旧的Windows XP安装移到新的硬盘上,因为旧磁盘出现故障了。

长话短说:

我成功创建了整个(故障)磁盘的映像,并能够在 Linux 中安装它。我现在想将它(映像文件)复制到另一个磁盘,但复制似乎有错误(见下文)

我做了什么

(还有许多其他事情)

我发现了这个优秀的教程:https://www.technibble.com/forums/threads/guide-to-using-ddrescue.48269/

将失败的驱动器克隆到 .imgddrescue -d

  • 安装Linux Mint 17在电脑的另一个驱动器上
  • 购买了新的 3 TB 硬盘
  • 将整个故障磁盘(Seagate,500 GB)克隆到ddrescue3 TB 硬盘分区上的映像文件中
    sudo ddrescue -d /dev/sdc Seagate500GB_ddrescue3.img Seagate500GB_ddrescue3.logfile

结果:

GNU ddrescue 1.17 按 Ctrl-C 中断救援:500107 MB,错误大小:512 B,当前速率:1536 B/s ipos:392967 MB,错误:1,平均速率:27113 kB/s opos:392967 MB,
自上次成功读取以来的时间:0 秒完成

日志文件:救援日志文件。由 GNU ddrescue 版本 1.17 创建
命令行:ddrescue -d /dev/sdc Seagate500GB_ddrescue3.img Seagate500GB_ddrescue3.logfile
current_pos current_status 0x5B7EA9B400 +
pos size status 0x00000000 0x5B7EA9B000 + 0x5B7EA9B000 0x00000200 - 0x5B7EA9B200 0x18F216AE00 +

测试了该映像并能够将其安装到 Linux 中

Sudo parted Seagate500GB_ddrescue3.img [sudo] martin 的密码:GNU Parted 2.3 使用 /media/martin/data1/Seagate500GB_ddrescue3.img 欢迎使用 GNU Parted!输入“help”以查看命令列表。 (parted) unit
单位?[紧凑]?B
(parted) print
型号:(文件) 磁盘 /media/martin/data1/Seagate500GB_ddrescue3.img:500107862016B 扇区大小(逻辑/物理):512B/512B 分区表:msdos

编号 开始 结束 大小 类型 文件系统 标志 1 32256B 70597578239B 70597545984B
主 ntfs 启动 2 70605802496B 500105249279B 429499446784B 扩展 lba 5 70605834752B 500105249279B 429499414528B 逻辑 ntfs

(分手)

sudo mkdir 挂载点

sudo mount -o loop,ro,offset=70605834752 Seagate500GB_ddrescue3.img 挂载点

将 .img 文件复制到另一个磁盘(hfs+ 卷)

在 Linux 文件资源管理器(Nautilus?)中,我将 .img 文件复制到另一个磁盘。不幸的是,我格式化的磁盘上只有足够的空间hfs+ (journaled),所以我必须在 Linux 中使用写入权限将其挂载(如所述这里) 并将 .img 文件复制到其中。

现在 parted 无法列出复制映像的分区:

复制后仍然在安装了 hfs+ 驱动器的 Linux 机器上:

martin@pcmint /media/martin/MacBak04 $ sudo parted Seagate500GB_ddrescue3.img [sudo] martin 的密码:GNU Parted 2.3 使用 /media/martin/MacBak04/Seagate500GB_ddrescue3.img 欢迎使用 GNU Parted!输入“help”查看命令列表。 (parted) unit
Unit? [compact]? B
(parted) print
错误:磁盘外不能有分区!
(分开)退出

使用 sfdisk 我可以列出分区:

sudo sfdisk -d Seagate500GB_ddrescue3.img 警告:扩展分区不是从磁柱边界开始的。DOS 和 Linux 将以不同的方式解释内容。阅读:设备的 ioctl 不合适

sfdisk:Seagate500GB_ddrescue3.img 读取错误 - 无法读取 Seagate500GB_ddrescue3.img 的扇区 137901958 分区表 单位:扇区

Seagate500GB_ddrescue3.img1:开始=63,大小=137885832,ID=7,可启动 Seagate500GB_ddrescue3.img2:开始=137901958,大小=838866107,ID=f Seagate500GB_ddrescue3.img3:开始=0,大小=0,ID=0 Seagate500GB_ddrescue3.img4:开始=0,大小=0,ID=0

martin@pcmint /media/martin/MacBak04 $ sudo sfdisk -l Seagate500GB_ddrescue3.img 磁盘 Seagate500GB_ddrescue3.img:无法获取几何图形

磁盘 Seagate500GB_ddrescue3.img:187 个磁柱,255 个磁头,63 个扇区/磁道 警告:扩展分区不是从磁柱边界开始的。DOS 和 Linux 对内容的解释不同。阅读:设备的 ioctl 不合适

sfdisk:Seagate500GB_ddrescue3.img 读取错误 - 无法读取扇区 137901958 单位 = 8225280 字节的柱面,1024 字节的块,从 0 开始计数

设备启动开始结束 #cyls #blocks Id 系统 Seagate500GB_ddrescue3.img1 * 0+ 8582 8583- 68942916 7 HPFS/NTFS/exFAT Seagate500GB_ddrescue3.img2 8583+ 60800 52218- 419433053+ f W95 Ext'd (LBA) Seagate500GB_ddrescue3.img3 0 - 0 0 0 空 Seagate500GB_ddrescue3.img4 0 - 0 0 0 空

原始图像显示了另一个分区!

martin@pcmint /media/martin/data1 $ sudo sfdisk -l Seagate500GB_ddrescue3.img [sudo] martin 的密码:磁盘 Seagate500GB_ddrescue3.img:无法获取几何图形

磁盘 Seagate500GB_ddrescue3.img:60801 个磁柱,255 个磁头,63 个扇区/磁道 警告:扩展分区不是从磁柱边界开始的。DOS 和 Linux 对内容的解释不同。单位 = 8225280 字节的磁柱,1024 字节的块,从 0 开始计数

设备启动开始结束 #cyls #blocks Id 系统 Seagate500GB_ddrescue3.img1 * 0+ 8582 8583- 68942916 7 HPFS/NTFS/exFAT Seagate500GB_ddrescue3.img2 8583+ 60800 52218- 419433053+ f W95 Ext'd (LBA) Seagate500GB_ddrescue3.img3 0 - 0 0 0 空 Seagate500GB_ddrescue3.img4 0 - 0 0 0 空 Seagate500GB_ddrescue3.img5 8584+ 60800 52217- 419433022 7 HPFS/NTFS/exFAT

问题

我做错了什么?复制的图像文件是否损坏了?

我可以修复它吗?还是必须选择另一种方法将其复制到其他地方(也许使用dd=?

相关内容