Kill MAKEDEV, /stand, and other useless cruft.
Spell out "2."
This commit is contained in:
parent
526168e0dc
commit
b5640145e2
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=28058
1 changed files with 11 additions and 121 deletions
|
|
@ -712,21 +712,13 @@
|
|||
In some cases <command>make buildworld</command> will check to see if
|
||||
these users or groups exist.</para>
|
||||
|
||||
<para>A recent example of this is when the
|
||||
<para>An example of this is when the
|
||||
<username>smmsp</username> user was added. Users had the
|
||||
installation process fail for them when
|
||||
&man.mtree.8; was trying to create
|
||||
<filename>/var/spool/clientmqueue</filename>.</para>
|
||||
|
||||
<para>The solution is to examine
|
||||
<filename>/usr/src/etc/group</filename> and compare its list of
|
||||
groups with your own. If there are any groups in the new file that
|
||||
are not in your file then copy them over. Similarly, you should
|
||||
rename any groups in <filename>/etc/group</filename> which have
|
||||
the same GID but a different name to those in
|
||||
<filename>/usr/src/etc/group</filename>.</para>
|
||||
|
||||
<para>Since 4.6-RELEASE you can run &man.mergemaster.8; in
|
||||
<para>The solution is to run &man.mergemaster.8; in
|
||||
pre-buildworld mode by providing the <option>-p</option> option.
|
||||
This will compare only those files that are essential for the success
|
||||
of <maketarget>buildworld</maketarget> or
|
||||
|
|
@ -779,7 +771,7 @@
|
|||
mode.</para>
|
||||
|
||||
<para>Alternatively, reboot the system, and at the boot prompt,
|
||||
enter the <option>-s</option> flag. The system will then boot
|
||||
select the <quote>single user</quote> option. The system will then boot
|
||||
single user. At the shell prompt you should then run:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>fsck -p</userinput>
|
||||
|
|
@ -920,19 +912,16 @@ Script done, …</screen>
|
|||
|
||||
<screen>&prompt.root; <userinput>make <replaceable>target</replaceable></userinput></screen>
|
||||
|
||||
<para>Beginning with version 2.2.5 of &os; (actually, it was
|
||||
first created on the &os.current; branch, and then retrofitted to
|
||||
&os.stable; midway between 2.2.2 and 2.2.5) the
|
||||
<maketarget>world</maketarget> target has been split in
|
||||
two: <maketarget>buildworld</maketarget> and
|
||||
<maketarget>installworld</maketarget>.</para>
|
||||
<para>Where <replaceable>target</replaceable> will be one of
|
||||
many build options. The first target should always be
|
||||
<makevar>buildworld</makevar>.</para>
|
||||
|
||||
<para>As the names imply, <maketarget>buildworld</maketarget>
|
||||
builds a complete new tree under <filename>/usr/obj</filename>,
|
||||
and <maketarget>installworld</maketarget> installs this tree on
|
||||
and <maketarget>installworld</maketarget>, another target, installs this tree on
|
||||
the current machine.</para>
|
||||
|
||||
<para>This is very useful for 2 reasons. First, it allows you
|
||||
<para>Having separate options is very useful for two reasons. First, it allows you
|
||||
to do the build safe in the knowledge that no components of
|
||||
your running system will be affected. The build is
|
||||
<quote>self hosted</quote>. Because of this, you can safely
|
||||
|
|
@ -958,7 +947,7 @@ Script done, …</screen>
|
|||
|
||||
<screen>&prompt.root; <userinput>make buildworld</userinput></screen>
|
||||
|
||||
<para>It is now possible to specify a <option>-j</option> option to
|
||||
<para>It is possible to specify a <option>-j</option> option to
|
||||
<command>make</command> which will cause it to spawn several
|
||||
simultaneous processes. This is most useful on multi-CPU machines.
|
||||
However, since much of the compiling process is IO bound rather
|
||||
|
|
@ -1164,7 +1153,7 @@ Script done, …</screen>
|
|||
|
||||
<para>After &man.mergemaster.8; is done with the system files you will be
|
||||
prompted for other options. &man.mergemaster.8; may ask if you want to rebuild
|
||||
the password file and/or run &man.MAKEDEV.8; if you run a FreeBSD version prior to 5.0, and will finish up with an option to
|
||||
the password file and will finish up with an option to
|
||||
remove left-over temporary files.</para>
|
||||
</sect3>
|
||||
|
||||
|
|
@ -1182,8 +1171,7 @@ Script done, …</screen>
|
|||
not in <filename>/usr/src/etc</filename>.</para>
|
||||
|
||||
<para>If you are using &man.mergemaster.8; (as recommended),
|
||||
you can skip forward to the <link linkend="update-dev">next
|
||||
section</link>.</para>
|
||||
you can skip this section.</para>
|
||||
|
||||
<para>The simplest way to do this by hand is to install the
|
||||
files into a new directory, and then work through them looking
|
||||
|
|
@ -1329,101 +1317,6 @@ Script done, …</screen>
|
|||
</tip>
|
||||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="update-dev">
|
||||
<title>Update <filename>/dev</filename></title>
|
||||
|
||||
<note>
|
||||
<indexterm><primary>DEVFS</primary></indexterm>
|
||||
<para>If you are running FreeBSD 5.0 or later you can safely
|
||||
skip this section. These versions use &man.devfs.5; to
|
||||
allocate device nodes transparently for the user.</para>
|
||||
</note>
|
||||
|
||||
<para>In most cases, the &man.mergemaster.8; tool will realize when
|
||||
it is necessary to update the device nodes, and offer to complete it
|
||||
automatically. These instructions tell how to update the device
|
||||
nodes manually.</para>
|
||||
|
||||
<para>For safety's sake, this is a multi-step process.</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Copy <filename>/var/tmp/root/dev/MAKEDEV</filename> to
|
||||
<filename>/dev</filename>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cp /var/tmp/root/dev/MAKEDEV /dev</userinput></screen>
|
||||
<indexterm>
|
||||
<primary><filename>MAKEDEV</filename></primary>
|
||||
</indexterm>
|
||||
|
||||
<para>If you used &man.mergemaster.8; to
|
||||
update <filename>/etc</filename>, then your
|
||||
<filename>MAKEDEV</filename> script should have been updated
|
||||
already, though it cannot hurt to check (with &man.diff.1;)
|
||||
and copy it manually if necessary.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Now, take a snapshot of your current
|
||||
<filename>/dev</filename>. This snapshot needs to contain the
|
||||
permissions, ownerships, major and minor numbers of each filename,
|
||||
but it should not contain the time stamps. The easiest way to do
|
||||
this is to use &man.awk.1; to strip out some of the
|
||||
information:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
||||
&prompt.root; <userinput>ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Remake all the device nodes:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>sh MAKEDEV all</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Write another snapshot of the directory, this time to
|
||||
<filename>/var/tmp/dev2.out</filename>. Now look through these
|
||||
two files for any device node that you missed creating. There should
|
||||
not be any, but it is better to be safe than sorry.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>diff /var/tmp/dev.out /var/tmp/dev2.out</userinput></screen>
|
||||
|
||||
<para>You are most likely to notice disk slice discrepancies which
|
||||
will involve commands such as:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>sh MAKEDEV sd0s1</userinput></screen>
|
||||
|
||||
<para>to recreate the slice entries. Your precise circumstances may
|
||||
vary.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Update <filename>/stand</filename></title>
|
||||
|
||||
<note>
|
||||
<para>This step is included only for completeness. It can safely be
|
||||
omitted. If you are using FreeBSD 5.2 or later, the
|
||||
<filename>/rescue</filename> directory is automatically updated
|
||||
for the user with current, statically compiled binaries during
|
||||
<command>make installworld</command>, thus obsoleting the need
|
||||
to update <filename>/stand</filename> (which does not exist at
|
||||
all on &os; 6.0 and later).</para>
|
||||
</note>
|
||||
|
||||
<para>For the sake of completeness, you may want to update the files in
|
||||
<filename>/stand</filename> as well. These files consist of hard
|
||||
links to the <filename>/stand/sysinstall</filename> binary. This
|
||||
binary should be statically linked, so that it can work when no other
|
||||
file systems (and in particular <filename>/usr</filename>) have been
|
||||
mounted.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /usr/src/release/sysinstall</userinput>
|
||||
&prompt.root; <userinput>make all install</userinput></screen>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Rebooting</title>
|
||||
|
|
@ -1572,9 +1465,6 @@ Script done, …</screen>
|
|||
&prompt.root; <userinput>cd /usr/src</userinput>
|
||||
&prompt.root; <userinput>make -DNO_CLEAN all</userinput></screen>
|
||||
|
||||
<note><para>On &os; 5.X and older, use
|
||||
<makevar>-DNOCLEAN</makevar> instead.</para></note>
|
||||
|
||||
<para>This will not undo the work of the previous
|
||||
<command>make buildworld</command>.</para>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue