среда, 9 января 2008 г.

Static /dev on Gentoo OpenVZ VPS

(в модификации от 28 июля 2008)

В OpenVZ VPS по-умолчанию почему-то не содержит девайсов /dev/random, /dev/urandom.
Недостаток легко устраняется несколькими действиями:

----- СПОСОБ 1:

1) редактируем файл /vz/private/123/etc/conf.d/rc
в нем меняем RC_DEVICES="static"

После этого подразумевается, что все устройства этой VPS в /dev вы создадите руками.
Этим и займемся:
2) mknod --mode 666 /vz/private/123/dev/ptmx c 5 2
3) mkdir /vz/private/123/dev/pts
4) rm -f /vz/private/123/dev/null
mknod --mode 666 /vz/private/123/dev/null c 1 3
5) mknod --mode 444 /vz/private/123/dev/urandom c 1 9
6) mknod --mode 444 /vz/private/123/dev/random c 1 8

Последние два нужно обязательно, но по-отдельности опционально.
Реально можно отказаться от использования /dev/random, если поставить флаг USE="urandom" (справедливо для arp). Но, иной софт может и не понять.

Все это можно делать не останавливая VPS, поскольку делается в папке private.

После изменений перезапускаем:
# vzctl stop 123
# vzctl start 123

----- СПОСОБ 2 (спасибо анонимному читателю за подсказку, этот способ проще и корректнее):

1) редактируем файл /vz/private/123/etc/conf.d/rc
в нем меняем RC_DEVICE_TARBALL="yes"

2) После изменений перезапускаем VPS:
# vzctl stop 123
# vzctl start 123

Внутри самой VPS создаем устройства:
2) mknod --mode 444 /dev/urandom c 1 9
3) mknod --mode 444 /dev/random c 1 8

Теперь при ребуте они будут создаваться автоматически.

-----

Дополнительные ссылки:
http://forum.openvz.org/index.php?t=msg&goto=5140
http://wiki.openvz.org/Physical_to_VE#.2Fdev.2Furandom
http://mlblog.osdir.com/openvz.user/2006-01/index.shtml