IBM®
Skip to main content
    Country/region [select]      Terms of use
 
 
    
     Home      Products      Services & solutions      Support & downloads      My account     
 
developerworks > My developerWorks >  Dashboard > Linux for Power Architecture > Home > SLES 10 Automated Network Installation
developerWorks
Log In   View a printable version of the current page.
Overview Connect Spaces Forums Wikis
SLES 10 Automated Network Installation
Added by mccombsk, last edited by mccombsk on Dec 06, 2006  (view change)
Labels: 
(None)

SLES 10 Automated Network Install How-To, using IVM

This Wiki topic specifically addresses SLES 10 network installation in a Virtual I/O server (VIOS) environment, however the steps can also apply to a non-VIO environment. The motivation behind the creation of this document was that SLES 10 network install on System p is not currently well documented or in a single place.

Please note that network installation for SLES 10 has changed from SLES 9. The changes will be noted as they come up.

This document was written using an OP720 and IVM (VIOS 1.3.0.0-FP-8.0). The install server was an IVM LPAR running RHEL 4.3 with a full install. It is assumed the reader has set up a basic IVM configuration that includes an external VLAN and has defined at least 2 LPARs. If further information on IVM setup is required, please refer to http://www-128.ibm.com/developerworks/linux/library/l-pow-ivm.

The following topics will be covered

  • 1.0 Integrated Virtualization Manager (IVM) network installation considerations.
    • 1.1 Creating an internal VLAN for install purposes.
  • 2.0 Setting up a network install server
    • 2.1 Creating the SLES 10 install tree
    • 2.2 Setting up the TFTP server
    • 2.3 Using the install kernel
    • 2.4 Setting up the DHCP server
    • 2.5 Setting up NFS
    • 2.6 Creating a working autoinstall file
  • 3.0 Starting a SLES 10 network install

1.0 Integrated Virtualization Manager (IVM) network install considerations

In this example there are 2 virtual Ethernet adapters, #1 is bridged and tied to a physical Ethernet port and . Virtual Ethernet adapter #2 will be used as an inter-LPAR VLAN and is not bridged. The network installs will be done using using adapter #2.

1.1 Creating an internal VLAN for install purposes.

Creating an internal VLAN using IVM is quite straightforward. From the View/Modify Partitions view, select an LPAR by clicking on its name, click on the
Virtual Ethernet tab and select VLAN 2 for adapter 2. Repeat this for each desired LPAR. (see below)

Restart the partition and it will come up with a new ethernet adapter that has to be configured. For our purposes create the file /etc/sysconfig/network-scripts/ifcfg-eth1 with the following contents..

ONBOOT=yes
GATEWAY=
TYPE=Ethernet
DEVICE=eth1
BOOTPROTO=none
NETMASK=255.255.255.0
IPADDR=10.1.1.1

Next, restart network services and verify the configuration.

]# service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down interface eth1:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Setting network parameters:                                [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]
Bringing up interface eth1:                                [  OK  ]
[root@localhost network-scripts]# ifconfig
eth0      Link encap:Ethernet  HWaddr A2:82:80:00:20:04
          inet addr:192.168.1.105  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a082:80ff:fe00:2004/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:741 errors:0 dropped:0 overruns:0 frame:0
          TX packets:448 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:58121 (56.7 KiB)  TX bytes:54305 (53.0 KiB)
          Interrupt:186

geth1      Link encap:Ethernet  HWaddr A2:82:80:00:20:05
          inet addr:10.1.1.1  Bcast:10.1.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a082:80ff:fe00:2005/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17057 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17076 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1023382 (999.3 KiB)  TX bytes:9504887 (9.0 MiB)
          Interrupt:187

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:74 errors:0 dropped:0 overruns:0 frame:0
          TX packets:74 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5180 (5.0 KiB)  TX bytes:5180 (5.0 KiB)

2.0 Setting up the install server

In this example the install server, or LPAR, has a clean full RedHat 4.4 install. As such, the Linux commands used are mostly RedHat specific. Also, eth1 is set up on the 10.1.1.0 network with IP address 10.1.1.1/255.255.255.0.

2.1 Creating a SLES 10 Install Tree

The install tree is a directory with the merged contents of all 4 SLES 10 CD's. Create the directory /install/sles10. Then, for each CD run the following commands, replacing duplicate files

