При попытке запустить postgresql на виртуальной машине Virtualbox под управлением Vagrant возникает следующая ошибка:
LOG: could not link file "pg_xlog/xlogtemp.29" to "pg_xlog/000000010000000000000001" (initialization of log file): Operation not permitted
FATAL: could not open file "pg_xlog/000000010000000000000001": No such file or directory
```
решение1
Это происходит, когда каталог данных postgresql находится в общей папке Vagrant ( /vagrant
например), а хост Vagrant — Windows. В этом случае разрешения не могут быть установлены способом unix.
Переместите эту папку в другое место (например, в домашний каталог пользователя vagrant), и postgresql запустится.
Решение найдено по адресу:https://gitlab.com/gitlab-org/gitlab-development-kit/issues/20
решение2
Основная причина этого в том, что vboxsf не поддерживает ссылки файловой системы (ни жесткие, ни символические). Вы можете воспроизвести проблему, смонтировав папку хоста внутри гостевой системы VirtualBox и попытавшись сделать следующее:
ln /path/to/mounted/share/existingfile.txt /some/path/link-to-file.txt
например (с /var/data, смонтированным как общий ресурс vboxsf)
jim@a55a005fc5a5:/~ ln /var/data/foo.txt ~/data/link-to-foo ln: failed to create hard link ‘/users/jim/data/link-to-foo’ => ‘/var/data/foo.txt’: Operation not permitted
На virtualbox.org есть множество тикетов по этому поводу (#818,#10085) но поскольку они вернулись 7 лет назад, может пройти еще немало времени, прежде чем это будет исправлено!