Whitespace fixes. Translators can ignore them.
This commit is contained in:
parent
158eeecfa8
commit
2d07b07efe
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44961
1 changed files with 178 additions and 149 deletions
|
|
@ -1,14 +1,24 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||||||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
||||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
|
<article xmlns="http://docbook.org/ns/docbook"
|
||||||
<info><title>Remote Installation of the &os; Operating System Without a
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||||
|
xml:lang="en">
|
||||||
|
<info>
|
||||||
|
<title>Remote Installation of the &os; Operating System Without a
|
||||||
Remote Console</title>
|
Remote Console</title>
|
||||||
|
|
||||||
|
<author>
|
||||||
<author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname><affiliation>
|
<personname>
|
||||||
<address><email>danger@FreeBSD.org</email></address>
|
<firstname>Daniel</firstname>
|
||||||
</affiliation></author>
|
<surname>Gerzo</surname>
|
||||||
|
</personname>
|
||||||
|
<affiliation>
|
||||||
|
<address>
|
||||||
|
<email>danger@FreeBSD.org</email>
|
||||||
|
</address>
|
||||||
|
</affiliation>
|
||||||
|
</author>
|
||||||
|
|
||||||
<legalnotice xml:id="trademarks" role="trademarks">
|
<legalnotice xml:id="trademarks" role="trademarks">
|
||||||
&tm-attrib.freebsd;
|
&tm-attrib.freebsd;
|
||||||
|
|
@ -27,25 +37,25 @@
|
||||||
<abstract>
|
<abstract>
|
||||||
<para>This article documents the remote installation of the &os;
|
<para>This article documents the remote installation of the &os;
|
||||||
operating system when the console of the remote system is
|
operating system when the console of the remote system is
|
||||||
unavailable. The main idea behind this article is the result of
|
unavailable. The main idea behind this article is the result
|
||||||
a collaboration with &a.mm.email; with valuable input provided by
|
of a collaboration with &a.mm.email; with valuable input
|
||||||
&a.pjd.email;.</para>
|
provided by &a.pjd.email;.</para>
|
||||||
</abstract>
|
</abstract>
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
<sect1 xml:id="background">
|
<sect1 xml:id="background">
|
||||||
<title>Background</title>
|
<title>Background</title>
|
||||||
|
|
||||||
<para>There are many server hosting providers in the world, but very
|
<para>There are many server hosting providers in the world, but
|
||||||
few of them are officially supporting &os;. They usually provide
|
very few of them are officially supporting &os;. They usually
|
||||||
support for a &linux; distribution to be installed on the servers
|
provide support for a &linux; distribution to be installed on
|
||||||
they offer.</para>
|
the servers they offer.</para>
|
||||||
|
|
||||||
<para>In some cases, these companies will install your preferred
|
<para>In some cases, these companies will install your preferred
|
||||||
&linux; distribution if you request it. Using this option, we will
|
&linux; distribution if you request it. Using this option, we
|
||||||
attempt to install &os;. In other cases, they may offer a rescue
|
will attempt to install &os;. In other cases, they may offer a
|
||||||
system which would be used in an emergency. It is possible to use
|
rescue system which would be used in an emergency. It is
|
||||||
this for our purposes as well.</para>
|
possible to use this for our purposes as well.</para>
|
||||||
|
|
||||||
<para>This article covers the basic installation and configuration
|
<para>This article covers the basic installation and configuration
|
||||||
steps required to bootstrap a remote installation of &os; with
|
steps required to bootstrap a remote installation of &os; with
|
||||||
|
|
@ -56,18 +66,20 @@
|
||||||
<title>Introduction</title>
|
<title>Introduction</title>
|
||||||
|
|
||||||
<para>This section will summarize the purpose of this article and
|
<para>This section will summarize the purpose of this article and
|
||||||
better explain what is covered herein. The instructions included
|
better explain what is covered herein. The instructions
|
||||||
in this article will benefit those using services provided by
|
included in this article will benefit those using services
|
||||||
colocation facilities not supporting &os;.</para>
|
provided by colocation facilities not supporting &os;.</para>
|
||||||
|
|
||||||
<procedure>
|
<procedure>
|
||||||
<step>
|
<step>
|
||||||
<para>As we have mentioned in the <link linkend="background">Background</link> section, many of the
|
<para>As we have mentioned in the <link
|
||||||
reputable server hosting companies provide some kind of rescue
|
linkend="background">Background</link> section, many of
|
||||||
system, which is booted from their <acronym>LAN</acronym> and
|
the reputable server hosting companies provide some kind of
|
||||||
accessible over <application>SSH</application>. They usually
|
rescue system, which is booted from their
|
||||||
provide this support in order to help their customers fix
|
<acronym>LAN</acronym> and accessible over
|
||||||
broken operating systems. As this article will explain, it is
|
<application>SSH</application>. They usually provide this
|
||||||
|
support in order to help their customers fix broken
|
||||||
|
operating systems. As this article will explain, it is
|
||||||
possible to install &os; with the help of these rescue
|
possible to install &os; with the help of these rescue
|
||||||
systems.</para>
|
systems.</para>
|
||||||
<!-- XXXTR: Solaris has a restore command, something like
|
<!-- XXXTR: Solaris has a restore command, something like
|
||||||
|
|
@ -77,10 +89,11 @@
|
||||||
<step>
|
<step>
|
||||||
<para>The next section of this article will describe how to
|
<para>The next section of this article will describe how to
|
||||||
configure, and build minimalistic &os; on the local machine.
|
configure, and build minimalistic &os; on the local machine.
|
||||||
That version will eventually be running on the remote machine
|
That version will eventually be running on the remote
|
||||||
from a ramdisk, which will allow us to install a complete &os;
|
machine from a ramdisk, which will allow us to install a
|
||||||
operating system from an <acronym>FTP</acronym> mirror using
|
complete &os; operating system from an
|
||||||
the <application>sysinstall</application> utility.</para>
|
<acronym>FTP</acronym> mirror using the
|
||||||
|
<application>sysinstall</application> utility.</para>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step>
|
<step>
|
||||||
|
|
@ -110,8 +123,8 @@
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Have the &os; installation <acronym>ISO</acronym> image
|
<para>Have the &os; installation <acronym>ISO</acronym>
|
||||||
or <acronym>CD</acronym> handy</para>
|
image or <acronym>CD</acronym> handy</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
@ -123,28 +136,29 @@
|
||||||
<para>Before &os; may be installed on the target system, it is
|
<para>Before &os; may be installed on the target system, it is
|
||||||
necessary to build the minimal &os; operating system image which
|
necessary to build the minimal &os; operating system image which
|
||||||
will boot from the hard drive. This way the new system can be
|
will boot from the hard drive. This way the new system can be
|
||||||
accessed from the network, and the rest of the installation can be
|
accessed from the network, and the rest of the installation can
|
||||||
done without remote access to the system console.</para>
|
be done without remote access to the system console.</para>
|
||||||
|
|
||||||
<para>The <application>mfsBSD</application> tool-set can be used to
|
<para>The <application>mfsBSD</application> tool-set can be used
|
||||||
build a tiny &os; image. As the name of
|
to build a tiny &os; image. As the name of
|
||||||
<application>mfsBSD</application> suggests (<quote>mfs</quote>
|
<application>mfsBSD</application> suggests (<quote>mfs</quote>
|
||||||
means <quote>memory file system</quote>), the resulting image runs
|
means <quote>memory file system</quote>), the resulting image
|
||||||
entirely from a ramdisk. Thanks to this feature, the manipulation
|
runs entirely from a ramdisk. Thanks to this feature, the
|
||||||
of hard drives will not be limited, therefore it will be possible
|
manipulation of hard drives will not be limited, therefore it
|
||||||
to install a complete &os; operating system. The home page of
|
will be possible to install a complete &os; operating system.
|
||||||
<application>mfsBSD</application>, at <uri xlink:href="http://people.freebsd.org/~mm/mfsbsd/">http://people.freebsd.org/~mm/mfsbsd/</uri>, includes
|
The home page of <application>mfsBSD</application>, at <uri
|
||||||
pointers to the latest release of the toolset.</para>
|
xlink:href="http://people.freebsd.org/~mm/mfsbsd/">http://people.freebsd.org/~mm/mfsbsd/</uri>,
|
||||||
|
includes pointers to the latest release of the toolset.</para>
|
||||||
|
|
||||||
<para>Please note that the internals of
|
<para>Please note that the internals of
|
||||||
<application>mfsBSD</application> and how it all fits together is
|
<application>mfsBSD</application> and how it all fits together
|
||||||
beyond the scope of this article. The interested reader should
|
is beyond the scope of this article. The interested reader
|
||||||
consult the original documentation of
|
should consult the original documentation of
|
||||||
<application>mfsBSD</application> for more details.</para>
|
<application>mfsBSD</application> for more details.</para>
|
||||||
|
|
||||||
<para>Download and extract the latest
|
<para>Download and extract the latest
|
||||||
<application>mfsBSD</application> release and change your working
|
<application>mfsBSD</application> release and change your
|
||||||
directory to the directory where the
|
working directory to the directory where the
|
||||||
<application>mfsBSD</application> scripts will reside:</para>
|
<application>mfsBSD</application> scripts will reside:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>fetch http://people.freebsd.org/~mm/mfsbsd/mfsbsd-latest.tar.gz</userinput>
|
<screen>&prompt.root; <userinput>fetch http://people.freebsd.org/~mm/mfsbsd/mfsbsd-latest.tar.gz</userinput>
|
||||||
|
|
@ -152,28 +166,30 @@
|
||||||
&prompt.root; <userinput>cd <replaceable>mfsbsd-1.0-beta1</replaceable>/</userinput></screen>
|
&prompt.root; <userinput>cd <replaceable>mfsbsd-1.0-beta1</replaceable>/</userinput></screen>
|
||||||
|
|
||||||
<sect2 xml:id="mfsbsd-config">
|
<sect2 xml:id="mfsbsd-config">
|
||||||
<title>Configuration of <application>mfsBSD</application></title>
|
<title>Configuration of
|
||||||
|
<application>mfsBSD</application></title>
|
||||||
|
|
||||||
<para>Before booting <application>mfsBSD</application>, a few
|
<para>Before booting <application>mfsBSD</application>, a few
|
||||||
important configuration options have to be set. The most
|
important configuration options have to be set. The most
|
||||||
important that we have to get right is, naturally, the network
|
important that we have to get right is, naturally, the network
|
||||||
setup. The most suitable method to configure networking options
|
setup. The most suitable method to configure networking
|
||||||
depends on whether we know beforehand the type of the network
|
options depends on whether we know beforehand the type of the
|
||||||
interface we will use, and the network interface driver to be
|
network interface we will use, and the network interface
|
||||||
loaded for our hardware. We will see how
|
driver to be loaded for our hardware. We will see how
|
||||||
<application>mfsBSD</application> can be configured in either
|
<application>mfsBSD</application> can be configured in either
|
||||||
case.</para>
|
case.</para>
|
||||||
|
|
||||||
<para>Another important thing to set is the
|
<para>Another important thing to set is the <systemitem
|
||||||
<systemitem class="username">root</systemitem> password. This can be done by editing
|
class="username">root</systemitem> password. This can be
|
||||||
<filename>conf/rootpw.conf</filename>. Please keep in
|
done by editing <filename>conf/rootpw.conf</filename>. Please
|
||||||
mind that the file will contain your password in the plain text,
|
keep in mind that the file will contain your password in the
|
||||||
thus we do not recommend to use real password here.
|
plain text, thus we do not recommend to use real password
|
||||||
Nevertheless, this is just a temporary one-time password which
|
here. Nevertheless, this is just a temporary one-time
|
||||||
can be later changed in a live system.</para>
|
password which can be later changed in a live system.</para>
|
||||||
|
|
||||||
<sect3>
|
<sect3>
|
||||||
<title>The <filename>conf/interfaces.conf</filename> method</title>
|
<title>The <filename>conf/interfaces.conf</filename>
|
||||||
|
method</title>
|
||||||
|
|
||||||
<para>When the installed network interface card is unknown, we
|
<para>When the installed network interface card is unknown, we
|
||||||
can use the auto-detection features of
|
can use the auto-detection features of
|
||||||
|
|
@ -188,8 +204,9 @@ initconf_mac_ext1="00:00:00:00:00:00"
|
||||||
initconf_ip_ext1="192.168.0.2"
|
initconf_ip_ext1="192.168.0.2"
|
||||||
initconf_netmask_ext1="255.255.255.0"</programlisting>
|
initconf_netmask_ext1="255.255.255.0"</programlisting>
|
||||||
|
|
||||||
<para>Do not forget to add the <literal>defaultrouter</literal>
|
<para>Do not forget to add the
|
||||||
information to <filename>conf/rc.conf</filename>:</para>
|
<literal>defaultrouter</literal> information to
|
||||||
|
<filename>conf/rc.conf</filename>:</para>
|
||||||
|
|
||||||
<programlisting>defaultrouter="192.168.0.1"</programlisting>
|
<programlisting>defaultrouter="192.168.0.1"</programlisting>
|
||||||
</sect3>
|
</sect3>
|
||||||
|
|
@ -198,14 +215,15 @@ initconf_netmask_ext1="255.255.255.0"</programlisting>
|
||||||
<title>The <filename>conf/rc.conf</filename> Method</title>
|
<title>The <filename>conf/rc.conf</filename> Method</title>
|
||||||
|
|
||||||
<para>When the network interface driver is known, it is more
|
<para>When the network interface driver is known, it is more
|
||||||
convenient to use <filename>conf/rc.conf</filename>
|
convenient to use <filename>conf/rc.conf</filename> for
|
||||||
for networking options. The syntax of this file is the same
|
networking options. The syntax of this file is the same as
|
||||||
as the one used in the standard &man.rc.conf.5; file of
|
the one used in the standard &man.rc.conf.5; file of
|
||||||
&os;.</para>
|
&os;.</para>
|
||||||
|
|
||||||
<para>For example, if you know that a &man.re.4; network
|
<para>For example, if you know that a &man.re.4; network
|
||||||
interface is going to be available, you can set the following
|
interface is going to be available, you can set the
|
||||||
options in <filename>conf/rc.conf</filename>:</para>
|
following options in
|
||||||
|
<filename>conf/rc.conf</filename>:</para>
|
||||||
|
|
||||||
<programlisting>defaultrouter="192.168.0.1"
|
<programlisting>defaultrouter="192.168.0.1"
|
||||||
ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
|
ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
|
||||||
|
|
@ -213,18 +231,21 @@ ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 xml:id="mfsbsd-build">
|
<sect2 xml:id="mfsbsd-build">
|
||||||
<title>Building an <application>mfsBSD</application> Image</title>
|
<title>Building an <application>mfsBSD</application>
|
||||||
|
Image</title>
|
||||||
|
|
||||||
<para>The process of building an <application>mfsBSD</application>
|
<para>The process of building an
|
||||||
image is pretty straightforward.</para>
|
<application>mfsBSD</application> image is pretty
|
||||||
|
straightforward.</para>
|
||||||
|
|
||||||
<para>The first step is to mount the &os; installation
|
<para>The first step is to mount the &os; installation
|
||||||
<acronym>CD</acronym>, or the installation
|
<acronym>CD</acronym>, or the installation
|
||||||
<acronym>ISO</acronym> image to <filename>/cdrom</filename>. For the sake of example,
|
<acronym>ISO</acronym> image to <filename>/cdrom</filename>.
|
||||||
in this article we will assume that you have downloaded the &os;
|
For the sake of example, in this article we will assume that
|
||||||
7.0-RELEASE <acronym>ISO</acronym>. Mounting this ISO image to
|
you have downloaded the &os; 7.0-RELEASE
|
||||||
the <filename>/cdrom</filename> directory is
|
<acronym>ISO</acronym>. Mounting this ISO image to the
|
||||||
easy with the &man.mdconfig.8; utility:</para>
|
<filename>/cdrom</filename> directory is easy with the
|
||||||
|
&man.mdconfig.8; utility:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>mdconfig -a -t vnode -u 10 -f <replaceable>7.0-RELEASE-amd64-disc1.iso</replaceable></userinput>
|
<screen>&prompt.root; <userinput>mdconfig -a -t vnode -u 10 -f <replaceable>7.0-RELEASE-amd64-disc1.iso</replaceable></userinput>
|
||||||
&prompt.root; <userinput>mount_cd9660 /dev/md10 /cdrom</userinput></screen>
|
&prompt.root; <userinput>mount_cd9660 /dev/md10 /cdrom</userinput></screen>
|
||||||
|
|
@ -235,9 +256,10 @@ ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
|
||||||
<screen>&prompt.root; <userinput>make BASE=/cdrom/<replaceable>7.0-RELEASE</replaceable></userinput></screen>
|
<screen>&prompt.root; <userinput>make BASE=/cdrom/<replaceable>7.0-RELEASE</replaceable></userinput></screen>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>The above <command>make</command> has to be run
|
<para>The above <command>make</command> has to be run from the
|
||||||
from the top level of the <application>mfsBSD</application>
|
top level of the <application>mfsBSD</application> directory
|
||||||
directory tree, for example <filename>~/mfsbsd-1.0-beta1/</filename>.</para>
|
tree, for example
|
||||||
|
<filename>~/mfsbsd-1.0-beta1/</filename>.</para>
|
||||||
</note>
|
</note>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
|
|
@ -252,20 +274,21 @@ ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>scp disk.img root@192.168.0.2:.</userinput></screen>
|
<screen>&prompt.root; <userinput>scp disk.img root@192.168.0.2:.</userinput></screen>
|
||||||
|
|
||||||
<para>To boot <application>mfsBSD</application> image properly, it
|
<para>To boot <application>mfsBSD</application> image properly,
|
||||||
must be placed on the first (bootable) device of the given
|
it must be placed on the first (bootable) device of the given
|
||||||
machine. This may be accomplished using this example providing
|
machine. This may be accomplished using this example
|
||||||
that <filename>sda</filename> is the first bootable disk
|
providing that <filename>sda</filename> is the first bootable
|
||||||
device:</para>
|
disk device:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>dd if=/root/disk.img of=/dev/sda bs=1m</userinput></screen>
|
<screen>&prompt.root; <userinput>dd if=/root/disk.img of=/dev/sda bs=1m</userinput></screen>
|
||||||
|
|
||||||
<para>If all went well, the image should now be in the
|
<para>If all went well, the image should now be in the
|
||||||
<acronym>MBR</acronym> of the first device and the machine can
|
<acronym>MBR</acronym> of the first device and the machine can
|
||||||
be rebooted. Watch for the machine to boot up properly with the
|
be rebooted. Watch for the machine to boot up properly with
|
||||||
&man.ping.8; tool. Once it has came back on-line, it should be
|
the &man.ping.8; tool. Once it has came back on-line, it
|
||||||
possible to access it over &man.ssh.1; as user
|
should be possible to access it over &man.ssh.1; as user
|
||||||
<systemitem class="username">root</systemitem> with the configured password.</para>
|
<systemitem class="username">root</systemitem> with the
|
||||||
|
configured password.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
|
@ -274,19 +297,19 @@ ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
|
||||||
|
|
||||||
<para>The <application>mfsBSD</application> has been successfully
|
<para>The <application>mfsBSD</application> has been successfully
|
||||||
booted and it should be possible to log in through &man.ssh.1;.
|
booted and it should be possible to log in through &man.ssh.1;.
|
||||||
This section will describe how to create and label slices, set up
|
This section will describe how to create and label slices, set
|
||||||
<application>gmirror</application> for RAID-1, and how to use
|
up <application>gmirror</application> for RAID-1, and how to use
|
||||||
<application>sysinstall</application> to install a minimal
|
<application>sysinstall</application> to install a minimal
|
||||||
distribution of the &os; operating system.</para>
|
distribution of the &os; operating system.</para>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Preparation of Hard Drives</title>
|
<title>Preparation of Hard Drives</title>
|
||||||
|
|
||||||
<para>The first task is to allocate disk space for &os;, i.e.: to
|
<para>The first task is to allocate disk space for &os;, i.e.:
|
||||||
create slices and partitions. Obviously, the currently running
|
to create slices and partitions. Obviously, the currently
|
||||||
system is fully loaded in system memory and therefore there will
|
running system is fully loaded in system memory and therefore
|
||||||
be no problems with manipulating hard drives. To complete this
|
there will be no problems with manipulating hard drives. To
|
||||||
task, it is possible to use either
|
complete this task, it is possible to use either
|
||||||
<application>sysinstall</application> or &man.fdisk.8; in
|
<application>sysinstall</application> or &man.fdisk.8; in
|
||||||
conjunction to &man.bsdlabel.8;.</para>
|
conjunction to &man.bsdlabel.8;.</para>
|
||||||
|
|
||||||
|
|
@ -295,28 +318,31 @@ ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/<replaceable>ad0</replaceable> count=2</userinput></screen>
|
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/<replaceable>ad0</replaceable> count=2</userinput></screen>
|
||||||
|
|
||||||
<para>Next, create slices and label them with your preferred tool.
|
<para>Next, create slices and label them with your preferred
|
||||||
While it is considered easier to use
|
tool. While it is considered easier to use
|
||||||
<application>sysinstall</application>, a powerful and also
|
<application>sysinstall</application>, a powerful and also
|
||||||
probably less buggy method will be to use standard text-based
|
probably less buggy method will be to use standard text-based
|
||||||
&unix; tools, such as &man.fdisk.8; and &man.bsdlabel.8;, which
|
&unix; tools, such as &man.fdisk.8; and &man.bsdlabel.8;,
|
||||||
will also be covered in this section. The former option is well
|
which will also be covered in this section. The former option
|
||||||
documented in the <link xlink:href="&url.books.handbook;/install-steps.html">Installing &os;</link>
|
is well documented in the <link
|
||||||
chapter of the &os; Handbook. As it was mentioned in the
|
xlink:href="&url.books.handbook;/install-steps.html">Installing
|
||||||
introduction, this article will present how to set up a system
|
&os;</link> chapter of the &os; Handbook. As it was
|
||||||
with RAID-1 and <application>ZFS</application> capabilities.
|
mentioned in the introduction, this article will present how
|
||||||
Our set up will consist of a small &man.gmirror.8; mirrored
|
to set up a system with RAID-1 and
|
||||||
<filename>/</filename> (root), <filename>/usr</filename> and <filename>/var</filename> dataset, and the rest of
|
<application>ZFS</application> capabilities. Our set up will
|
||||||
the disk space will be allocated for a &man.zpool.8; mirrored
|
consist of a small &man.gmirror.8; mirrored
|
||||||
|
<filename>/</filename> (root), <filename>/usr</filename> and
|
||||||
|
<filename>/var</filename> dataset, and the rest of the disk
|
||||||
|
space will be allocated for a &man.zpool.8; mirrored
|
||||||
<application>ZFS</application> file system. Please note, that
|
<application>ZFS</application> file system. Please note, that
|
||||||
the <application>ZFS</application> file system will be
|
the <application>ZFS</application> file system will be
|
||||||
configured after the &os; operating system is successfully
|
configured after the &os; operating system is successfully
|
||||||
installed and booted.</para>
|
installed and booted.</para>
|
||||||
|
|
||||||
<para>The following example will describe how to create slices and
|
<para>The following example will describe how to create slices
|
||||||
labels, initialize &man.gmirror.8; on each partition and how to
|
and labels, initialize &man.gmirror.8; on each partition and
|
||||||
create a <application>UFS2</application> file system in each
|
how to create a <application>UFS2</application> file system in
|
||||||
mirrored partition:</para>
|
each mirrored partition:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>fdisk -BI /dev/ad0</userinput> <co xml:id="fdisk"/>
|
<screen>&prompt.root; <userinput>fdisk -BI /dev/ad0</userinput> <co xml:id="fdisk"/>
|
||||||
&prompt.root; <userinput>fdisk -BI /dev/ad1</userinput>
|
&prompt.root; <userinput>fdisk -BI /dev/ad1</userinput>
|
||||||
|
|
@ -347,13 +373,13 @@ ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
|
||||||
|
|
||||||
<callout arearefs="bsdlabel-editing">
|
<callout arearefs="bsdlabel-editing">
|
||||||
<para>Now, manually edit the label of the given disk. Refer
|
<para>Now, manually edit the label of the given disk. Refer
|
||||||
to the &man.bsdlabel.8; manual page in order to find out how
|
to the &man.bsdlabel.8; manual page in order to find out
|
||||||
to create partitions. Create partitions
|
how to create partitions. Create partitions
|
||||||
<literal>a</literal> for <filename>/</filename> (root) file system,
|
<literal>a</literal> for <filename>/</filename> (root)
|
||||||
<literal>b</literal> for swap, <literal>d</literal> for
|
file system, <literal>b</literal> for swap,
|
||||||
<filename>/var</filename>,
|
<literal>d</literal> for <filename>/var</filename>,
|
||||||
<literal>e</literal> for <filename>/usr</filename> and finally
|
<literal>e</literal> for <filename>/usr</filename> and
|
||||||
<literal>f</literal> which will later be used for
|
finally <literal>f</literal> which will later be used for
|
||||||
<application>ZFS</application>.</para>
|
<application>ZFS</application>.</para>
|
||||||
</callout>
|
</callout>
|
||||||
|
|
||||||
|
|
@ -370,13 +396,13 @@ ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
|
||||||
<callout arearefs="gmirror2">
|
<callout arearefs="gmirror2">
|
||||||
<para>Note that <option>-F</option> is used for the swap
|
<para>Note that <option>-F</option> is used for the swap
|
||||||
partition. This instructs &man.gmirror.8; to assume that
|
partition. This instructs &man.gmirror.8; to assume that
|
||||||
the device is in the consistent state after the power/system
|
the device is in the consistent state after the
|
||||||
failure.</para>
|
power/system failure.</para>
|
||||||
</callout>
|
</callout>
|
||||||
|
|
||||||
<callout arearefs="newfs">
|
<callout arearefs="newfs">
|
||||||
<para>Create a <application>UFS2</application> file system on
|
<para>Create a <application>UFS2</application> file system
|
||||||
each mirrored partition.</para>
|
on each mirrored partition.</para>
|
||||||
</callout>
|
</callout>
|
||||||
</calloutlist>
|
</calloutlist>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
@ -384,12 +410,12 @@ ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>System Installation</title>
|
<title>System Installation</title>
|
||||||
|
|
||||||
<para>This is the most important part. This section will describe
|
<para>This is the most important part. This section will
|
||||||
how to actually install the minimal distribution of &os; on the
|
describe how to actually install the minimal distribution of
|
||||||
hard drives that we have prepared in the previous section. To
|
&os; on the hard drives that we have prepared in the previous
|
||||||
accomplish this goal, all file systems need to be mounted so
|
section. To accomplish this goal, all file systems need to be
|
||||||
<application>sysinstall</application> may write the contents of
|
mounted so <application>sysinstall</application> may write the
|
||||||
&os; to the hard drives:</para>
|
contents of &os; to the hard drives:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>mount /dev/mirror/root /mnt</userinput>
|
<screen>&prompt.root; <userinput>mount /dev/mirror/root /mnt</userinput>
|
||||||
&prompt.root; <userinput>mkdir /mnt/var /mnt/usr</userinput>
|
&prompt.root; <userinput>mkdir /mnt/var /mnt/usr</userinput>
|
||||||
|
|
@ -401,7 +427,8 @@ ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
|
||||||
menu. Select <guimenuitem>Options</guimenuitem> and press
|
menu. Select <guimenuitem>Options</guimenuitem> and press
|
||||||
<keycap>Enter</keycap>. With the help of arrow keys, move the
|
<keycap>Enter</keycap>. With the help of arrow keys, move the
|
||||||
cursor on the <literal>Install Root</literal> item, press
|
cursor on the <literal>Install Root</literal> item, press
|
||||||
<keycap>Space</keycap> and change it to <filename>/mnt</filename>. Press
|
<keycap>Space</keycap> and change it to
|
||||||
|
<filename>/mnt</filename>. Press
|
||||||
<keycap>Enter</keycap> to submit your changes and exit the
|
<keycap>Enter</keycap> to submit your changes and exit the
|
||||||
<guimenuitem>Options</guimenuitem> menu by pressing
|
<guimenuitem>Options</guimenuitem> menu by pressing
|
||||||
<keycap>q</keycap>.</para>
|
<keycap>q</keycap>.</para>
|
||||||
|
|
@ -429,23 +456,24 @@ ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
|
||||||
|
|
||||||
<para>In the <guimenuitem>Media</guimenuitem> menu, select
|
<para>In the <guimenuitem>Media</guimenuitem> menu, select
|
||||||
<option>FTP</option>. Select the nearest mirror and let
|
<option>FTP</option>. Select the nearest mirror and let
|
||||||
<application>sysinstall</application> assume that the network is
|
<application>sysinstall</application> assume that the network
|
||||||
already configured. You will be returned back to the
|
is already configured. You will be returned back to the
|
||||||
<guimenuitem>Custom</guimenuitem> menu.</para>
|
<guimenuitem>Custom</guimenuitem> menu.</para>
|
||||||
|
|
||||||
<para>Finally, perform the system installation by selecting the
|
<para>Finally, perform the system installation by selecting the
|
||||||
last option, <guimenuitem>Commit</guimenuitem>.
|
last option, <guimenuitem>Commit</guimenuitem>. Exit
|
||||||
Exit <application>sysinstall</application> when it finishes the
|
<application>sysinstall</application> when it finishes the
|
||||||
installation.</para>
|
installation.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Post Installation Steps</title>
|
<title>Post Installation Steps</title>
|
||||||
|
|
||||||
<para>The &os; operating system should be installed now; however,
|
<para>The &os; operating system should be installed now;
|
||||||
the process is not finished yet. It is necessary to perform
|
however, the process is not finished yet. It is necessary to
|
||||||
some post installation steps in order to allow &os; to boot in
|
perform some post installation steps in order to allow &os; to
|
||||||
the future and to be able to log in to the system.</para>
|
boot in the future and to be able to log in to the
|
||||||
|
system.</para>
|
||||||
|
|
||||||
<para>You must now &man.chroot.8; into the freshly installed
|
<para>You must now &man.chroot.8; into the freshly installed
|
||||||
system in order to finish the installation. Use the following
|
system in order to finish the installation. Use the following
|
||||||
|
|
@ -483,8 +511,8 @@ ifconfig_re0="inet 192.168.0.2 netmask 255.255.255.0"</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Create <filename>/boot/loader.conf</filename>
|
<para>Create <filename>/boot/loader.conf</filename> with the
|
||||||
with the following contents:</para>
|
following contents:</para>
|
||||||
|
|
||||||
<programlisting>geom_mirror_load="YES"
|
<programlisting>geom_mirror_load="YES"
|
||||||
zfs_load="YES"</programlisting>
|
zfs_load="YES"</programlisting>
|
||||||
|
|
@ -501,8 +529,8 @@ zfs_load="YES"</programlisting>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Add additional users to the system using the
|
<para>Add additional users to the system using the
|
||||||
&man.adduser.8; tool. Do not forget to add a user to the
|
&man.adduser.8; tool. Do not forget to add a user to the
|
||||||
<systemitem class="groupname">wheel</systemitem> group so you may obtain root
|
<systemitem class="groupname">wheel</systemitem> group so
|
||||||
access after the reboot.</para>
|
you may obtain root access after the reboot.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
|
|
@ -518,14 +546,14 @@ zfs_load="YES"</programlisting>
|
||||||
<sect1 xml:id="zfs">
|
<sect1 xml:id="zfs">
|
||||||
<title>ZFS</title>
|
<title>ZFS</title>
|
||||||
|
|
||||||
<para>If your system survived the reboot, it should now be possible
|
<para>If your system survived the reboot, it should now be
|
||||||
to log in. Welcome to the fresh &os; installation, performed
|
possible to log in. Welcome to the fresh &os; installation,
|
||||||
remotely without the use of a remote console!</para>
|
performed remotely without the use of a remote console!</para>
|
||||||
|
|
||||||
<para>The only remaining step is to configure &man.zpool.8; and
|
<para>The only remaining step is to configure &man.zpool.8; and
|
||||||
create some &man.zfs.8; file systems. Creating and administering
|
create some &man.zfs.8; file systems. Creating and
|
||||||
<application>ZFS</application> is very straightforward. First,
|
administering <application>ZFS</application> is very
|
||||||
create a mirrored pool:</para>
|
straightforward. First, create a mirrored pool:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>zpool create tank mirror /dev/ad[01]s1f</userinput></screen>
|
<screen>&prompt.root; <userinput>zpool create tank mirror /dev/ad[01]s1f</userinput></screen>
|
||||||
|
|
||||||
|
|
@ -539,7 +567,8 @@ zfs_load="YES"</programlisting>
|
||||||
&prompt.root; <userinput>zfs set mountpoint=/usr/src tank/src</userinput></screen>
|
&prompt.root; <userinput>zfs set mountpoint=/usr/src tank/src</userinput></screen>
|
||||||
|
|
||||||
<para>That is all. If you are interested in more details about
|
<para>That is all. If you are interested in more details about
|
||||||
<application>ZFS</application> on &os;, please refer to the <link xlink:href="http://wiki.freebsd.org/ZFS">ZFS</link> section of the &os;
|
<application>ZFS</application> on &os;, please refer to the
|
||||||
Wiki.</para>
|
<link xlink:href="http://wiki.freebsd.org/ZFS">ZFS</link>
|
||||||
|
section of the &os; Wiki.</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
</article>
|
</article>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue