Browse Source

Change bootscripts to use devtmpfs for /dev.
Move mounting of /dev to mountvirtfs and ensure /dev gets placed in /etc/mtab.
Change fstab and kernel configuration sections to reflect these changes.



git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@9710 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

Bruce Dubbs 13 năm trước cách đây
mục cha
commit
e9ba8aa85f

+ 1 - 0
bootscripts/lfs/init.d/mountfs

@@ -46,6 +46,7 @@ case "${1}" in
       mount -f /proc || failed=1
       mount -f /sys  || failed=1
       mount -f /run  || failed=1
+      mount -f /dev  || failed=1
       (exit ${failed})
       evaluate_retval
 

+ 13 - 2
bootscripts/lfs/init.d/mountvirtfs

@@ -41,14 +41,25 @@ case "${1}" in
 
       if ! mountpoint /proc >/dev/null; then
          log_info_msg2 " ${INFO}/proc"
-         mount -n /proc || failed=1
+         mount -n -o nosuid,noexec,nodev /proc || failed=1
       fi
 
       if ! mountpoint /sys >/dev/null; then
          log_info_msg2 " ${INFO}/sys" 
-         mount -n /sys || failed=1
+         mount -n -o nosuid,noexec,nodev /sys || failed=1
       fi
 
+      if ! mountpoint /dev >/dev/null; then
+         log_info_msg2 " ${INFO}/dev" 
+         mount -n -o mode=0755,nosuid /dev  || failed=1
+      fi
+
+      ln -s /run/shm /dev/shm
+      
+      # Copy the only static device node that Udev >= 155 doesn't
+      # handle to /dev
+      cp -a /lib/udev/devices/null /dev
+
       (exit ${failed})
       evaluate_retval
       exit $failed

+ 0 - 26
bootscripts/lfs/init.d/udev

@@ -43,36 +43,10 @@ case "${1}" in
          /etc/rc.d/init.d/halt stop
       fi
 
-      # 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
-         log_failure_msg2
-         msg="FAILURE:\n\nCannot mount a tmpfs "
-         msg="${msg}onto /dev, this system will be halted.\n\n"
-         msg="${msg}After you press Enter, this system "
-         msg="${msg}will be halted and powered off.\n\n"
-         log_failure_msg "$msg"
-         log_info_msg "Press Enter to continue..."
-         wait_for_user
-         /etc/rc.d/init.d/halt stop
-      fi
-
-      ln -s /run/shm /dev/shm
-
       # 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
       /sbin/udevd --daemon

+ 12 - 0
chapter01/changelog.xml

@@ -37,6 +37,18 @@
 
 -->
 
+    <listitem>
+      <para>2012-01-16</para>
+      <itemizedlist>
+        <listitem>
+          <para>[bdubbs] - Change bootscripts to use devtmpfs for /dev.
+          Move mounting of /dev to mountvirtfs and ensure /dev gets
+          placed in /etc/mtab.  Change fstab and kernel configuration
+          sections to reflect these changes.</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+
     <listitem>
       <para>2012-01-11</para>
       <itemizedlist>

+ 11 - 9
chapter08/fstab.xml

@@ -22,15 +22,17 @@
 <screen><userinput>cat &gt; /etc/fstab &lt;&lt; "EOF"
 <literal># Begin /etc/fstab
 
-# file system  mount-point  type   options         dump  fsck
-#                                                        order
-
-/dev/<replaceable>&lt;xxx&gt;</replaceable>     /            <replaceable>&lt;fff&gt;</replaceable>  defaults        1     1
-/dev/<replaceable>&lt;yyy&gt;</replaceable>     swap         swap   pri=1           0     0
-proc           /proc        proc   defaults        0     0
-sysfs          /sys         sysfs  defaults        0     0
-devpts         /dev/pts     devpts gid=4,mode=620  0     0
-tmpfs          /run         tmpfs  defaults        0     0
+# file system  mount-point  type     options             dump  fsck
+#                                                              order
+
+/dev/<replaceable>&lt;xxx&gt;</replaceable>     /            <replaceable>&lt;fff&gt;</replaceable>    defaults            1     1
+/dev/<replaceable>&lt;yyy&gt;</replaceable>     swap         swap     pri=1               0     0
+proc           /proc        proc     nosuid,noexec,nodev 0     0
+sysfs          /sys         sysfs    nosuid,noexec,nodev 0     0
+devpts         /dev/pts     devpts   gid=4,mode=620      0     0
+tmpfs          /run         tmpfs    defaults            0     0
+devtmpfs       /dev         devtmpfs mode=0755,nosuid    0     0
+
 # End /etc/fstab</literal>
 EOF</userinput></screen>
 

+ 9 - 2
chapter08/kernel.xml

@@ -58,10 +58,17 @@
 
     <para>Configure the kernel via a menu-driven interface. For general
     information on kernel configuration see <ulink
-    url="&hints-root;kernel-configuration.txt"/>.  BLFS has some   information
+    url="&hints-root;kernel-configuration.txt"/>.  BLFS has some information
     regarding particular kernel configuration requirements of packages outside
     of LFS at <ulink
-    url="&blfs-root;view/svn/longindex.html#kernel-config-index"/>:</para>
+    url="&blfs-root;view/svn/longindex.html#kernel-config-index"/>.  </para>
+
+    <note><para>Due to recent changes in <application>udev</application>, be sure to
+    select:</para>
+    
+    <screen role="nodump">Device Drivers  ---&gt;
+  Generic Driver Options  ---&gt;
+     Maintain a devtmpfs filesystem to mount at /dev</screen></note>
 
 <screen role="nodump"><userinput>make LANG=<replaceable>&lt;host_LANG_value&gt;</replaceable> LC_ALL= menuconfig</userinput></screen>
 

+ 2 - 2
general.ent

@@ -1,5 +1,5 @@
-<!ENTITY version "SVN-20120111">
-<!ENTITY releasedate "Jan 11, 2012">
+<!ENTITY version "SVN-20120116">
+<!ENTITY releasedate "Jan 16, 2012">
 <!ENTITY copyrightdate "1999-2012"><!-- jhalfs needs a literal dash, not &ndash; -->
 <!ENTITY milestone "7.1">
 <!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->

+ 1 - 1
packages.ent

@@ -297,7 +297,7 @@
 <!ENTITY less-ch6-du "3.5 MB">
 <!ENTITY less-ch6-sbu "less than 0.1 SBU">
 
-<!ENTITY lfs-bootscripts-version "20111128">                 <!-- Scripts depend on this format -->
+<!ENTITY lfs-bootscripts-version "20120116">                 <!-- Scripts depend on this format -->
 <!ENTITY lfs-bootscripts-size "BOOTSCRIPTS-SIZE KB">         <!-- Updated in Makefile -->
 <!ENTITY lfs-bootscripts-url "&downloads-root;lfs-bootscripts-&lfs-bootscripts-version;.tar.bz2">
 <!ENTITY lfs-bootscripts-md5 "BOOTSCRIPTS-MD5SUM">           <!-- Updated in Makefile -->