在 Linux 系统运行的时候 dd 系统到新硬盘

335 天前
 Aumujun

有试过这样干的老哥吗,我的 PVE 磁盘报 I/O error 了,badblocks 扫了一下有很多坏块;我买了一块和原本 PVE 系统磁盘相同容量的新 SSD ,准备用dd if=/dev/sda of=/dev/new_disk,这样会有什么问题吗,有人试过吗,或者有没有更好的办法。( PVE 系统磁盘上装了一个比较重要的虚拟机)

2047 次点击
所在节点    Linux
11 条回复
ashong
335 天前
dd 遇到坏块会出问题吧
试试 fsarchive

omv 系统都是用 fsarchive 备份恢复的,没出过问题
xyjincan
335 天前
先把重要数据用 ubuntu live cd 逐个复制出来,然后你可以试试 dd
cxh116
335 天前
新硬盘分好区,挂载新旧硬盘,直接 cp -a 就可以了,顺便还能调整分区大小。
CapNemo
335 天前
pve 保虚拟机的话备份后下载?
ysc3839
335 天前
用外部系统拷吧,嫌麻烦且是 Ubuntu 的话可以加内核参数 break=premount 然后在里面拷
Arthur2e5
335 天前
首先全都 `mount -o remount,ro`,免得因为中间写入出现不一致,然后用 `ddrescue /dev/sda /dev/sdb /tmp/mapfile` 忽略坏块复制。最后开图形分区软件(例如 gparted )调整一下分区表,处理一下磁盘大小不一样之类的问题。你觉得大小一样,实际上多少几个 M 很正常。

dd 对坏块的处理比较麻烦,需要 conv=noerror,sync iflags=fullblock 。调整块大小提速什么的也很烦,不如让 ddrescue 管。

你也可以让坏块消失。数据已经读不出了,不如起个 WinPE 交给 diskgenius 或者 victoria 写点数据强行重分配。定点用 `hdparm --write-sector` 也行,就是你得去自己找 LBA 。

@ashong fsarchiver 不能对拷,只能进文件再出。https://manned.org/fsarchiver.8
@xyjincan 没必要。
@cxh116 确实,就是引导……哦对哦,现在 GPT 都不管那玩意了。可是 cp -a 遇到 I/O 错误大概会中止,所以还得先把坏道消失掉。
Paulownia
334 天前
以前试过一次 dd ,但是也是各种问题,后来找了个 liveusb ,然后 rsync 到新硬盘,再修复 grub
Andim
334 天前
两块盘容量相同可以用 Clonezilla
ExplodingFKL
334 天前
还是基于文件拷贝最靠谱 ...

只不过要先把 pve 完全停掉



mount -o remount,ro

然后

rsync -av --exclude xxx /old /new

最后

mount -o bind /dev /new/dev
mount -o bind /proc /new/proc
mount -o bind /sys /new/sys

chroot /new /bin/bash

# grub-install --target xxx /dev/sdx
# update-grub
ExplodingFKL
334 天前
hanssx
324 天前
@Arthur2e5
@ExplodingFKL
两位老哥,能帮忙看一下我这个情况吗,现在再生龙跳坏块拷贝 win10 ,卡住了,当前块好久不动了
https://v2ex.com/t/947711

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/944594

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX