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 > Information > Page Comparison
developerWorks
Log In   View a printable version of the current page.
Overview Connect Spaces Forums Wikis
SLES 10 Automated Network Installation
Version 14 by mccombsk
on Dec 06, 2006 11:23.


compared with
Current by mccombsk
on Dec 06, 2006 11:23.

(show comment)
 
Key
These lines were removed. This word was removed.
These lines were added. This word was added.

View page history


There are 0 changes. View first change.

 h1. 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
  
  
 h2. 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.
  
 h4. 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)
  
 !image003.png!
  
 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..
 {noformat}
 ONBOOT=yes
 GATEWAY=
 TYPE=Ethernet
 DEVICE=eth1
 BOOTPROTO=none
 NETMASK=255.255.255.0
 IPADDR=10.1.1.1
 {noformat}
  
 Next, restart network services and verify the configuration.
  
 {noformat}
 ]# 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)
 {noformat}
  
  
  
 h2. 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.
  
 h4. 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
  
 {noformat}
 mount /dev/cdrom /mnt
 cp -a /mnt/* /install/sles10
 umount /mnt
 {noformat}
  
 {note:title=NOTE - The SLES 10 install tree differs from SLES 9}
 {note}
  
 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
  
 {noformat}
 [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
 {noformat}
  
  
 h3. 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
 {noformat}
 # 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
 }
 {noformat}
  
  
 Next, restart the xinetd service
  
 {noformat}
 [root@localhost ~]# service xinetd restart
 Stopping xinetd: [ OK ]
 Starting xinetd: [ OK ]
 {noformat}
  
 h3. 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
 {noformat}
 cp /install/sles10/suseboot/inst64 /tftproot/install
 {noformat}
  
  
 *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:title=NOTE - The location of the mkzimage and mkzimage_cmdline commands has changed. The syntax of mkzimage_cmdline has also changed}
 {note}
  
 First, get the install kernel inst64 from the /install/sles10/suseboot directory.
 {noformat}
 cp /install/sles10/suseboot/inst64 /root/inst64.sles10.vio
 {noformat}
  
 Next, use mkzimage_cmdline to embed command line commands to the install kernel.
  
 {noformat}
 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
 {noformat}
  
 Finally, copy the modified inst64 to tftpboot
 {noformat}
 cp /root/inst64.SLES10.vio /tftproot/install
 {noformat}
  
 h3. 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...
  
 {noformat}
 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";
 }
 }
 {noformat}
  
 Next, start dhcpd daemon and make the service permanent
 {noformat}
 [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
 {noformat}
  
  
 h3. 2.5 Setting up NFS
 First, edit /etc/exports and add the following line
 {noformat}
 /install *(ro,async,no_root_squash)
 {noformat}
  
 Next, restart nfs and verify /install is shared
 {noformat}
 [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>
 {noformat}
  
  
 h3. 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:title=NOTE - Valid and required SLES 10 auto install XML elements differ from SLES 9}
 {note}
  
 Below is a sample XML file that works...
 {noformat}
 <?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>
 {noformat}
  
 h3. 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
  
 {noformat}
 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:
 {noformat}
  
 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
 {noformat}
 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
 {noformat}
  
  
 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 :D

 
    About IBM Privacy Contact