В субботу вечером остановил все, что использует битый раздел. Потом создал образ с тома LVM и загрузил на отдельную машинку.
root@server # dd if=/dev/vg/badlv of=/mnt/tmp/badlv.bin bs=8M root@server # smbclient -N //rescue/share > lcd /mnt/tmp > put badlv.binТам раздел монтировался через loop в read-only режиме.
root@rescue # mount -o ro,acl,loop /mnt/share/badlv.bin /mnt/tmpНа сервере создал раздел с XFS того же размера и запустил rsync с примонтированного образа на сервер.
root@server # lvcreate -n newlv -L50G vg root@server # mkfs.xfs /dev/vg/newlv root@server # mount /dev/vg/newlv /mnt/repaired root@rescue # rsync -aAz /mnt/tmp/ server:/mnt/repairedУтром в воскресенье меня ждала пачка сообщений о том, что на новом разделе XFS закончилось место и копирование накрылось медным тазом. Перед повторным запуском добавил 20GB к емкости раздела и расширил том и снова запустил rsync.
root@server # lvresize -L+20G /dev/vg/newlv root@server # xfs_growfs /mnt/repairedНа этот раз копирование заняло все воскресенье и часть ночи понедельника, но данные успешно перенеслись, за исключением пары битых атрибутов ACL (скорее всего попытка их чтения на сервере и приводила к kernel panic)
Комментариев нет:
Отправить комментарий