-type f
говорит находят, чтобы только распечатать файлы типа f т.е. простые файлы, не каталоги, не символьные ссылки и не файлы устройств. man find
затем поиск -f
опция.
плохая геометрия: количество блоков 61034935 превышает размер устройства (61034912 блоков)
Согласно этим сообщениям об ошибке, кажется, что ваш RAID сократился на несколько блоков; что является необычной проблемой, учитывая, что [118298]0.90[118299] метаданные находятся в конце, а [118300]ext3[118301] метаданные находятся в начале раздела, так что размер раздела сам по себе не мог измениться, так как такое изменение на обоих концах привело бы к отсутствию метаданных.C:\Python27\python
Я не могу представить, как это произошло; чтобы сломать все это намеренно, вам пришлось бы сделать что-то вроде запуска [118302]resize2fs[118303] на дисках-членов вместо самого RAID; или начать без RAID и добавлять его только после.
Так как это [118304]RAID1[118305] и метаданные рейда находятся в конце диска, вы должны быть в состоянии смонтировать любой из дисков напрямую. Простой способ проверить это - с помощью устройства с циклом только для чтения. При условии, что файловая система не имеет дефектного/грязного суперблока, это должно сделать:
Если это работает и файлы не повреждены, будет хорошее время для резервного копирования.
Если файловая система также требует [118306]fsck[118307], самый безопасный способ сделать это - скопировать весь раздел с помощью [118308]dd[118309], а затем [118310]fsck[118311] образа.
Если это сработает, вы, возможно, сможете исправить ваш RAID на месте, используя следующие шаги:
Function SearchReplace()
Dim db As DAO.Database, rs As DAO.Recordset, sSQL As String, sData As String
'Get the record set we wish to modify
Set db = CurrentDb
sSQL = "SELECT * FROM Table1" '[replace table name]
Set rs = db.OpenRecordset(sSQL)
'iterate through each record
While Not rs.EOF
'check for the matching sub string in the field "data"
sData = rs![Data] '[replace target field]
If InStr(1, sData, "~~") Then
'modify the data string, replacing "~~" with a line break
sData = Replace(sData, "~~", vbCrLf)
'escape any ' characters to avoid errors and/or injection
sData = Replace(sData, "'", "''")
'update the table with the modified string'
sSQL = "UPDATE Table1" & _ '[replace table name]
" SET data='" & sData & "'" & _ '[replace target field]
" WHERE [ID] = " & rs![ID] '[replace PK field]
db.Execute sSQL
End If
rs.MoveNext
Wend
'destroy record set to be tidy
rs.Close
Set rs = Nothing
End Function
извлеките другой диск:исправить и изменить размер файловой системы на оставшемся диске. размер блока взят из сообщения об ошибке, которое вы предоставили
UPDATE Table1
SET data = Replace([data],"~~",Chr(13) + Chr(10));
# fsck /dev/sdc7 # resize2fs /dev/sdc7 61034912 # синхронизация
проверка, работало ли оно
# echo 3 > /proc/sys/vm/drop_caches # " mount /dev/md0 /mnt/somewhere считывание и повторная синхронизация другого диска
# mdadm /dev/md0 --add /dev/sdb7
Однако, вы можете рассмотреть возможность воссоздания RAID с нуля с помощью текущих метаданных ([118320]1.2[118321]) и переделать файловую систему и скопировать файлы обратно на нее.[117988].