Как я могу сделать копию файла устройства / сокета - PullRequest
3 голосов
/ 08 декабря 2010

Я могу знать inode устройства / сокета со stat, поэтому кажется, что я могу как-то «скопировать» этот файл для резервного копирования.Конечно, решение «дд», но я понятия не имею, что я могу сделать, если устройство бесконечное (как случайное).А можно как-нибудь просто скопировать инод?

Ответы [ 4 ]

5 голосов
/ 08 декабря 2010

Они называются «специальными файлами» или «специальными узлами».Копирование их содержимого не имеет смысла, так как содержимое генерируется ядром так или иначе программно по мере необходимости.

Программы, такие как "tar", знают, как копировать содержимое inode, которое будет ссылаться нак той части ядра, которая поддерживает каждый из этих разных узлов.Более подробную информацию смотрите в документации команды "mknod".

1 голос
/ 23 сентября 2017

И если вам нужен однострочный для копирования узлов устройства с помощью tar, вот он:

cd /dev && tar -cpf- sda* | tar -xf- -C /some/destination/path/
0 голосов
/ 11 июня 2015

Вы можете скопировать из рабочей системы, как показано ниже, в какое-то общее местоположение между машинами и скопировать из общего расположения в другую систему.

Аппарат A

cp -rf /dev/SRC shared_directory

Аппарат B

cp -rf shared_directory /dev/
0 голосов
/ 28 марта 2013

Выяснили старший и младший номер файла устройства, который нужно скопировать, затем используйте mknod для создания файла устройства с тем же основным и младшим номером.Основной номер используется для доступа программы к таблице переключателей устройств ядра и вызова соответствующей функции ядра (обычно это диск устройства).Младший номер используется в качестве параметра для вызова этих функций (например, различной плотности, диска, .... и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...