Очень сырой путь был бы (Если он работает вообще),
history | grep ssh
Взгляните на вывод smartctl -a /dev/sda
. Если это не кабельная проблема затем, диск может умереть. Если у Вас нет недавнего резервного копирования, необходимо попытаться скопировать содержание блочного устройства (не монтируясь) использующий dd_rescue или dd с соответствующими опциями.
После этого можно попробовать hdparm --write-sector
(всегда забавный эти опции "VERY DANGEROUS"...).
Другая опция состоит в том, чтобы создать устройство DM, которое обходит поврежденные секторы. Это не восстанавливает их содержание, конечно. Необходимо преобразовать смещение sda (134913505) в смещение sda5 (узнайте количество первого сектора sda5 и вычтите его). Давайте предположим, что смещение sda5 12345. Вы создаете блочное устройство, сектор 12345 которого не отображается на sda5, но где-то в другом месте (например, циклическое устройство). Определение устройства (для dmsetup создают) похоже на это:
0 12345 linear /dev/sda5 0
12345 1 linear /dev/loop0 0
12346 99987653 /dev/sda5 12345
# format:
# logical_start_sector num_sectors linear destination_device start_sector
Вы не будете так удачливы, что существует только один поврежденный сектор. Можно планировать столько, сколько Вы хотите (приводящий к нулям поставки устройства DM для тех секторов, но быть перезаписываемым), но вычисление смещения в loop0 может стать забавой. Другая опция состояла бы в том, чтобы использовать виртуальное устройство того же размера для переотображения и использовать или тонкую резервацию памяти или снимок (с небольшим размером блока, 1 сектором, например) нулевого целевого устройства.
Редактирование 1
Циклическое устройство не должно указывать на файл на том же диске (sda), конечно.
Можно загрузиться в режиме восстановления, в котором FS будет смонтирован только для чтения, и скопирует материал.
Для монтирования его только для чтения, не воспроизводя журнал, таким образом, можно получить доступ файлам (Вы, вероятно, потеряете некоторые изменения, которые еще не посвятили себя регулярной фс):
mount -o ro,noload
...
--write-sector
FAR от "опасного". На самом деле это - на самом деле идеальная опция использовать каждый раз, когда определенные поврежденные единственные секторы препятствуют тому, чтобы Вы получили непрерывное необработанное изображение сектора (dd
выручил бы с "Устройством ошибку ввода-вывода"; некоторые HDD даже потребуют к циклу включения и выключения питания, чтобы машина (!) была распознана ОС снова). Однако необходимо знать о сценариях оболочки, если Вы хотите использовать--write-sector
для диапазонов сектора. – syntaxerror 04.12.2014, 19:32