Network Installation Source

Şuraya atla: kullan, ara

How to Create a Network Installation Source from ISOs

OK, so you've downloaded the ISOs to a Linux machine (which may or may not be a SuSE box), and you want to install to that nice spare machine to test out this SUSE thing, but don't want to burn and juggle CDs.

In all of these examples, I'll assume you're working with SUSE 10.0 Beta 1 ISOs downloaded to /srv/ftp/isos/suse10.0, and you want your installation source to be in /srv/ftp/suse10.0. For other distros, you may need to adjust the location (or edit the FTP client config) accordingly.

Quick creating a local ftp inst-source server with YaST

Yast can be used to setup an http, ftp or nfs inst-source. here we will see the ftp one.

This is quick, but it copies the contents of the ISOs to your hard disk, taking up twice the space. It's great if you will be deleting the ISOs, but if you're keeping them, the manual way may be better for you.

  • you must have an ftp server running, for example vsftp. This can be configured in Yast in the "xinetd" section
  • Install the yast2-instserver package;
  • Select YaST --> Miscellaneous --> Installation Server. If you just installed anything (like vsftp), you need to shut down the Yast control center and start it again;
  • choose a network install type of your choice (HTTP, FTP, or NFS), here ftp;
  • choose a base directory for all you inst-sources inst-source for example;
  • Choose to install using the ISOs and give a name specific to them. a new directory will be created under the preceding one;
  • You will now be prompted for the various ISOs until the server is done (Yast copies the cd content to the given directory)

This has been tested with SUSE Linux 10.0 stable as a client and 10.1 RC1 as version to install.

Manual Installation

Place the files with makeSUSEdvd

You can place the files from the ISOs with makeSUSEdvd. Just run the following:

# makeSUSEdvd -i -s /srv/ftp/suse10.0

This will put all the files in /srv/ftp/suse10.0. You then do not need to do the next two steps. If you can not run makeSUSEdvd for one reason or another, use the next two steps.

Mount the ISOs

The first thing you need to do is mount the ISOs themselves. Edit /etc/fstab and add these lines:

/srv/ftp/isos/suse10.0/SUSE-10.0-CD-i386-Beta1-CD1.iso /srv/ftp/suse10.0/cd1 auto loop,ro 0 0
/srv/ftp/isos/suse10.0/SUSE-10.0-CD-i386-Beta1-CD2.iso /srv/ftp/suse10.0/cd2 auto loop,ro 0 0
/srv/ftp/isos/suse10.0/SUSE-10.0-CD-i386-Beta1-CD3.iso /srv/ftp/suse10.0/cd3 auto loop,ro 0 0
/srv/ftp/isos/suse10.0/SUSE-10.0-CD-i386-Beta1-CD4.iso /srv/ftp/suse10.0/cd4 auto loop,ro 0 0
/srv/ftp/isos/suse10.0/SUSE-10.0-CD-i386-Beta1-CD5.iso /srv/ftp/suse10.0/cd5 auto loop,ro 0 0

Create the directories to mount them on and mount them:

cd /srv/ftp/suse10.0
mkdir cd{1,2,3,4,5}
mount -a

Set Up the Files YaST Needs

YaST needs some special files in the root of the network install point. Most of these are symlinked in from CD 1.

cd /srv/ftp/suse10.0
ln -s cd1/boot boot
ln -s cd1/content content
ln -s cd1/control.xml control.xml
ln -s cd1/media.1 media.1
ln -s cd1/suse suse
mkdir yast
echo cd1 cd1 > yast/instorder
echo cd1 cd1 > yast/order
ls > directory.yast

Announcing the Installation Source via SLP

This assumes that you have the openslp-server package installed on a host in your network and the server is running.

Create a file like /etc/slp.reg.d/suse100.reg (it has to end in .reg) on the openslp server with the following contents:

service:install.suse:ftp://your_ftp_server/your_directory
description=My Distribution

Then make openslp reload the configuration with rcslpd reload. "My Distribution" will appear in linuxrc (booting from CD/DVD or floppy) when you select SLP installation in the initial boot screen.

Using NFS

You also can use NFS for network installation. After you set up the NFS server and enable it in firewall, you can start installing SUSE using NFS. First, set up the NFS server. Use yast nfs-server to enable nfs and open the port in firewall. Here's what you should add in /etc/exports, assuming you mount all suse10.0.iso in /srv/ftp/suse10.0/.

/srv/ftp/suse10.0/cd1   *(ro,root_squash,sync)
/srv/ftp/suse10.0/cd2   *(ro,root_squash,sync)
/srv/ftp/suse10.0/cd3   *(ro,root_squash,sync)
/srv/ftp/suse10.0/cd4   *(ro,root_squash,sync)
/srv/ftp/suse10.0/cd5   *(ro,root_squash,sync)

Make a Network Boot CD

Next you will need a network boot CD. The network install image for SUSE 10.1 is only about 30 MB in size and has lots of weird and wonderful modules on it. But, for most modern hardware, you don't need all that. It's dead easy to make a boot CD from the boot area of CD 1.

mkdir /tmp/bootcd
cd /tmp/bootcd
cp -a /srv/ftp/suse10.0/cd1/boot/loader/* .
mkisofs -o ../netinst.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .

Then use your favorite CD recording program to burn the resulting /tmp/netinst.iso.

Customize the Network Boot Image

By editing the files isolinux.cfg and messages, you can create a customized network install image.

For instance, create an installation image that will fetch files from your local nfs/ftp/slp server and/or use a specific autoyast.xml file fo configuring options, packages, settings, etc. This way, using a fast (local) nfs or ftp server and some autoyast files, you can easily roll out student desktops, database or web servers, beowulf clients or other servers specifically configured for a certain task. You can edit the options in the isolinux.cfg file and create a matching messages file to explain the options. Put the image on your PXE server and it gets even easier: no need to run to the machine and insert a CD!

Booting the Machine

It should be plain sailing from here on in. Boot from the CD. Once you have the install menu, you should be able to press F6 and select "ftp" as the installation source. Enter the name or IP address of your server and enter "suse10.0" as the installation directory. Of course, this assumes your FTP server is running, and its home is set to /srv/ftp.

If you use NFS, choose NFS, and add IP server and directory of cd1 in NFS server (shoud be /srv/ftp/suse10.0/cd1).

And you should be on the way.

Using Windows as a Server

I've not found a way to use the ISOs directly on windows, but you can certainly create a network install point only creating a boot CD.

  • Download and install Daemon Tools. This program allows you to mount the ISO as a drive letter on windows.
  • Mount the first CD, then copy all the files to, for example, d:\install\suse10.0
  • Repeat with all the other CDs. Say "yes to all" about overwriting files.
  • Share the d:\install directory as, for example, INSTALL. NOTE - I found the installer doesn't like spaces is the path, so don't put the files in a directory with spaces in.
  • If you have problems accessing the windows share, install a ftp-server on the windows system and install SUSE Linux via FTP
  • Make a boot cd of the Internet Installation Boot Image(boot.iso) and start with it the installation

Hopefully that will be it.