Будет ли загружаться модуль ядра при отсутствии функции инициализации?

К сожалению, самое худшее, что вы можете сделать, это использовать rsyncв NFS. (Или в любую удаленную файловую систему, смонтированную в локальной системе. )Это отключает почти все улучшения эффективности, для которых известно rsync.

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

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

  1. Быстрый дамп. В этом примере вообще не используется аутентификация или шифрование. Однако он применяет сжатие, которое можно удалить, опустив оба флага -z:

    .

    Запустите это на целевом компьютере, чтобы запустить прослушивающий сервер:

    cd /path/to/destination && nc -l 50505 | pax -zrv -pe
    

    Запустите это на исходном компьютере, чтобы запустить клиент-отправитель:

    cd /path/to/source && pax -wz. | nc destination_server 50505
    

    Некоторые версии nc -lмогут требовать, чтобы порт был указан с флагом, например nc -l -p 50505. Версия OpenBSD на Debian (nc.openbsd, связанная через /etc/alternativesс /bin/nc), этого не делает.

  2. Медленная передача. В этом примере используется rsyncвместо ssh, что обеспечивает аутентификацию и шифрование. Не пропустите косую черту(/)в исходном пути. Опустите флаг -z, если вы не хотите сжатия :

    .
    rsync -avzP /path/to/source/ destination_server:/path/to/destination
    

Возможно, вам потребуется настроить сертификаты SSH, чтобы разрешить вход на целевой _сервер с правами root. Добавьте флаг -H, если вам нужно обрабатывать жесткие ссылки.

0
21.09.2020, 21:03
1 ответ

Модули не должны иметь функцию инициализации,do_init_moduleобрабатывает ее отсутствие:

        /* Start the module */
        if (mod->init != NULL)
                ret = do_one_initcall(mod->init);

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

Когда модули встроены -, функции инициализации становятся __initcallфункциями, которые идентифицируются во время компоновки; их отсутствие также не вызывает никаких проблем.

1
18.03.2021, 23:03

Теги

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