Как добавить HDD в общий сетевой ресурс через SSH в NAS на определенный порт и общий ресурс?

0

псевдокод ниже, но как это сделать? У меня нет места для локального сохранения изображения dd ....

$ sudo dd if=/dev/sda of=/scp -P 12344 potato@10.10.45.44:/volume2/share02/01.dd

Я не знаю, как выполнить или обернуть его локально, чтобы обойти нехватку памяти в системе, которую я пытаюсь создать.

user690375
источник
Если вы пытаетесь скопировать файлы на NAS, почему бы просто не использовать rsync. ddна самом деле это не поможет вам и представляет проблему размера файла, которую вы сейчас рассматриваете.
Hogstrom

Ответы:

0

Если вы можете scp, вы, вероятно, можете бежать catза вами ssh.

sudo dd if=/dev/sda bs=4M | ssh -p 12344 potato@10.10.45.44 'cat > /volume2/share02/01.dd'

Это может быть проблематично, если sudoи то, и sshдругое запрашивает ваши пароли. В этом случае сделайте этот sudoвызов запущенным без пароля ( sudo trueможет быть достаточно только до этого); или sudo su -заранее, так что вы root и не нужны sudoраньше dd; или сделать так, sshчтобы пароль не требовался (используйте аутентификацию на основе ключей).

ddзаписывает на свой стандартный вывод, sshпринимает его и передает на удаленный cat, его вывод перенаправляется на /volume2/share02/01.dd.

Заметки:

  • При чтении /dev/sdaс ddним лучше использовать bs=больше, чем по умолчанию, например bs=4M.
  • Я бы использовал dd status=progress …или pvвместо dd(или, по крайней мере, между ddи ssh:), dd … | pv | ssh …чтобы увидеть прогресс.
  • Помните, что sdaнельзя писать в то время как ddработает. Например, смонтированный sda1(если только для чтения) может сделать изображение несовместимым.
  • Вы можете уменьшить размер изображения. Прочтите этот мой ответ . В вашем случае, после того как вы подготовите целое sda, команда может быть

    pv /dev/sda | gzip -c -9 | ssh -p 12344 potato@10.10.45.44 'cat > /volume2/share02/01.dd.gz'
    
Камиль Мачоровски
источник