FS#18232 - [udev] post_install: mknod fails to create basic char devices if the files exist.
Attached to Project:
Arch Linux
Opened by Jonathan Frazier (wide-eye) - Monday, 08 February 2010, 11:56 GMT
Last edited by Tobias Powalowski (tpowa) - Wednesday, 24 November 2010, 15:10 GMT
Opened by Jonathan Frazier (wide-eye) - Monday, 08 February 2010, 11:56 GMT
Last edited by Tobias Powalowski (tpowa) - Wednesday, 24 November 2010, 15:10 GMT
|
Details
Description:
in udev.install mknod will fail to create /dev/{null,console,zero} if one of the files exists because mknod does not replace existing files. this occurs for /dev/null during an install with pacman -S base -r /mnt/: ( 53/108) installing udev [##########################################################################################################] 100% sh: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8) mknod: `/dev/null': File exists this results in an error at boot as /dev/null is not a special file and cannot be written to: /etc/rc.d/functions: line 34: /dev/null: Read-Only file system Additional info: udev 151-2 Steps to reproduce: install a system with pacman -S base -r /mnt and examine /mnt/dev/null or test the logic of post_install() when /dev/null has been created by previously run install scripts: $ touch null $ [ -c null ] || mknod -m644 null c 1 3 mknod: `null': File exists $ ls -la null -rw-r--r-- 1 root root 0 Feb 8 06:08 null null should be: "crw-r--r-- root root 1, 3" |
This task depends upon
Closed by Tobias Powalowski (tpowa)
Wednesday, 24 November 2010, 15:10 GMT
Reason for closing: Fixed
Additional comments about closing: udev-164-1
Wednesday, 24 November 2010, 15:10 GMT
Reason for closing: Fixed
Additional comments about closing: udev-164-1
attached is a diff of the pacman output for two installs, with and without proc, sys, and dev mounted. and a diff -ur of the two install directories. the install timestamp differences from pacman.log and pacman db have been removed.
We could move the post_install from udev to filesystem. Or/And we could make the procedure more robust.