Это потому, что вы не можете обновлять данные и контрольную сумму атомарно - в какой-то момент в процессе записи они должны быть несовместимы. Это считается плохим.
Установка No_COW для непустого файла в настоящее время невозможна (см. №2).
Вывод таков, что отключение CoW для каждого файла также приводит к потере правильности контрольной суммы такого файла. Это не очень очевидно для нового пользователя Btrfs, и я думаю, что это необходимо добавить в Btrfs wiki .
chattr + C
не может запускать контрольную сумму для экстентов. Вы можете использовать + C только для файла без экстентов.
Таким образом, по определению в этом файле не будет никаких ранее существовавших экстентов с контрольной суммой.
Этот ответ представляет собой резюме, основанное на обсуждении списка рассылки Btrfs .
Я использую псевдоним оболочки:
sc='sudo SYSTEMD_EDITOR=/bin/vi /usr/bin/systemctl'
Тогда просто:
sc edit service-name
Также полезно избегать ввода 7 из 9 символов systemctl
в таких случаях, как restart
и т. д.
Я не терплю Нано и предпочитаю убить комара из пушки.
Я удаляю Nano и помещаю на его место символическую ссылку на vim.
Готово.
Единственные способы, которые сработали для меня, это:
su
или sudo -i
), настройка SYSTEMD_EDITOR=/usr/bin/vim
, затемsystemctl edit <unit>
SYSTEMD_EDITOR
, затемsudo -E systemctl edit <unit>
sudo SYSTEMD_EDITOR=/usr/bin/vim systemctl edit <unit>
Я пытался установить EDITOR
и VISUAL
и SYSTEMD_EDITOR
для bash и zsh, для пользователя и root, но это работало только из корневой оболочки, устанавливая переменную после sudo
или используя sudo с -E
.
Я также отредактировал sudoers (sudo visudo
), чтобы добавить:Defaults env_keep += "SYSTEMD_EDITOR"
Тем не менее, я обнаружил, что переменная не указана в sudo systemctl show-environment
, хотя sudo echo $SYSTEMD_EDITOR
показывает vim.
Я установил переменную с помощью:sudo systemctl set-environment SYSTEMD_EDITOR=/usr/bin/vim
И подтверждено sudo systemctl show-environment
.
Но даже после этого для меня работают только те способы, которые перечислены вверху.