Bug 39423 - Нет симлинка /dev/fd при загрузке с sysvinit из-за udev >= 246
Summary: Нет симлинка /dev/fd при загрузке с sysvinit из-за udev >= 246
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: startup (show other bugs)
Version: unstable
Hardware: all Linux
: P5 critical
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 33000 39355
  Show dependency tree
 
Reported: 2020-12-10 21:54 MSK by Антон Мидюков
Modified: 2020-12-18 09:01 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Антон Мидюков 2020-12-10 21:54:45 MSK
При загрузке с системой инициализации sysvinit отсутствуют симлинки:
fd -> /proc/self/fd
stderr -> /proc/self/fd/2
stdin -> /proc/self/fd/0
stdout -> /proc/self/fd/1

Проблема началась после обновления udev до версии 246.
Вот здесь
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=967546
пишут, что из-за коммита
https://github.com/systemd/systemd/commit/6b2229c6c60d0486
Comment 1 Speccyfighter 2020-12-11 17:02:43 MSK
Всего сломано пять

# ll /dev/{core,fd,stdin,stdout,stderr}
ls: невозможно получить доступ к '/dev/core': Нет такого файла или каталога
ls: невозможно получить доступ к '/dev/fd': Нет такого файла или каталога
ls: невозможно получить доступ к '/dev/stdin': Нет такого файла или каталога
ls: невозможно получить доступ к '/dev/stdout': Нет такого файла или каталога
ls: невозможно получить доступ к '/dev/stderr': Нет такого файла или каталога

таких симлинков:

# ll /dev/{core,fd,stdin,stdout,stderr} 
lrwxrwxrwx 1 root root 15 дек 11 16:28 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 дек 11 16:28 /dev/stdout -> /proc/self/fd/1
lrwxrwxrwx 1 root root 15 дек 11 16:28 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 13 дек 11 16:28 /dev/fd -> /proc/self/fd/
lrwxrwxrwx 1 root root 11 дек 11 16:28 /dev/core -> /proc/kcore


Пятый увидел тут:
https://fossies.org/dox/systemd-247/dev-setup_8c_source.html

в этом куске кода dev-setup.c:

16 int dev_setup(const char *prefix, uid_t uid, gid_t gid) {
17  static const char symlinks[] =
18  "-/proc/kcore\0" "/dev/core\0"
19  "/proc/self/fd\0" "/dev/fd\0"
20  "/proc/self/fd/0\0" "/dev/stdin\0"
21  "/proc/self/fd/1\0" "/dev/stdout\0"
22  "/proc/self/fd/2\0" "/dev/stderr\0";
23
Comment 2 Speccyfighter 2020-12-12 08:50:58 MSK
Симлинки

/dev/{core,fd,stdin,stdout,stderr}

описаны в секциях Compulsory links и Recommended links:
https://github.com/torvalds/linux/blob/master/Documentation/admin-guide/devices.rst
Comment 3 Alexey Gladkov 2020-12-15 18:19:03 MSK
Раз такое дело, то симлинки можно создать сразу после монтирования /proc.
Comment 4 Repository Robot 2020-12-15 23:30:37 MSK
startup-0.9.9.10-alt1 -> sisyphus:

 Tue Dec 15 2020 Alexey Gladkov <legion@altlinux.ru> 0.9.9.10-alt1
 - rc.sysinit:
   + Create /dev/{core,fd,stdin,stdout,stderr} symlinks if needed (ALT#39423).
Comment 5 Антон Мидюков 2020-12-18 09:01:31 MSK
Спасибо!