Некоторые простые обходные пути без изменения командной строки:
ssh-agent
, если ключевой файл защищен паролем) вместо аутентификации паролем для SSH. В любом случае это обычно хорошая идея. ssh -o ControlMaster = yes -M -f sleep 999999
), затем запустите копию в подчиненном соединении, которое не требует аутентификации. См. Пример Получить указание команды ssh . sudo true
непосредственно перед выполнением этой команды. По умолчанию sudo кэширует информацию о том, что он проверил ваш пароль в течение 15 минут (по крайней мере, если вы делаете это на том же терминале, это зависит от конфигурации). Если вам действительно нужно ввести оба пароля в команде из-за необычно строгой конфигурации, вы можете использовать именованный канал для разделения команд:
mkfifo pipe
ssh user@hostip cat /dev/sda >pipe
# and in another terminal
sudo sh -c 'cat >/dev/sdc'
Я не эксперт по mdadm, но, предполагая необработанные данные только со смещением, вы правы, поскольку вы можете изменить таблицу разделов для доступа к разделу как таковому. Вероятно, вам нужно удалить раздел, а затем создать новый раздел в нужном месте. MBR является автономным, никакие данные не будут записаны в сам раздел (, это верно только для первичных разделов ).
Альтернативно, вы можете обернуть блочное устройство петлевым устройством, начиная с заданного смещения. Сообщается, что смещение составляет 2048 секторов, что эквивалентно 2048 · 512 = 1048576 байт.
offset=1048576
losetup -f /dev/sdb3 -o $offset
Затем смонтируйте только что созданное блочное устройство контура (, обычно/dev/loop0
).
Или используя крепление напрямую:
mount -o loop,ro,offset=$offset /dev/sdb3 /mountpoint
(ro
добавлено по соображениям безопасности во время экспериментов.)