Дублирование жесткого диска

Необходимо указать столбец конца, также:

$ sort -k1,1 text.txt
a       1
a       11
A       1

Заключить страницу справочника вида GNU в кавычки:

   -k, --key=POS1[,POS2]
          start a key at POS1 (origin 1), end it at POS2 (default  end  of
          line)

2
20.12.2011, 22:09
3 ответа

Можно сделать GNU dd покажите, что Вы прогрессируете - для заключения в кавычки страницы справочника:

Отправка USR1 сигнализирует к выполнению 'dd', процесс заставляет ее распечатать статистику ввода-вывода к стандартной погрешности и затем продолжить копировать.

$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid

Schily dd (sdd) имеет подобную опцию и использует SIGQUIT по умолчанию (Ctrl+\).

Относительно Вашего второго вопроса: Да, dd просто копируют все блоки, если используется файловой системой или не - который занимает секунды DEVICE_CAPACITY/TRANSFER_RATE.

Если Вы не хотите копировать блоки неиспользуемого диска, можно использовать tar:

# cd /mnt/sda
# tar -c -f - . | tar -C /mnt/sdb -x -f -

GNU tar также имеет опции синхронизации:

# tar -c -f - . --totals=SIGQUIT | tar -C /mnt/sdb -x -f - \
                                      --totals --totals=SIGQUIT

Таким образом Вы получаете статистику чтения-записи при ударе Ctrl+\ и в конце.

Другая возможность состоит в том, чтобы использовать parted или gparted для копирования файловой системы - который должен быть сделан эффективным способом с файловыми системами, из которых оно имеет достаточно знания. По крайней мере, gparted должен отобразить хорошее графическое диалоговое окно прогресса.

4
27.01.2020, 21:50
  • 1
    я должен буду скопировать все блоки затем, поскольку у меня есть HFS +, NTFS и ext4 разделы на том же диске. –  Naftuli Kay 20.12.2011, 22:45
  • 2
    Ctrl+? Ctrl+\​? Нет, это отправляет SIGQUIT. Нет никакого ключа для SIGHUP. Более легкое, и обычно больше устойчивого способа скопировать файлы в системе Linux cp -a . /mnt/sdb, или rsync -aP . /mnt/sdb если Вы хотите индикатор хода выполнения. –  Gilles 'SO- stop being evil' 21.12.2011, 04:19
  • 3
    @Gilles, да Ctrl+backslash SIGQUIT - перепутал это - я обновлю вопрос. cp -a не является портативным - GNU cp имеет -a но это не находится в POSIX. Корректная реализация cp -a должен работать, а также tar канал (использование по модулю --totals опция) - но почему это должно быть более устойчиво? –  maxschlepzig 21.12.2011, 10:51
  • 4
    @maxschlepzig Моя рекомендация cp -a на основе опыта несколько лет назад, передавая корневые каталоги людей со склонностью к тому, чтобы использовать расширенные функции чего-либо, чего они коснулись между файловыми системами, которые не поддерживались тем же вариантом Unix. GNU cp -a по NFS не вызвал жалобы. tar дросселируемый на файлах с количеством жесткой ссылки> 1, чей путь был> 100 байтов. pax пропущенные названные сокеты и несколько других причуд. Я забываю то, что другие решения я попробовал. Я помню некоторых не сохраняющих времена доступа к файлу, также. –  Gilles 'SO- stop being evil' 21.12.2011, 18:46

Возможно, можно использовать ddrescue /dev/sda /dev/sdb которые поддерживают ошибки и имеют индикатор выполнения

3
27.01.2020, 21:50
  • 1
    Вероятно, нужно -f флаг для GNU ddrescue для перезаписи устройства назначения –  charlesbridge 21.12.2011, 14:30

Я предлагаю, чтобы Вы использовали pv программа (это находится на repos всех дистрибутивов, которые я знаю). Это даст Вам хороший индикатор выполнения.

$dd if=/dev/sda |pv -s 80g |dd of=/dev/sdb

с -s Вы добавляете сумму исходного prtition/disk, Вы - копия ( if в команде dd). Если Вы не поместили бы -s аргумент это просто дает Вам движущуюся панель, чтобы указать, что данные перемещаются, но не дал бы Вам сколько.

конечно, добавьте sudo если Вам нужно.

3
27.01.2020, 21:50
  • 1
    Бесполезное использование cat, дважды: можно просто записать </dev/sda pv -s 80g >/dev/sdb. –  Gilles 'SO- stop being evil' 21.12.2011, 04:16

Теги

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