Как отключить/переопределить автоматическое монтирование tmpfs в /tmp с помощью systemd?

Когда вы записываете файл на блочное устройство, используйте ddс oflag=direct. При этом используются записи O _DIRECT, что позволяет избежать использования ОЗУ в качестве кэша обратной записи. Обратите внимание, что для получения хорошей производительности oflag=directобычно требуется большой размер блока.

Это позволит избежать невероятно быстрого прогресса, если только у вас нет странного устройства, которое само имеет очень большой кэш ОЗУ .

Многие устройства имеют небольшой объем кэш-памяти. В этом случае oflag=directпокажет реалистичную скорость прогресса. Это более осмысленно, но не говорит вам всего, что вы хотите знать :-). Это не гарантирует, что последние записи будут завершены, когда ddскажет, что они завершены. Вы можете убедиться, что все записи завершены -, а также проверить наличие ошибок записи -с помощью опции conv=fsync. Это вызывает fsync ()в конце, чтобы убедиться, что кеш очищен. Вот пример:

dd if=my.iso of=/dev/sdc oflag=direct bs=4M status=progress conv=fsync

Некоторые люди после этого запускают команду syncи по понятным причинам не удосуживаются запомнить conv=fsync. Это не так хорошо. syncне будет сообщать о сбое одной из операций записи.

Если у устройства очень большой кэш ОЗУ, вам придется использовать oflag=direct,sync. Но обычно я думаю о oflag=syncкак о потенциальном барьере для производительности. Возможно, вы захотите еще больше увеличить размер блока, чтобы уменьшить частоту очистки кеша. При очень синхронном вводе-выводе и одновременном чтении нескольких аппаратных блоков вы можете захотеть использовать двойную буферизацию -для поддержания хорошей производительности, т.е.используя вторую команду dd, как показано в ссылке ниже.

Иногда вы также можете захотеть передать образ диска из другой программы, например gunzip. В этом случае хорошая производительность также зависит от iflag=fullblockи передачи через другую команду dd. В ответе есть полный пример :. Почему конвейер gunzip в dd замедляется в конце?

0
28.02.2021, 20:44
1 ответ

Я думаю, что systemctl mask tmp.mountдолжен помочь вам :это отключит устройство, создав символическую ссылку на /dev/nullв /etc, что предотвратит его повторное -включение при обновлении. Это также предотвратит запуск агрегата вручную :

.
# systemctl mask tmp.mount
Created symlink /etc/systemd/system/tmp.mount → /dev/null.
1
18.03.2021, 22:27

Теги

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