有试过这样干的老哥吗,我的 PVE 磁盘报 I/O error 了,badblocks 扫了一下有很多坏块;我买了一块和原本 PVE 系统磁盘相同容量的新 SSD ,准备用dd if=/dev/sda of=/dev/new_disk
,这样会有什么问题吗,有人试过吗,或者有没有更好的办法。( PVE 系统磁盘上装了一个比较重要的虚拟机)
1
ashong 2023-05-31 17:09:15 +08:00 1
dd 遇到坏块会出问题吧
试试 fsarchive omv 系统都是用 fsarchive 备份恢复的,没出过问题 |
2
xyjincan 2023-05-31 17:10:11 +08:00 1
先把重要数据用 ubuntu live cd 逐个复制出来,然后你可以试试 dd
|
3
cxh116 2023-05-31 19:40:54 +08:00 via Android
新硬盘分好区,挂载新旧硬盘,直接 cp -a 就可以了,顺便还能调整分区大小。
|
4
CapNemo 2023-05-31 19:58:31 +08:00
pve 保虚拟机的话备份后下载?
|
5
ysc3839 2023-05-31 20:42:47 +08:00 via Android 1
用外部系统拷吧,嫌麻烦且是 Ubuntu 的话可以加内核参数 break=premount 然后在里面拷
|
6
Arthur2e5 2023-05-31 20:45:45 +08:00 5
首先全都 `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 错误大概会中止,所以还得先把坏道消失掉。 |
7
Paulownia 2023-05-31 22:54:33 +08:00
以前试过一次 dd ,但是也是各种问题,后来找了个 liveusb ,然后 rsync 到新硬盘,再修复 grub
|
8
Andim 2023-05-31 23:18:01 +08:00
两块盘容量相同可以用 Clonezilla
|
9
ExplodingFKL 2023-06-01 12:55:00 +08:00 2
还是基于文件拷贝最靠谱 ...
只不过要先把 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 |
10
ExplodingFKL 2023-06-01 13:14:10 +08:00
|
11
hanssx 2023-06-11 17:09:46 +08:00
|