При попытке запустить 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
`` ''
Это происходит, когда каталог данных postgresql находится в общей папке Vagrant (/vagrant
например), а хост Vagrant - это Windows. В этом случае разрешения не могут быть установлены способом unix.
Переместите эту папку в другое место (например, в домашний каталог бродячего пользователя), и запустится postgresql.
Решение найдено по адресу: https://gitlab.com/gitlab-org/gitlab-development-kit/issues/20
Основная причина этого в том, что 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 лет назад, может пройти еще одно время, прежде чем это будет исправлено!