ddrescue возобновляет операцию восстановления для другого файла образа

[1184148] Так как никто еще не опубликовал ни одного, вот несколько решений на Perl:

  • Объяснение
  • Пояснение [1184487]-ne[1184488] означает "Читайте входной файл строка за строкой и применяйте скрипт, переданный [1184489]-e[1184490]". Оператор [1184491]s/foo/bar/[1184492] является оператором замены, он заменит [1184493]foo[1184494] на [1184495]bar[1184496]. В этом случае, замена будет той же, что и в скобках, это [1184497]$1[1184498]. Регекс означает "соответствовать всему до [1184499]con[1184500], затем самая длинная строка до [1184501]=[1184502], а затем захватить все между кавычками". Вывод [1184503] && выведет [1184504] измененную строку только в том случае, если замена прошла успешно.
  • Объяснение
  • Это немного более идиоматическое. Он выведет результат применения той же замены, которая использовалась выше, к каждой строке входного файла ([1184505][1184506]). Просто другой способ записи одного и того же базового подхода.
  • Объяснение

    [1184507]-a[1184508] заставляет [1184509]perl[1184510] вести себя как [1184511]awk[1184512], он автоматически разделяет входную строку на поля (сохраненные в виде массива [1184513]@F[1184514]) на символ(ы), переданный(ые) параметром [1184515]-F[1184516]. Так как я говорю ему разбивать на [1184517]=[1184518] или [1184519]"[1184520], то 5-ое поле будет тем, что мы ищем, и оно будет распечатано только в том случае, если 2-ое поле будет соответствовать [1184521]con[1184522]. В поле [1184523]-l[1184524] к каждому вызову [1184525] печати [1184526] добавляется новая строка (и другие вещи, которые не относятся к делу).

    tell application "iTunes"
        reopen
        activate
    end tell
    

    И вот ещё один [1184527] grep[1184528]. Это выведет все совпадения букв/буквы [1184529][1184530], это корректно работает на вашем примере, но может и не работать на более сложном:

    и чистом shell'е (bash/zsh/ksh):

    Explanation

    The [1184531] while read; do ... ; done

    2
    29.08.2015, 21:12
    1 ответ

    Если вы хотите спасти весь раздел, возможно, было бы лучше, если бы вы выбрали целью весь жесткий диск, а не отдельный файл. Вы могли бы просто указать целевой диск как выходной файл, поэтому:

    ddrescue /dev/baddisk /dev/gooddisk
    

    Это не проблема, если ваш gooddisk больше, после восстановления вы можете решить эту проблему, поиграв с таблицей разделов.

    Другое решение: вместо ext3 используйте ext4. В ext4 максимальный размер файла увеличился до 16 ТБ с 2 ТБ файла ext3. Вы можете очень легко преобразовать ext3 в ext4, на самом деле самый простой способ: просто смонтировать его как раздел ext4.

    Продление: Может, этого будет недостаточно. Вот документ, как вы можете перенести ext3 на ext4. Это относительно просто.

    1
    27.01.2020, 22:20

    Теги

    Похожие вопросы