Нам нужно разделить вашу проблему на две части:
/ dev / sda
. / dev / sdc
Я предполагаю, что блок размером 4 КБ, не восстановленный из / dev / sda, был суперблоком, потому что ваш раздел начинался с 1 МБ (2048 секторов) ), а суперблок начался в +8 секторах раздела (2056 секторов), точно на отметке 2056 сектора, где существует плохой сектор. Предполагается, что REST данных на этом диске не поврежден на 100%.
Проблема с - accept-clean
в целом заключается в том, что вам нужно быть предельно осторожным, чтобы параметры точно соответствовали тому, что использовалось во время создания массива. Изменения в значениях по умолчанию с даты создания вашего массива вторник, 28 августа 17:44:52 2012
являются здесь вашим ВРАГОМ. Версия метаданных, предположение о растровом изображении (устройства размером более 100 ГБ теперь получают их автоматически), макет рейда и т. Д.
Если вы не совсем уверены, я настоятельно рекомендую клонировать ВСЕ 4 диска в другое место (в крайнем случае вы можете даже использовать один диск с 4 разделами каждый по 1 ТБ / 1953122952 секторов) и попытаться повторно -соберите это вместо этого. Поскольку / dev / sda
начинает выходить из строя так же, как / dev / sdc
, и вы, вероятно, купили все свои диски одновременно, возможно, даже две полные копии данных, на случай, если у вас возникнет еще один сбой диска при попытке восстановления (зависит от того, насколько ценными вы считаете свои данные).
Если Предположим, очистка работает с тестовой копией, у вас есть хорошие возможности для перемещения ее в другое место.
Вот вам некоторая справка по сценарию, обобщающая то, что вы дали выше (обратите внимание, что - изучите
отчеты в единицах секторов для некоторых значений, но - создание
принимает единицы измерения KiB).
#!/bin/bash
# Facts we know about your array, from your mdadm -E output.
num_devices=4
num_spares=0
chunk_size=512 # KiB
data_offset=1024 # KiB
drive_size=976561152 # KiB
uuid=87fdc598:a995d0f7:41123bcf:e2760aeb
metadata_ver=1.2
name=itake:0
bitmap=none
original_device_order=(/dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1)
# I assume you recovered:
# /dev/sda to /dev/sde
# /dev/sdc to /dev/sdf
# If not, adjust as needed.
#
# Read all the way to the bottom of my response first, because you
# MIGHT want to use 'missing' in place of /dev/sdf1 initially.
new_device_order=(/dev/sde1 /dev/sdb1 /dev/sdf1 /dev/sdd1)
mdadm --create /dev/md0 \
--level 5 --layout left-symmetric
-n $num_devices -x $num_spares \
--uuid $uuid \
--metadata $metadata_ver \
--chunk $chunk_size
--size $drive_size \
--data-offset $data_offset \
--name $name \
--bitmap $bitmap \
${new_device_order[@]}
Мы знаем, что / dev / sdc
имели поврежденные сектора в середине области данных, и в качестве немного более ядерного варианта вы можете передать отсутствует
вместо / dev / sdf1
во время создания массива, а затем выполните mdadm --add / dev / md0 / dev / sdf1
для принудительной перестройки из другого устройства на / dev / sdf1
.
Теперь нам нужно исправить тот факт, что части / dev / sdc
исчезли, а их место на / dev / sdf
, есть просто обнуленные блоки.
echo repair >/sys/devices/virtual/block/md0/md/sync_action
В конце вы должны его починить, но я не уверен на 100% в поведении, которое будет предпринято для восстановления этих блоков.
Postinst пакета Chrome не делает ничего необычного. Он просто вызывает update-alternatives --install
. Это изменяет ссылку в / etc / alternatives
, только если альтернатива в настоящее время находится в автоматическом режиме, а вновь установленная версия имеет более высокий приоритет, чем текущая настройка.
update-alternatives
не знает и не заботится о том, был ли пакет недавно установлен или обновлен. Скрипт postinst вызывает его во всех случаях. Это желаемое поведение: обновление пакета может изменить приоритет некоторых его альтернатив.
Если альтернатива меняется, единственное объяснение состоит в том, что она уже была в автоматическом режиме раньше. Он мог вернуться в автоматический режим, если вы временно удалили пакет, который включает текущую ручную настройку, то есть если вы временно удалили iceweasel
. С другой стороны, обновление iceweasel
не влияет на ручную настройку, потому что сценарий prerm
для iceweasel
правильно удаляет альтернативу только в том случае, если она была удалена или деконфигурирована нет, если он обновляется.
¹ Обратное неверно: prerm
из google-chrome-stable
содержит ошибку, она безоговорочно устраняет альтернативу, так что если вы обновите пакет и вручную установили альтернативу на / usr / bin / google-chrome-stable
, он вернется в автоматический режим.Опять же, эта ошибка срабатывает только в том случае, если альтернатива была вручную установлена на Chrome, она не влияет на то, что произойдет, если альтернатива была вручную установлена на что-то другое.
Сценарий postinstall, который управляет этим, был упомянут в ответе Жиля; Я покопался и нашел здесь скрипт postinst debian chrome . Раздел, управляющий этим поведением, не изменился с момента его написания в 2013 году, поэтому изменение приоритета исключено.
Я поэкспериментировал со строками update-alternatives --install
из сценария и определил, что сообщение, которое я видел, действительно генерируется только в том случае, если режим ранее был "автоматическим". Я также обнаружил еще одно неочевидное поведение.Если альтернатива находится в «ручном режиме», и символическая ссылка в / etc / alternatives / x-www-browser
затем указывает на другой двоичный файл пользователем, а не использует систему альтернатив, обновить -alternatives
автоматически распознает изменение и продолжит отслеживать конфигурацию (при условии, что двоичный файл также имеет запись в группе ссылок). Но , если для альтернативы установлен «автоматический режим» , ручное перенаправление ссылки приведет к тому, что update-alternatives
больше не будет отслеживать конфигурацию, а переустановка альтернативы приведет к сбросить его на основе приоритета .
Я должен заключить, что я либо ранее изменил это поведение, переустановив «альтернативу» с более низким приоритетом, либо, что более вероятно, вручную создал новую символическую ссылку, не переходя из «автоматического режима». Я скажу, что логика, лежащая в основе приоритета «200», как объяснено в связанном скрипте, совершенно нелепа, поэтому меня не удивит, если я изменил приоритет только из принципа. ; -)