PostgreSQL kann nicht gestartet werden, wenn es mit Vagrant verwendet wird

PostgreSQL kann nicht gestartet werden, wenn es mit Vagrant verwendet wird

Beim Versuch, PostgreSQL auf einer von Vagrant verwalteten Virtualbox-VM zu starten, tritt der folgende Fehler auf:

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

```

Antwort1

Dies geschieht, wenn sich das Datenverzeichnis von PostgreSQL beispielsweise in einem freigegebenen Vagrant-Ordner befindet /vagrantund der Vagrant-Host Windows ist. In diesem Fall können die Berechtigungen nicht auf die Unix-Art festgelegt werden.

Verschieben Sie diesen Ordner an einen anderen Ort (z. B. in das Home-Verzeichnis des Vagrant-Benutzers), und PostgreSQL wird gestartet.

Lösung gefunden unter:https://gitlab.com/gitlab-org/gitlab-development-kit/issues/20

Antwort2

Der Grund hierfür ist, dass vboxsf keine Dateisystemlinks unterstützt (weder harte noch symbolische). Sie können das Problem reproduzieren, indem Sie einen Host-Ordner in einem VirtualBox-Gast mounten und Folgendes versuchen: ln /path/to/mounted/share/existingfile.txt /some/path/link-to-file.txt

zum Beispiel (mit /var/data als vboxsf-Freigabe gemountet) 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

Hierzu gibt es zahlreiche Tickets auf virtualbox.org (#818,#10085), aber da sie 7 Jahre zurückliegen, kann es noch eine Weile dauern, bis das Problem behoben ist!

verwandte Informationen