Вы можете попробовать с awk
:
awk '{ s = 0; for (i = 2; i <= NF; i++) s += $i; print $1, (NF > 1) ? s / (NF - 1) : 0; }' file
результат:
1 15
2 25
Была та же проблема: диск, который вот-вот умрет,
с разделом NTFS, который я хотел сначала спасти и исправить после
(до диск полностью ушел).
Удалось решить эту проблему с помощью ntfsclone :
/ dev / sdaX
, / dev / sdbX
) ntfsclone --force --ignore-fs-check --rescue --overwrite NEW-part OLD-part
NEW-part
и OLD-part
с именами из шага '4.' - / dev / sd ...
) - когда закончите -
РЕДАКТИРОВАТЬ:
- ПРИМЕЧАНИЕ -
Неисправный (нестабильный) блок питания может привести к сбою контроллеров дисков,
, и вероятность их выхода из строя гораздо выше, чем у дисков, поэтому лучше проверить и это.
Вы можете столкнуться с поведением, что все работает нормально в течение нескольких минут
(или секунд), а затем система начинает сходить с ума, как только она нагревается, буквально .
(установка блока питания, конечно, не восстановит потерянные данные, но предотвратит их потерю)
Конечно, вы можете попытаться восстановить раздел NTFS на исходном диске, но я не могу рекомендовать это делать, так как проблемы могут быть вызваны отказом оборудования, и восстановление может привести к неполадкам. худший.
Сначала создайте блок для копирования блока с помощью ddrescue в файл. Если есть какие-то блоки, которые нельзя скопировать ddrescue
продолжит работу с остальной частью диска.
Если ddrescue
не находит плохих блоков, вы можете попробовать использовать программу для восстановления файла (смонтированную через loopback).Если есть проблемы с диском SCSI или вы просто хотите быть уверены, что сможете начать с нуля, сделайте копию своего файла и попробуйте восстановить файловую систему NTFS на второй копии. Поскольку копирование диска с ошибками может занять много времени, возможно, вам придется прервать процесс (потому что вам нужен компьютер, чтобы дать диску остыть или перезапустить прошивку диска).
Вот почему, по моему опыту, ddrescue
намного лучше в проблемных случаях, чем dd
с conv = noerror
. ddrescue
ведет журнал о том, что он сделал, и перезапускается на основе этой информации, функция недоступна для dd
. ddrescue
также умнее читает блоки, начиная с конца, если обнаруживает проблемную область. Он намного быстрее достигнет состояния копирования образа, которое вы можете использовать в качестве основы для проверки файловой системы (и вы можете продолжить ddrescue
исходную копию). Вы можете сделать что-то подобное с помощью dd
, только если вы готовы потратить много времени на вычисление смещений вручную.
Вы также можете скопировать файл в NTFS-раздел нужного размера, поместить диск в машину с Windows и использовать оттуда собственные инструменты восстановления.
Я бы попытался восстановить диск с помощью HDAT (бесплатная программа) или, возможно, Spinrite (коммерческая). Я использовал оба этих инструмента для восстановления дисков, которые вышли из строя, и оба они хорошо работали в прошлом.
Я не ожидаю, что вы продвинетесь слишком далеко в своих усилиях по восстановлению, пока диск не будет в рабочем состоянии. После очистки диска я бы использовал Clonezilla , чтобы как можно быстрее скопировать его на альтернативный жесткий диск.
Я чувствую, что этот вопрос должен иметь рабочий пример, так что вот как я использовал ddrescue
0) Установил замену диска идентичного размера (и марки) по гарантии и переместил старый диск во второй слот
1) Я использовал загрузочный диск ubuntu
Я попробовал простой вариант, но он сразу выдал много ошибок и завис
dd if=/dev/sdb of=/dev/sda bs=512 conv=noerror,sync
root@ubuntu:~# dd if=/dev/sdb of=/dev/sda bs=512 conv=noerror,sync
dd: error reading ‘/dev/sdb’: Input/output error
57496+0 records in
57496+0 records out
29437952 bytes (29 MB) copied, 6.02927 s, 4.9 MB/s
dd: error reading ‘/dev/sdb’: Input/output error
57496+1 records in
57497+0 records out
29438464 bytes (29 MB) copied, 8.86693 s, 3.3 MB/s
dd: error reading ‘/dev/sdb’: Input/output error
57496+2 records in
57498+0 records out
29438976 bytes (29 MB) copied, 11.7068 s, 2.5 MB/s
dd: error reading ‘/dev/sdb’: Input/output error
57496+3 records in
57499+0 records out
2) Прочитал эти статьи:
Обратите внимание, что в последней рекомендуется использовать -d
прямой доступ к диску, но я не использовал его
3) Установил ddrescue
sudo apt-get install gddrescue
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
sudo apt-get update
sudo apt-get install gddrescue
man ddrescue
Может также понадобиться (? )
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
4) Наконец запустил (если вы копируете и вставляете, остановитесь, sda - это мой новый диск... обратите внимание и сделайте домашнее задание)
ddrescue -v -r3 /dev/sdb /dev/sda ~/ddrescue.log
Выход:
GNU ddrescue 1.17
About to copy 1000 GBytes from /dev/sdb to /dev/sda
Starting positions: infile = 0 B, outfile = 0 B
Copy block size: 128 sectors Initial skip size: 128 sectors
Sector size: 512 Bytes
Press Ctrl-C to interrupt
rescued: 22555 MB, errsize: 196 kB, current rate: 91815 kB/s
ipos: 22555 MB, errors: 5, average rate: 68975 kB/s
opos: 22555 MB, time since last successful read: 0 s
Copying non-tried blocks...
5) Загрузил windows и снова активировал ... tbc
Добрый день!
Дело в том, насколько поврежден ваш исходный диск. Если он почти испорчен, единственный способ клонировать данные - использовать профессиональные аппаратные средства восстановления данных. Например Atola Insight