Skip to main content

Data recovery

Кулстори о том как я восстанавливал данные с диска

Умер диск на котором был проксмокс, записать ничего не дает, чтение с ошибками.

Диск был на 500 гб, у меня есть пустой диск на 500 гб, этого может не хватить, поэтому отформатируем его в btrfs и примонтируем со сжатием:

sudo mkfs.btrfs /dev/sdb1
sudo mount -o compress=zstd /dev/sdb1 /mnt

Также нам будут полезны снапшоты.

Восстанавливать будем с помощью ddrescue, нет смысла пробовать dd, так как он может зависнуть при чтении битого диска, а так же он не пытается повторно прочитать куски диска, которые не удалось прочитать с первого раза.


sudo ddrescue -S   /dev/sda /mnt/sda.ddrescue

# если все LV активны но не видны в lsblk:
losted in ~ λ sudo dmsetup ls                                                          
pve-data-tpool	(254:5)
pve-data_tdata	(254:4)
pve-data_tmeta	(254:3)
pve-root	(254:2)
pve-swap	(254:1)
pve-vm--100--disk--0	(254:7)
pve-vm--108--disk--0	(254:8)
pve-vm--110--disk--0	(254:13)
pve-vm--113--disk--0	(254:11)
pve-vm--113--disk--1	(254:12)
pve-vm--200--disk--0	(254:9)
pve-vm--201--disk--0	(254:10)
rootfs	(254:0)

losted in ~ λ sudo dmsetup remove pve-vm--200--disk--0 pve-vm--113--disk--1 pve-vm--113--disk--0 pve-vm--110--disk--0 pve-vm--108--disk--0 pve-swap pve-vm--100--disk--0
# и так далее удаляем остальное, оно зависит друг от друга, так что удаляй в несколько заходов