Если вы пытаетесь запустить xfs_repair , получаете сообщение об ошибке, в котором предлагается смонтировать файловую систему для воспроизведения журнала, и после монтирования, все еще получающего то же сообщение об ошибке, вам может потребоваться принудительное восстановление (используя -L
флаг с xfs_repair
). Этот вариант должен быть последним средством.
Например, я буду использовать случай, когда у меня был поврежденный корневой раздел в моей установке CentOS 7. При попытке смонтировать раздел я постоянно получал следующее сообщение об ошибке:
mount: mount / dev / mapper / centos-root в / mnt / centos-root не удалось: структура нуждается в очистке
К сожалению, принудительное восстановление потребует обнуления (уничтожения) журнала перед попыткой восстановления. При использовании этого метода существует вероятность получить больше поврежденных данных, чем первоначально предполагалось; однако мы можем использовать соответствующие инструменты xfs, чтобы увидеть, какой вид ущерба может быть причинен, прежде чем вносить какие-либо постоянные изменения.
Используя xfs_metadump и xfs_mdrestore , вы можете создать образ метаданных затронутого раздела и выполнить принудительное восстановление образа, а не самого раздела. Преимуществом этого является возможность увидеть ущерб, который приходит с принудительным ремонтом, прежде чем выполнять его на разделе.
Для этого вам понадобится приличный размер USB или внешний жесткий диск. Начните с установки USB-накопителя - мой USB был расположен по адресу /dev/sdb1
, ваш может быть назван по-другому.
mkdir -p /mnt/usb
mount /dev/sdb1 /mnt/usb
После подключения запустите xfs_metadump
для создания копии метаданных раздела на USB-накопителе - опять ваш уязвимый раздел может отличаться. В этом случае у меня был поврежденный корневой раздел, расположенный по адресу /dev/mapper/centos-root
:
xfs_metadump /dev/mapper/centos-root /mnt/usb/centos-root.metadump
Затем вы захотите восстановить метаданные в изображение, чтобы мы могли выполнить восстановление и измерить ущерб.
xfs_mdrestore /mnt/usb/centos-root.metadump /mnt/usb/centos-root.img
Я обнаружил, что режим xfs_mdrestore
восстановления недоступен, и вместо этого вам нужно находиться в режиме восстановления живого компакт-диска CentOS.
Наконец, мы можем выполнить ремонт изображения:
xfs_repair -L /mnt/usb/centos-root.img
После того, как ремонт завершен, и вы оценили выход и потенциальный ущерб, вы можете определить, хотите ли вы выполнить ремонт в отношении раздела.
Чтобы запустить восстановление для раздела, просто запустите:
xfs_repair -L /dev/mapper/centos-root
Не забудьте проверить и другие разделы на наличие повреждений. После ремонта перезагрузите систему, и вы сможете успешно загрузиться.
Помните, что -L
флаг следует использовать в качестве крайней меры, когда нет других возможных вариантов ремонта.
Я обнаружил, что эти онлайн-статьи помогли: