Могу ли я изменить размер reiserfs с неработающего тома LVM?
Некоторое время назад я вытащил несколько запасных частей, чтобы настроить тест для backuppc. Два больших жестких диска были объединены в один том с LVM. Спустя несколько месяцев кажется, что вторая поездка идет / испортилась. В последний раз, когда я проверял, данные, которые у меня есть, поместились бы на первом диске, если бы я смог убедить файловые системы изменить размер.
Я настроил файловую систему как reiserfs, следуя некоторым сообщениям, что она хорошо работала для backuppc. Я начал использовать resierfsck, чтобы увидеть, насколько велик ущерб, включая попытки --rebuild-tree
со списком плохих блоков (из программы badblocks). Но каждый раз, когда я запускаю, он обнаруживает новый неисправный блок и останавливается, так что похоже, что диск - безнадежная причина.
resize_resierfs
говорит мне, что мне нужно бежать reiserfsck --check
во-первых, даже с -f
, Это, в свою очередь, говорит мне, что он не может работать из-за неполного --rebuild-tree
,
По крайней мере, данные являются только резервными копиями, поэтому при запуске с нуля не будет потеряно ничего жизненно важного, достаточно много времени для загрузки начальных резервных копий.
5 ответов
То, что вы действительно пытаетесь сделать, - это извлечь логический том из этого диска, и для этого лучше всего перенести физические экстенты на другой диск. Невозможно предсказать, откуда появится свободное пространство, если вы просто измените размер файловой системы.
Предполагая, что неисправный диск /dev/sdb
и новый диск /dev/sdc
вот процедура:
Подготовьте новый диск
pvcreate /dev/sdc
добавить его в группу томов
vgextend myvolumegroup /dev/sdc
переместить данные на новый диск
pvmove /dev/sdb /dev/sdc
примечание: pvmove работает медленно, поэтому вы можете захотеть сделать
pvmove -v /dev/sdb /dev/sdc
вместо.
Использование pvmove
переместить все экстенты для этого LV на другие PV в VG.
С исправными дисками упражнение по удалению одного из VG выглядит следующим образом: (я предполагаю, что у вас один LV, охватывающий оба диска)
- изменить размер файловой системы
- изменить размер LV
- pvmove
- vgreduce
но ваша главная проблема, кажется, в том, что шаги 1 и 3 действительно не понравятся дисковым ошибкам.
в прошлом единственный способ восстановить данные из тома reiserfs с поврежденными секторами был ddrescue
, все "рискованные" инструменты reiserfs ошибаются на безопасной стороне: при первой ошибке на диске вся операция отменяется. с ddrescue я мог бы просто скопировать на хорошее устройство и продолжить с reiserfsck.
Я согласен, что диск кажется безнадежным. Ваш подход (сжатие файловой системы, сокращение LV, удаление плохого диска) также кажется нормальным.
Это может (и я имею в виду, что все ставки на сбойном диске отключены):
- Получите другой диск, по крайней мере такой же большой, как и неисправный.
- Добавьте его в группу томов (pvcreate, vgextend).
- Переместите LV с неисправного диска (pvmove).
Это будет работать на уровне PE/ блока, минуя файловую систему. Но вы получаете ошибки чтения, поэтому я не знаю, сработает ли это или нет.
Каждая программа изменения размера раздела (gparted, Partition Magic и т. Д.), Которую я когда-либо использовал, выполняет проверку работоспособности файловой системы перед внесением каких-либо изменений. Если никто не знает о приложении, которое не поддерживает и все еще поддерживает reiserfs, лучше всего начинать с нуля. Любой другой путь, о котором я могу подумать, был бы намного больше работы и занял бы намного больше времени.
В противном случае вы можете попробовать переназначить все поврежденные блоки с помощью инструментов файловой системы, но если диск действительно работает быстро, они могут появиться быстрее, чем вы можете переназначить их.