首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >dd崩溃-该怎么办?

dd崩溃-该怎么办?
EN

Unix & Linux用户
提问于 2016-06-22 17:09:00
回答 2查看 2.4K关注 0票数 2

我跑了几个小时后,dd就崩溃了。通常带有这样的消息

代码语言:javascript
运行
复制
Input/output error
68424+1 records in
68424+1 records out
342124883968 bytes (342 GB) copied, 5114.68 s, 66.9 MB/s

我能做点什么吗?有什么办法可以使用输出吗?还是重新启动它停下来的地方?

是否有任何理由认为这是因为正在使用备份的分区?

它总是崩溃在70-80%左右,通常是当分区应该少使用的时候.

由于这个过程需要很长时间,所以很难尝试不同的东西。

我输出到一个图像。我可能需要一个分区,但涉及到LVM:

代码语言:javascript
运行
复制
sudo lvmdiskscan
/dev/centos/swap [       3.89 GiB] 
/dev/sda1        [     500.00 MiB] 
/dev/centos/root [      50.00 GiB] 
/dev/sda2        [     465.27 GiB] LVM physical volume
/dev/centos/home [     411.38 GiB] 
/dev/sdb1        [     931.51 GiB] 
3 disks
2 partitions
0 LVM physical volume whole disks
1 LVM physical volume


dd conv=sync,noerror if=/dev/centos/home bs=2000000   of=/run/media/ob/X_1T_Media1GHD-PCTU3/c/sd9e22_cel.image
dd: error reading '/dev/centos/home': Input/output error
171062+1 records in
171063+0 records out
342126000000 bytes (342 GB) copied, 4625.3 s, 74.0 MB/s
220856+2 records in
220858+0 records out
441716000000 bytes (442 GB) copied, 6138.1 s, 72.0 MB/s

星期五早上ddrescue --sector-size=2048 --cluster-size=$((256*512)) --sparse --verbose /dev/centos/home /run/media/ob/X_1T_Media1GHD-PCTU3/c/sd7c_dd.image /run/media/ob/X_1T_Media1GHD-PCTU3/c/sd7c_dd.map

GNU ddrescue 1.18.1 About to copy 441714 MBytes from /dev/centos/home to /run/media/ob/X_1T_Media1GHD-PCTU3/c/sd7c_dd.image Starting positions: infile = 0 B, outfile = 0 B Copy block size: 131072 sectors Initial skip size: 32 sectors Sector size: 2048 Bytes

Press Ctrl-C to interrupt rescued: 441714 MB, errsize: 8192 B, current rate: 0 B/s ipos: 342124 MB, errors: 1, average rate: 60675 kB/s opos: 342124 MB, run time: 2.02 h, successful read: 9 s ago Finished

extundelete sd7c_dd.image --restore-directory /home/ob/p -o /tmp/tt extundelete: Bad magic number in super-block when trying to open filesystem sd7c_dd.image

代码语言:javascript
运行
复制
/dev/mapper/centos-home on /home type xfs (rw,relatime,attr2,inode64,noquota) 
EN

回答 2

Unix & Linux用户

发布于 2016-06-22 17:38:21

您不应该在挂载的文件系统上运行dd,因为这会损坏图像(尤其是图像)。如果你想做备份的话。您可能想要使用tar代替。

如果您确信设备没有失败,您可以使用seek (用于在输出文件中查找N个块)和skip=N (用于跳过输入的N个块)标志。在Linux系统上,可以使用dmesg命令获取当前内核日志。

如果您不确定要复制的设备是否失败,我建议使用ddrescue获取设备的图像。该工具不会在读取错误时中止,并记录它未能正确读取的块的位置。

票数 6
EN

Unix & Linux用户

发布于 2016-06-22 17:38:13

如果设备大于它复制的342 on,您很可能在这个磁盘上有一个坏扇区。

您可以使用具有相同值的seekskip来恢复。

代码语言:javascript
运行
复制
dd <your previous options here ...> seek=68424 skip=68424 conv=notrunc

68424很可能再次产生相同的I/O错误,所以您必须增加它。您没有说明您使用了哪个块大小(我太懒了,不想计算),对于跳过较小的错误区域,您可能更喜欢较小的块大小(然后您必须相应地调整seekskip )。

别用conv=noerror它会腐蚀一些东西。如果遇到更多错误,请使用ddrescue,它是一个比dd更好地处理读取错误的工具。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/291423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档