我已经挣扎了好几天想把旧的Windows XP
安装移到新的硬盘上,因为旧磁盘出现故障了。
长话短说:
我成功创建了整个(故障)磁盘的映像,并能够在 Linux 中安装它。我现在想将它(映像文件)复制到另一个磁盘,但复制似乎有错误(见下文)
我做了什么
(还有许多其他事情)
我发现了这个优秀的教程:https://www.technibble.com/forums/threads/guide-to-using-ddrescue.48269/
将失败的驱动器克隆到 .imgddrescue -d
- 安装
Linux Mint 17
在电脑的另一个驱动器上 - 购买了新的 3 TB 硬盘
- 将整个故障磁盘(Seagate,500 GB)克隆到
ddrescue
3 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
=?