Предыстория в моем предыдущем вопросе и мой собственный ответ на него.
В один момент у меня было два частичных образа, созданных ddrescue
: один файл в файловой системе NTFS, а другой в ext4.
Я заметил довольно рано в процессе, что «размер на диске» для обоих изображений был намного меньше, чем общий размер, указывая (если я не ошибаюсь), что эти файлы были записаны как «разреженные», то есть, что пустой данные фактически не были распределены по соответствующим томам, учитывались только те данные, которые уже были спасены. Но я ни разу не использовал ключ -S
в моих командах ddrescue
, который указывает, что выходной файл должен быть записан как «разреженный».
Примечание: в начале я использовал ключ -R
(«реверс»), предполагая, что он сразу выделит весь размер входного жесткого диска (идея заключалась в том, что это приведет к «более чистому» выводу, запись всех данных последовательно на принимающий раздел, чтобы сохранить целостность файла образа, даже если что-то пойдет не так с файловой системой, и мне придется восстановить восстановление…); он действительно увеличил отображаемый размер файла до 931,5 ГБ, но на самом деле «размер на диске» был увеличен только на тот небольшой объем данных, который был скопирован на этом этапе.
Таким образом, главный вопрос будет: как объяснить эту редкость? Почему копия ddrescue
по умолчанию не является последовательной?
Затем, поскольку у меня было два частичных изображения, каждое из которых содержало некоторые действительные данные, отсутствующие в другом, я сделал следующее:
- Я попытался скопировать спасенные области из второго изображения в разделе ext4, отсутствующего в первом изображении, в это первое изображение в разделе NTFS, которое должно было быть очень быстрым, так как оба изображения были на одном здоровом жестком диске емкостью 2 ТБ (Seagate). ST2000DX001 с максимальной скоростью записи, близкой к 200 МБ / с). Но оказалось, что это было очень медленно: всего 660 КБ / с.
- Поэтому я остановился и сделал обратное: я сделал
ddrescue
скопировать спасенные области из первого изображения (в NTFS), отсутствующего во втором изображении, во второе изображение (в ext4). И теперь я получил скорость копирования 43000 КБ / с или 43 МБ / с, что было значительно выше и ближе к нормальной скорости копирования на том же жестком диске этого класса и емкости.
Второй вопрос: может ли это странное поведение быть связано с проблемой производительности, с которой я столкнулся при записи в NTFS? Известно ли, что драйвер NTFS в Linux имеет проблемы с большими «разреженными» файлами?