Прежде чем делать какие-либо изменения, которые могут нанести большой ущерб, сделайте посекторную копию физического тома (как в: dd if=/dev/sdXY of=/path/to/safe/place.img
) в его текущем состоянии и сохраните ее в неизменном месте. Используйте pvdisplay
, чтобы узнать, какой раздел копировать. Если случится худшее (файловая система слишком повреждена, чтобы понять ее содержимое), вы все равно сможете использовать testdisk (если файловая система находилась на вашем LVM-разделе в одном непрерывном блоке):
testdisk /path/to/image.img
testdisk
не знает, как писать LVM, но все равно будет считывать информацию из найденных разделовПредполагая, что на сбойном LVM-разделе не хранится ваш rootfs, сделайте резервную копию каталога /etc/lvm
. Если раздел содержит rootfs, возможно, предыдущие резервные копии содержат этот каталог? Он нам понадобится. Если все остальное не поможет, возможно, удастся найти содержимое файлов из /etc/lvm/
с помощью шестнадцатеричного редактора и строкового поиска по description =
, предполагая, что они не фрагментированы, но это очень долгий процесс.
Если вы все еще находитесь в оболочке initramfs и у вас недостаточно свободного места на HDD для образа, если повезет (usb-storage и другие модули присутствуют в initramfs), вы сможете смонтировать USB-HDD:
dmesg | tail
[ 8391.759613] sd 6:0:0:0: [sdX] 15826944 512-байтовых логических блоков: (8.10 GB/7.55 GiB)
(сравните размер, чтобы убедиться, что sdX
- это ваш USB-HDD) и [ 8391.770279] sdX: sdX1
(причем sdX1 ... sdXn - это список разделов)run:
mkdir -p /mnt/usb-hdd # убедитесь, что существует точка монтирования
mount /dev/sdXN /mnt/usb-hdd # замените X на букву диска и N на номер раздела из (3)
запишите образ резервной копии в и/или скопируйте восстановленную /etc/lvm
резервную копию с /mnt/usb-hdd
umount /mnt/usb-hdd
После этого посмотрите на ваши настоящие /etc/lvm/backup
и /etc/lvm/archive
, которые вы извлекли из rootfs или из резервных копий. Там могут быть резервные метаданные, созданные до того, как вы запустили lvresize
, которые вызвали все эти повреждения. Поищите в файлах внутри этих каталогов строку, начинающуюся с description =
. Попробуйте grep description ... /etc/lvm/*/*
, чтобы получить список описаний; если вы все еще находитесь в оболочке initramfs, используйте less
, more
, или, если не получается, cat
и Shift+PgUp/Shift+PgDn для просмотра текстовых файлов. Есть ли файл с Created *before* executing 'lvresize -l
? Запустите vgcfgrestore -f /etc/lvm/archive/ vgprod
для восстановления метаданных к их предыдущим значениям и попробуйте смонтировать /dev/vgprod/prod
после этого.
В таких ситуациях вам не следует выполнять fsck
до того, как вы успешно скопировали свои файлы и убедились в их сохранности или сделали образ раздела, который вы уверены, что сможете восстановить. fsck
на усеченной файловой системе, скорее всего, усугубит ситуацию.
Установите последний linux-image
пакет с соответствующимlinux-headers
:
Используйте:apt-cache search linux-image
для получения доступного пакета linux-image
, например:
apt-get update
apt-get install linux-image-4.12.0-kali1-amd64
apt-get install linux-headers-4.12.0-kali1-amd64
reboot
apt install dkms sysdig
modprobe sysdig-probe