Недавно у меня была повреждена файловая система XFS из-за сбоя питания. (Система CentOS 7). Система не загружалась должным образом.
Я загрузился с аварийного компакт-диска и попробовал xfs_repair
, он сказал мне смонтировать раздел для работы с журналом.
Я смонтировал перегородку и сделал ls
чтобы убедиться, что да, похоже, он там есть. Размонтировал раздел и попробовал xfs_repair
снова и получил то же сообщение.
Что мне делать в этой ситуации? Что-то не так с моим аварийным компакт-диском (аварийный компакт-диск, версия 4.7.1)? Есть ли другая процедура, которую мне следовало использовать?
В итоге я просто восстановил систему из резервных копий (в данном случае это было быстро и легко), но я хотел бы знать, что делать в будущем.
Если вы пытаетесь бежать xfs_repair, получив сообщение об ошибке, предлагающее смонтировать файловую систему для воспроизведения журнала, и после монтирования все еще получая то же сообщение об ошибке, вам может потребоваться выполнить принудительное восстановление (с помощью -L
флаг с xfs_repair
). Этот вариант следует использовать в крайнем случае.
Например, я буду использовать случай, когда у меня был поврежденный корневой раздел в моей установке CentOS 7. При попытке смонтировать раздел я постоянно получал следующее сообщение об ошибке:
mount: mount / dev / mapper / centos-root on / mnt / centos-root failed: структура нуждается в очистке
К сожалению, принудительный ремонт потребует обнуления (уничтожения) журнала перед попыткой ремонта. При использовании этого метода существует вероятность получить больше поврежденных данных, чем предполагалось изначально; однако мы можем использовать соответствующие инструменты 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
flag следует использовать в крайнем случае, когда нет других возможных вариантов ремонта.
Я обнаружил, что эти онлайн-статьи помогли:
У меня была эта ошибка, когда centos 7 плохо останавливалась внутри виртуальной машины kvm:
когда я использую журнал с «journalctl -xe», я обнаружил ошибку при установке:
Затем система завершит семь этапов, а затем перезагрузится, используя
И тогда виртуальная машина centos 7 работает хорошо…
С уважением
Примечание: возможно, у вас / dev / mapper / root другое имя, просмотрите журнал ошибок с помощью journalctl -xe, чтобы найти имя вашего плохо смонтированного устройства