<link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
"text/css" media="print" />
</head>
- <body class="lfs" id="lfs-6.8">
+ <body class="lfs" id="lfs-7.2">
<div class="navheader">
<h4>
- Linux From Scratch - Version 6.8
+ Linux From Scratch - Version 7.2
</h4>
<h3>
- 付録 D. ブートスクリプトと sysconfig スクリプト version-20100627
+ 付録 D. ブートスクリプトと sysconfig スクリプト version-20120901
</h3>
<ul>
<li class="prev">
</li>
<li class="up">
<a accesskey="u" href="scripts.html" title=
- "付録 D. ブートスクリプトと sysconfig スクリプト version-20100627">上に戻る</a>
+ "付録 D. ブートスクリプトと sysconfig スクリプト version-20120901">上に戻る</a>
</li>
<li class="home">
<a accesskey="h" href="../index.html" title=
- "Linux From Scratch - Version 6.8">ホーム</a>
+ "Linux From Scratch - Version 7.2">ホーム</a>
</li>
</ul>
</div>
<pre class="screen">
#!/bin/sh
########################################################################
-# Begin $rc_base/init.d/udev
+# Begin udev
#
# Description : Udev cold-plugging script
#
# Authors : Zack Winkles, Alexander E. Patrakov
+# DJ Lucas - dj@linuxfromscratch.org
+# Update : Bruce Dubbs - bdubbs@linuxfromscratch.org
#
-# Version : 00.02
-#
-# Notes :
+# Version : LFS 7.0
#
########################################################################
-. /etc/sysconfig/rc
-. ${rc_functions}
+### BEGIN INIT INFO
+# Provides: udev $time
+# Required-Start:
+# Should-Start: modules
+# Required-Stop:
+# Should-Stop:
+# Default-Start: S
+# Default-Stop:
+# Short-Description: Populates /dev with device nodes.
+# Description: Mounts a tempfs on /dev and starts the udevd daemon.
+# Device nodes are created as defined by udev.
+# X-LFS-Provided-By: LFS
+### END INIT INFO
-case "${1}" in
- start)
- boot_mesg "Populating /dev with device nodes..."
- if ! grep -q '[[:space:]]sysfs' /proc/mounts; then
- echo_failure
- boot_mesg -n "FAILURE:\n\nUnable to create" ${FAILURE}
- boot_mesg -n " devices without a SysFS filesystem"
- boot_mesg -n "\n\nAfter you press Enter, this system"
- boot_mesg -n " will be halted and powered off."
- boot_mesg -n "\n\nPress Enter to continue..." ${INFO}
- boot_mesg "" ${NORMAL}
- read ENTER
- /etc/rc.d/init.d/halt stop
- fi
+. /lib/lsb/init-functions
- # Mount a temporary file system over /dev, so that any devices
- # made or removed during this boot don't affect the next one.
- # The reason we don't write to mtab is because we don't ever
- # want /dev to be unavailable (such as by `umount -a').
- if ! mountpoint /dev > /dev/null; then
- mount -n -t tmpfs tmpfs /dev -o mode=755
- fi
- if [ ${?} != 0 ]; then
- echo_failure
- boot_mesg -n "FAILURE:\n\nCannot mount a tmpfs" ${FAILURE}
- boot_mesg -n " onto /dev, this system will be halted."
- boot_mesg -n "\n\nAfter you press Enter, this system"
- boot_mesg -n " will be halted and powered off."
- boot_mesg -n "\n\nPress Enter to continue..." ${INFO}
- boot_mesg "" ${NORMAL}
- read ENTER
- /etc/rc.d/init.d/halt stop
- fi
+case "${1}" in
+ start)
+ log_info_msg "Populating /dev with device nodes... "
+ if ! grep -q '[[:space:]]sysfs' /proc/mounts; then
+ log_failure_msg2
+ msg="FAILURE:\n\nUnable to create "
+ msg="${msg}devices without a SysFS filesystem\n\n"
+ msg="${msg}After you press Enter, this system "
+ msg="${msg}will be halted and powered off.\n\n"
+ log_info_msg "$msg"
+ log_info_msg "Press Enter to continue..."
+ wait_for_user
+ /etc/rc.d/init.d/halt stop
+ fi
- # Udev handles uevents itself, so we don't need to have
- # the kernel call out to any binary in response to them
- echo > /proc/sys/kernel/hotplug
+ # Udev handles uevents itself, so we don't need to have
+ # the kernel call out to any binary in response to them
+ echo > /proc/sys/kernel/hotplug
- # Copy the only static device node that Udev >= 155 doesn't
- # handle to /dev
- cp -a /lib/udev/devices/null /dev
+ # Start the udev daemon to continually watch for, and act on,
+ # uevents
+ /lib/udev/udevd --daemon
- # Start the udev daemon to continually watch for, and act on,
- # uevents
- /sbin/udevd --daemon
+ # Now traverse /sys in order to "coldplug" devices that have
+ # already been discovered
+ /sbin/udevadm trigger --action=add --type=subsystems
+ /sbin/udevadm trigger --action=add --type=devices
- # Now traverse /sys in order to "coldplug" devices that have
- # already been discovered
- /sbin/udevadm trigger --action=add
+ # Now wait for udevd to process the uevents we triggered
+ /sbin/udevadm settle
- # Now wait for udevd to process the uevents we triggered
- /sbin/udevadm settle
- evaluate_retval
+ # If any LVM based partitions are on the system, ensure they
+ # are activated so they can be used.
+ if [ -x /sbin/vgchange ]; then /sbin/vgchange -a y >/dev/null; fi
- ;;
+ log_success_msg2
+ ;;
- *)
- echo "Usage ${0} {start}"
- exit 1
- ;;
+ *)
+ echo "Usage ${0} {start}"
+ exit 1
+ ;;
esac
-# End $rc_base/init.d/udev
+exit 0
+
+# End udev
</pre>
</div>
<div class="navfooter">
</li>
<li class="up">
<a accesskey="u" href="scripts.html" title=
- "付録 D. ブートスクリプトと sysconfig スクリプト version-20100627">上に戻る</a>
+ "付録 D. ブートスクリプトと sysconfig スクリプト version-20120901">上に戻る</a>
</li>
<li class="home">
<a accesskey="h" href="../index.html" title=
- "Linux From Scratch - Version 6.8">ホーム</a>
+ "Linux From Scratch - Version 7.2">ホーム</a>
</li>
</ul>
</div>