Во время обновления до версии 12.04 сегодня у меня возникла ошибка при запуске post-install hook для resolvconf
пакета:
Setting up resolvconf (1.63ubuntu11) ...
resolvconf.postinst: Error: Cannot replace the current /etc/resolv.conf with a symbolic link because it is immutable. To correct this problem, gain root privileges in a terminal and run 'chattr -i /etc/resolv.conf' and then 'dpkg --configure resolvconf'. Aborting.
Ну, конечно, я попробовал запустить chattr -i /etc/resolv.conf
, но dpkg --configure resolvconf
выдал ту же ошибку.
Я попытался переместить или удалить файл вручную, но не могу сделать этого даже как root:
sudo mv /etc/resolv.conf /etc/resolv.conf.old
mv: cannot move `/etc/resolv.conf' to `/etc/resolv.conf.old': Operation not permitted
sudo rm /etc/resolv.conf
rm: cannot remove `/etc/resolv.conf': Operation not permitted
Я могу создать и затем удалить файл в /etc (как root), поэтому корневой раздел не монтируется только для чтения или что-то в этом роде. Также:
lsattr /etc/resolv.conf
-----a--------- /etc/resolv.conf
решение1
В моем случае, это неизменяемый атрибут файла, вызывающий его. Так что делайтеsudo chattr -a -i /etc/resolv.conf
решение2
согласно файлам справки ( man chattr
),
A file with the `a' attribute set can only be open in append mode for writing.
В вашем случае файл имеет такой атрибут
The operator `+' causes the selected attributes to be added to the
existing attributes of the files; `-' causes them to be removed;
Итак, команда попробовать будет
sudo chattr -a /etc/resolv.conf
и попробуйте перечислить атрибуты еще раз, используя
lsattr /etc/resolv.conf
Затем попробуйте удалить файл.