Я предполагаю, что вы используете файловую систему ext4
:Вы можете изменить размер зарезервированного пространства с помощью tune2fs
. Следующая командная строка уменьшает зарезервированное пространство до 1% (с 5% )по умолчанию.
sudo tune2fs -m 1 /dev/sdxn
где x — буква диска, а n — номер раздела (раздела с файловой системой ext
).
Изman tune2fs
:
-m reserved-blocks-percentage
Set the percentage of the filesystem which may only be allocated
by privileged processes. Reserving some number of filesystem
blocks for use by privileged processes is done to avoid filesys‐
tem fragmentation, and to allow system daemons, such as sys‐
logd(8), to continue to function correctly after non-privileged
processes are prevented from writing to the filesystem. Nor‐
mally, the default percentage of reserved blocks is 5%.
Вы можете уменьшить размер зарезервированного пространства на диске с данными (, который не так важен, как системный диск ). Но, как описано в руководстве, место зарезервировано для
Итак,Я сказал, что следующим шагом будет написание сценариев. Ну, вот они .
Чтобы объяснить, решение, которое я придумал, состоит из двух основных частей. Шаблон для файла dhcpd.conf. И сценарий для запроса необходимых данных из dhcpcd, их анализа, применения к шаблону, сохранения результата как /var/local/dhcpd6-lan.conf
, затем перезапуска dhcpd для использования новых настроек.
Сценарий использует функцию dhcpcd run -ловушек. По сути, когда dhcpcd делает что-либо, включая получение ответов от восходящего потока, он запускается /etc/dhcpcd.exit-hook
с различными переменными среды, установленными в значения соответствующих параметров конфигурации dhcp. Я просто написал хук для действия DELEGATED6
, которое срабатывает, когда dhcpcd назначает ip из ответа префикса ipv6. Мне пришлось реализовать собственное ведение журнала, потому что хуки dhcpcd -run -подавляют все stderr и stdout из скриптов хуков.
Мне не нравится это решение. Я не буду отмечать это как принятое решение. Я приложил много усилий, чтобы сделать его как можно более прочным, но все еще кажется, что слишком много точек потенциального отказа. На данный момент он выполняет свою работу. Я все еще чувствую, что должен быть лучший способ.
ОБНОВЛЕНИЕ -8 месяцев спустя:
Что ж, похоже, я ошибся. Сценарии, которые я создал, оказались удивительно надежными. Восемь месяцев и ни единой икоты. Сценарии также стали значительно более надежными: убраны некоторые потенциальные угловые случаи, появилась возможность обновлять множество различных файлов конфигурации и простой файл состояния json для отслеживания текущего состояния. Учитывая надежность и надежность этого решения на данный момент, я собираюсь пойти дальше и принять этот ответ. Я могу рассмотреть улучшения с помощью таких инструментов, как envsubst
в будущем.