Tentando iniciar o postgresql em uma VM Virtualbox gerenciada pelo Vagrant, tenho o seguinte erro:
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
```
Responder1
Isso acontece quando o diretório de dados do postgresql está em uma pasta compartilhada do Vagrant ( /vagrant
por exemplo), e o host do Vagrant é o Windows. Nesse caso, as permissões não podem ser definidas no modo unix.
Mova essa pasta para outro local (o diretório inicial do usuário vagrant, por exemplo) e o postgresql será iniciado.
Solução encontrada em:https://gitlab.com/gitlab-org/gitlab-development-kit/issues/20
Responder2
A causa subjacente para isso é que o vboxsf não suporta links de sistemas de arquivos (nem físicos nem simbólicos). Você pode reproduzir o problema montando uma pasta Host dentro de um convidado do VirtualBox e tentando fazer o seguinte:
ln /path/to/mounted/share/existingfile.txt /some/path/link-to-file.txt
por exemplo (com /var/data montado como um compartilhamento 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
Existem vários ingressos para isso em virtualbox.org (#818,#10085), mas como eles remontam a 7 anos, pode demorar mais um pouco até que seja consertado!