mount /dev/cdrom /mnt
cp -a /mnt/* /install/sles10
umount /mnt
NOTE - The SLES 10 install tree differs from SLES 9

The final install tree should look appear similar to below. The autoinst-yast XML file will be created in a later step and is required for automated installs

[root@localhost ~]# ls -l /install/sles10/
total 20500
-r--r--r--  1 root root  4809910 Jul  6 01:31 ARCHIVES.gz
-rwxrwxrwx  1 root root     3828 Nov 16 04:19 autoinst-yast
dr-xr-xr-x  3 root root     4096 Jul  6 01:33 boot
-r--r--r--  1 root root  4718302 Jul  6 01:24 ChangeLog
-r--r--r--  1 root root      614 Jul  6 01:21 content
-r--r--r--  1 root root      189 Jul  6 01:31 content.asc
-r--r--r--  1 root root     2173 Jul  5 19:36 content.key
-r--r--r--  1 root root    33577 Jun 18 00:21 control.xml
-r--r--r--  1 root root    17992 Jul  5 19:36 COPYING
-r--r--r--  1 root root    25733 Jul  5 19:36 COPYING.de
-r--r--r--  1 root root     1455 Jul  5 19:36 COPYRIGHT
-r--r--r--  1 root root     1620 Jul  5 19:36 COPYRIGHT.de
-r--r--r--  1 root root      445 Jul  6 01:33 directory.yast
dr-xr-xr-x  3 root root     4096 Jul  6 01:21 docu
dr-xr-xr-x  5 root root     4096 Jul  6 01:21 dosutils
-r--r--r--  1 root root      877 Jul  5 19:36 gpg-pubkey-0dfb3188-41ed929b.asc
-r--r--r--  1 root root      613 Jul  5 19:36 gpg-pubkey-307e3d54-44201d5d.asc
-r--r--r--  1 root root     1694 Jul  5 19:36 gpg-pubkey-3d25d3d9-36e12d04.asc
-r--r--r--  1 root root     1036 Jul  5 19:36 gpg-pubkey-7e2e3b05-44748aba.asc
-r--r--r--  1 root root     2173 Jul  5 19:36 gpg-pubkey-9c800aca-40d8063e.asc
-r--r--r--  1 root root     1803 Jul  5 19:36 gpg-pubkey-a1912208-446a0899.asc
-r--r--r--  1 root root    22110 Jul  6 01:31 INDEX.gz
-r--r--r--  1 root root 10969088 Jul  5 22:46 ISERIES64
-r--r--r--  1 root root    39374 Jul  6 01:31 ls-lR.gz
dr-xr-xr-x  2 root root     4096 Jul  6 01:33 media.1
dr-xr-xr-x  2 root root     4096 Jul  6 01:25 media.2
dr-xr-xr-x  2 root root     4096 Jul  6 01:25 media.3
dr-xr-xr-x  2 root root     4096 Jul  6 01:25 media.4
-r--r--r--  1 root root    16106 Jul  5 19:36 NEWS
dr-xr-xr-x  2 root root     4096 Jul  6 01:20 ppc
-r--r--r--  1 root root     5604 Jul  5 19:36 pubring.gpg
-r--r--r--  1 root root     1699 Jul  5 16:24 README
-r--r--r--  1 root root      583 Jul  5 19:36 README.BETA.mac.txt
-r--r--r--  1 root root     1699 Jul  5 19:36 README.mac.txt
dr-xr-xr-x  6 root root     4096 Jul  6 01:21 suse
dr-xr-xr-x  2 root root     4096 Jul  6 01:20 suseboot
-r--r--r--  1 root root     7205 Jul  6 01:34 TRANS.TBL
dr-xr-xr-x  3 root root     4096 Jul  6 01:21 unsorted

2.2 Setting up the TFTP server

Install the tftp-server RPM if it was not installed by default. Create /tftpboot if it does not exist.

Edit /etc/xinetd.d/tftp and change disabled = yes to "no" as follows

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

Next, restart the xinetd service

[root@localhost ~]# service xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]

2.3 Using the SLES10 install kernel

There are basically 2 ways to utilize the install kernel. The first is to use the default install kernel and do a manual network install. The second involves modifying the install kernel and results in an automated network install.

2.3.1 Using the default install kernel
Get the install kernel (inst64) from the /install/sles10/suseboot directory and copy it into /tftproot

cp /install/sles10/suseboot/inst64 /tftproot/install

2.3.2 Modifying the default install kernel
Get the mkzimage_cmdline and mkzimage files. In SLES 9, these files were on the install media. For SLES 10 they are built into the lilo RPM. Unfortunately, the best way to get these files and work with them is to use an installed SLES 10 machine. The most straightforward way is to build a SLES 10 LPAR manually and follow the 3 instructions before automating later installs.

NOTE - The location of the mkzimage and mkzimage_cmdline commands has changed. The syntax of mkzimage_cmdline has also changed

First, get the install kernel inst64 from the /install/sles10/suseboot directory.

cp /install/sles10/suseboot/inst64 /root/inst64.sles10.vio

Next, use mkzimage_cmdline to embed command line commands to the install kernel.

cd /root
mkzimage_cmdline -a 1 -s "autoyast=nfs://10.1.1.1/install/sles10/autoinst-yast install=nfs://10.1.1.1/install/sles10/ netdevice=eth1" ./inst64.SLES10.vio

Finally, copy the modified inst64 to tftpboot

cp /root/inst64.SLES10.vio /tftproot/install

2.4 Creating a DHCP server.

First, create a DHCP server config file to serve only the 10.1.1.0 network. Create/edit /etc/dhcpd.conf file. Use the following sample contents...

ddns-update-style none;
shared-network VIOS {
option routers 10.1.1.1;
subnet 10.1.1.0 netmask 255.255.255.0 {
                range dynamic-bootp 10.1.1.2 10.1.1.100;
                option broadcast-address 10.1.1.255;
                default-lease-time -1;
                next-server 10.1.1.1;
                filename "install";
}
}

Next, start dhcpd daemon and make the service permanent

[root@localhost ~]# service dhcpd start
Starting dhcpd:                                            [  OK  ]
[root@localhost ~]# chkconfig --level 345 dhcpd on
[root@localhost ~]# chkconfig --list dhcpd
dhcpd           0:off   1:off   2:off   3:on    4:on    5:on    6:off

2.5 Setting up NFS

First, edit /etc/exports and add the following line

/install *(ro,async,no_root_squash)

Next, restart nfs and verify /install is shared

 				
[root@localhost ~]# service nfs restart
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS quotas:                                  [  OK  ]
Shutting down NFS services:                                [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
[root@localhost ~]# exportfs
/install        <world>	

2.6 Creating a working autoinstall file

Add a working autoinst.yast file to the install tree (/install/sles10). This file can be modified based on specific requirements. In my experiences an autoinst file that worked on SLES 9 will not work with a SLES 10 network install

NOTE - Valid and required SLES 10 auto install XML elements differ from SLES 9

Below is a sample XML file that works...

<?xml version="1.0"?>
<!DOCTYPE profile SYSTEM "/usr/share/autoinstall/dtd/profile.dtd">
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
    <general>
      <signature-handling>
        <accept_unsigned_file config:type="boolean">true</accept_unsigned_file>
        <accept_file_without_checksum config:type="boolean">true</accept_file_without_checksum>
        <accept_verification_failed config:type="boolean">true</accept_verification_failed>
        <accept_unknown_gpg_key config:type="boolean">true</accept_unknown_gpg_key>
        <import_gpg_key  config:type="boolean">true</import_gpg_key>
      </signature-handling>
      <mode>
        <confirm config:type="boolean">false</confirm>
      </mode>
    </general>
    <mouse>
      <id>none</id>
    </mouse>
    <keyboard>
      <keymap>english-us</keymap>
    </keyboard>
    <language>en_US</language>
    <partitioning config:type="list">
      <drive>
        <initialize config:type="boolean">true</initialize>
        <device>/dev/sda</device>
        <partitions config:type="list">
          <partition>
            <format config:type="boolean">false</format>
            <partition_id config:type="integer">65</partition_id>
            <partition_nr config:type="integer">1</partition_nr>
            <partition_type>primary</partition_type>
            <size>270336</size>
          </partition>
          <partition>
            <filesystem config:type="symbol">swap</filesystem>
            <format config:type="boolean">true</format>
            <mount>swap</mount>
            <partition_id config:type="integer">130</partition_id>
            <partition_nr config:type="integer">2</partition_nr>
            <partition_type>primary</partition_type>
            <size>2155023360</size>
          </partition>
          <partition>
            <filesystem config:type="symbol">reiser</filesystem>
            <format config:type="boolean">true</format>
            <mount>/</mount>
            <partition_id config:type="integer">131</partition_id>
            <partition_nr config:type="integer">3</partition_nr>
            <partition_type>primary</partition_type>
            <size>max</size>
          </partition>
        </partitions>
        <use>all</use>
      </drive>
    </partitioning>
    <report>
      <errors>
        <log config:type="boolean">true</log>
        <show config:type="boolean">true</show>
        <timeout config:type="integer">0</timeout>
      </errors>
      <messages>
        <log config:type="boolean">true</log>
        <show config:type="boolean">true</show>
        <timeout config:type="integer">0</timeout>
      </messages>
      <warnings>
        <log config:type="boolean">true</log>
        <show config:type="boolean">true</show>
        <timeout config:type="integer">0</timeout>
      </warnings>
      <yesno_messages>
        <log config:type="boolean">true</log>
        <show config:type="boolean">true</show>
        <timeout config:type="integer">0</timeout>
      </yesno_messages>
    </report>
    <users config:type="list">
      <user>
         <username>root</username>
         <user_password>passw0rd</user_password>
         <encrypted config:type="boolean">false</encrypted>
         <forename/>
         <surname/>
      </user>
    </users>

    <software>
    <packages config:type="list">
      <package>powerpc-utils</package>
      <package>iprutils</package>
      <package>susehelp_en</package>
    </packages>
    <patterns config:type="list">
      <pattern>base-64bit</pattern>
      <pattern>x11</pattern>
      <pattern>file_server</pattern>
      <pattern>64bit</pattern>
      <pattern>x11-64bit</pattern>
      <pattern>apparmor</pattern>
      <pattern>ha_sles-64bit</pattern>
    </patterns>
  </software>
</profile>

3.0 Starting a SLES 10 network install

To start an automated install, boot to SMS and choose to boot from the second virtual Ethernet adapter

Version SF240_219
 SMS 1.6 (c) Copyright IBM Corp. 2000,2005 All rights reserved.
-------------------------------------------------------------------------------
 Select Device
 Device  Current  Device
 Number  Position  Name
 1.        3      Virtual Ethernet
                  ( loc=U9124.720.10031EA-V5-C4-T1 )
 2.        -      Virtual Ethernet
                  ( loc=U9124.720.10031EA-V5-C5-T1 )
 3.        1      SCSI 38654 MB Harddisk, part=1 ()
                  ( loc=U9124.720.10031EA-V5-C2-T1-W8100000000000000-L
 4.        2      SCSI CD-ROM
                  ( loc=U9124.720.10031EA-V5-C2-T1-W8200000000000000-L0 )
 -------------------------------------------------------------------------------
 Navigation keys:
 M = return to Main Menu
 ESC key = return to previous screen         X = eXit System Management Services
 -------------------------------------------------------------------------------
 Type menu item number and press Enter or select Navigation key:

As the system boots the install kernel, it will pause for 10 second to give the user an opportunity to modify the embedded parameters that are passed, these should look familiar

BOOTP R = 1 BOOTP S = 2
FILE: install
FINAL Packet Count = 17029
FINAL File Size = 8718463 bytes.
load-base=0x4000
real-base=0xc00000

Elapsed time since release of system processors: 258 mins 47 secs

SuSE Linux zImage starting: loaded at 0x00010000-0x0085bcbc (0x0/0x0/0x00c39a48; sp: 0x0189ffd0)
uncompressing ELF header done. (0x00000100 bytes)
Allocated 0x009f4178 bytes for kernel @ 0x02000000
Allocated 0x00608d85 bytes for initrd @ 0x029f5000
uncompressing kernel done. (0x00638538 bytes)
edit kernel cmdline within 10 seconds and press RETURN:
autoyast=nfs://10.1.1.1/install/sles10/autoinst-yast install=nfs://10.1.1.1/install/sles10/ netdevice=eth1

The SLES 10 install should take around 15 minutes. After the install completes the LPAR will reboot and some post install configuration will take place before a login prompt appears. The root password in this case will be "passw0rd".

Good Luck


 
    About IBM Privacy Contact