Auto Install
for
Mandrake Linux
10.0.2
Copyrights, Trademarks, Credits
Conventions Used in this Document
Contents of the Install Diskette
Contents of the HD_Grub Boot Diskette
Contents of the Boot CD-ROM and Diskette
Anatomy of the Boot Loader Configuration Files
Global Directives for syslinux / isolinux
Section Directives for syslinux / isolinux
General Paramters for syslinux / isolinux
Anatomy of the 'auto_inst.cfg' File
postInstall and postInstallNonRooted
The 'auto_inst.cfg' File Location
Scratch Built Auto Install Diskette
Things to know before starting
Network Auto Install Diskette Set
Boot CD-ROM and Auto Install Diskette
Creating an Updated Installation CD Set
Advanced and Less Error Prone Approaches
Alternate for Creating the Initial Image
Alternate for Creating an Updated CD Set
Setting up a Simple NFS Server
Network and Connection Examples
Single Interface Connections to a LAN or Internet
The Mandrake Linux Distribution provides a facility, DrakX, which allows for the automated installation on to computers that you use or manage.
The DrakX graphic installer has the capability of being used in the both interactive and automated modes. This document deals specifically with it's automated capability.
Automated Installation is intended for situations where the same 'Install' set is to be placed on multiple computers. This can be a substantial time saver for anyone. More importantly, the automation means that you do not have to sit in front of each computer filling in the blanks, picking this and that and hoping that you remember the selections you chose the previous time.
As a side benefit, it can be used as an emergency backup to re-install the same packages and basic configuration data on a computer that failed, lost everything and your normal back-ups can not be used to restore the computer.
I am sure that there are more reasons to use the automated features, but that's your experiment. Me, I was just tired of having to remember what I installed the last time. Also, this document provides me with the opportunity to give back to the Linux community something in kind.
The following sections will provide an overview of the process, details regarding the Install disks and the configuration files which drive the installation process.
Copyright © 2002,2003,2004 by David Eastcott.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
Trademarks are the property of their respective owners.
Credits: The Staff at MandrakeSoft for providing this capability.
This document is based on the original DrakX documents provided by MandrakeSoft.
Special thanks to Pixel and Guillaume Cottenceau at MandrakeSoft for their suggestions, corrections, insight and patience.
This document presents information in different ways in an attempt to differentiate between regular text and text which has special meaning or usage. The following table illustrates the various text forms:
This is regular text |
General text used through out this document. Those of you viewing the HTML forms of this document can change this font to one you prefer through your browsers settings. The use of Bold and Italic have been minimized but are used to provide emphasis in the text you are reading. |
/root/drakx/ |
A mono-spaced font is used to represent any text which you would see in a text file or could be expected to type at a command line. Including directories, file names and commands. |
Hyper-link to sections within the scope of this document. |
|
Hyper-link to web sites on the internet. Since this document is available in non-web page form I have tried to minimize the use of hyper-links which do not explicitly contain the URL to external web sites. |
|
kernel
vmlinuz |
Text with a Light Blue background is used to indicate the contents (fragments too) of text found in the isolinux.cfg, menu.lst, syslinux.cfg and auto_inst.cfg files. For those of you reading a paper copy, it will probably be difficult to distinguish between blue and grey. |
#!/bin/bash |
Text with a Light Grey background is used to indicate the contents of other files, predominantly Bash/Perl Scripts but may include file fragments which are illustrating the use of concepts presented in the document. |
|
|
The following Icons are used to provide special emphasis regarding the text to its immediate right:
![]()
|
Indicates that the text is providing important clarification or information and should be examined closely. |
![]()
|
Indicates something that you should NOT do, or at least be very certain that you understand the consequences if you do. |
![]()
|
Indicates that the text is describing optional information which is outside the scope of this document and that you may find useful. |
![]()
|
Indicates something that would probably make your experience with the concepts in this document a bit more enjoyable. |
This document has been revised to conform with the capabilities of the 10.0 release. It is available in a number of formats, as an OpenOffice document, Adobe PDF (optimized for printing), HTML (both as a single file and multi-part hyper-linked) and PostScript.
You can find this document on the Mandrake Linux web site at:
http://www.linux-mandrake.com/drakx (then look for the 'kickstart' link)
or:
For current HTML and PDF versions as I generate them or, for older versions and my small collection of related stuff you can visit:
http://members.shaw.ca/mandrake/
If you find an error or some feature I missed you can contact me by email at david@eastcott.net.
10.0.02 |
2004-03-12 |
Adjustments: Conventions Used in this Document: added description. Installation Methods: added a description for the HD_Grub boot diskette and some minor editorial things. Contents of the HD_Grub Boot Diskette: added description. Anatomy of the Boot Loader Configuration Files: replaces the section title Anatomy of the 'syslinux.cfg' and 'isolinux.cfg' Files, adjusted text to describe the three boot loader files in more detail. Anatomy of the 'auto_inst.cfg' File: manualFstab: added 'toFormatCheck' and re-use partitions example. partitions: added some options. services: remove 'udev' service and add warning about getting services actually generated. useSupermount: add 'magicdev' option description. Scratch Built Auto Install Diskette: added Grub Auto Install Diskette. Problems and Issues: add issues about the Community Release.
|
10.0.01 |
2004-02-20 |
Adjustments: Contents of the Boot CD-ROM and Diskette: add test directory. Network Auto Install Diskette Set: remove Test Drive warning and adjust text for latest stage1 improvements. Boot CD-ROM and Auto Install Diskette: add note that the diskette can be both vfat or ext2. Problems and Issues: remove Dual Diskette Network Install Hack. Total reformatting and cleanups for html versions.
|
10.0.0 |
2004-02-15 |
Initial adjustments for 10.0: Introduction: introduce the 'boot.iso' solution and expand descriptions to include the contents of a CD-ROM created from the 'boot.iso' file. Anatomy of the 'syslinux.cfg' and 'isolinux' Files: added information for isolinux, added parameters proxy_host and proxy_port. Anatomy of the 'auto_inst.cfg' File: minor changes identified in the Options Summary table. Advanced Features: removed warning about IP-based Naming bug. Scratch Built Auto Install Diskette: adjusted and added sections for creating the Network Diskette Set and the Boot CD-ROM methods. Creating an Updated Installation CD Set: adjusted myCD.conf and a few minor script fixes. Problems and Issues: updated with issues as of cooker 2004-02-14. |
Installation of the Mandrake Linux distribution on a computer(s) depends on a number of things:
Environment: |
is the computer connected to a network, are you trying to use the computer for more than one Operating System (Multi-Boot). |
Equipment: |
does the computer contain conventional hardware, or are there special considerations such as USB or PCMCIA devices. |
Preferences: |
what works best for you or your situation. |
MandrakeSoft has gone to great lengths to simplify the installation process of their distribution on a large variety of computers, yet provide you a choice of approaches.
The Mandrake Linux distribution provides support for three primary installation methods (sources):
via CD-ROM
via Hard Disk with Linux, Windows or Reiser file systems
via Network based Services such as NFS, FTP or HTTP
In addition, there are a few variations that provide support for specific equipment:
via PCMCIA devices
via Other (Non-standard hardware)
And finally, if none of the above work with your hardware, there are a series of Alternatives which utilize different kernel versions for each of the above.
If you have time, read the file on the first Installation CD called INSTALL.htm and the one in the images directory called README for a bit more detail.
|
DVD-ROM and CD-ROM are synonymous within this document, except where noted. Installation via Hard Disk has changed and now uses the Grub Boot Loader. Installation via Network Services has changed due to the new 2.6 kernel and the number of network device drivers that need to be supported. Mandrake has split the Network Services boot image into two disk images, one to hold the kernel and message files and a second that contains the network device driver files. Installation can also be performed for any of the available methods by using the new Bootable ISO image. This method allows the use of all three installation modes.
|
CD-ROM based installation is portable. With a floppy diskette and the CD-ROM set, you can install the distribution, anywhere, on any computer that has a CD-ROM drive and a floppy disk drive.
Hard Disk based installation is more for those of you that have multiple disk drives installed in the target computer, one to hold the distribution file set and a second which will contain the installed system. This would most likely be used in situations where the computer dual boots Linux and other OS's. It is not very portable, but it does afford one the ability to install Linux without disturbing the existing OS and it is very fast.
Network based installation is where the flexibility of the Automated Installation process really shines. One computer holds the distribution file set, all other computers only require network based access to the file set. Now I can just carry a single CD-ROM and a diskette to hold the configuration file or 2 diskettes, insert in the desired computer, push reset and go for coffee (almost - the 2 diskettes require that I hang around until the installer prompts me for the second diskette).
With the three options, NFS, FTP and HTTP, you can actually install files from one computer to another, anywhere in the world. However, there are performance and reliability issues which you will have to be prepared to deal with when accessing servers outside your own local world.
There are three installation modes that may be employed for each of the methods:
Manual |
this mode is where you select every thing interactively. Most people use this method when they are installing the distribution on their personal workstation computer. |
Fully Automated |
this mode is where all selections are predetermined, the installation process is controlled, without manual intervention, by the contents of a simple configuration file and, progress is indicated by simple text messages. It is ideally suited for installations on identical computers. Creative individuals using the postInstall features can overcome most obstacles. |
Replay |
this mode is very similar to the fully automated mode, except that progress is indicated via a graphical presentation and, the configuration file provides you with the ability to manually intervene during certain steps. You will love this one for situations where the computers are virtually identical, but you would normally have created a custom install disk to deal with certain hardware peculiarities or, you have a need to perform customization with each installation. |
As I indicated earlier, you are going to have to make some choices that fit your situation and environment. The beauty of all these Choices is that you are not stuck doing it one way....
Before getting started, you should review the descriptions of the various Installation Mediums (diskette, CD-ROM) in the sections following this one.
The simplest approach to get started is to perform a Manual Install, then generate the desired Auto Install diskette. However, before you get started, please check the Errata page on the Mandrake web site (www.linux-mandrake.com) since there may be information there that applies to your equipment. The following are a brief set of steps to get you started.
1. |
decide if you are going to perform a CD-ROM, Hard Disk or Network based install. If you are going to do a CD-ROM install, then skip the next step. |
2. |
copy the contents of all three CD-ROMs (or single DVD), or obtain the file set via ftp and: |
a) |
For a Hard Disk, make sure that the Mandrake Linux file set is present on one of the computer's hard disks (partitions). Remember to retain the CD's directory hierarchy. Also, this method requires that you place the files on one of three types of file systems: Linux (ext2), Windows (vfat) or Reiser (a journaling file system). |
b) |
For network services, make sure the Mandrake Linux file set is accessible on the server you want to use. (see section Setting up a Simple NFS Server). Remember to retain the CD's directory hierarchy. |
3. |
Create a boot floppy disk(s) using the appropriate image file(s): images/cdrom.img for a CD-ROM based install (only if your computer can not boot from CD-ROM). images/hd_grub.img for a Hard Disk based install images/network.img and images/network_drivers.img for a Network Services based install. Or create a CD-ROM using the images/boot.iso for an install using any of the available methods. See the INSTALL.txt and the images/README files for instructions on how to create the diskette(s). Also you will find additional / alternate images to use which may resolve situations for your particular equipment setup. |
4. |
Boot the computer and perform the installation manually. |
5. |
JUST before re-booting, select 'Advanced', then select 'Generate an auto install floppy', then pick either 'Replay' or 'Automated'. This will create the needed diskette(s) containing all the basic files you will need for the next installation. |
6. |
Review the contents of the diskette(s) and adjust as necessary before using. See the remainder of this document. |
7. |
Install any where, any time and as often as you like, or until the coffee runs out. |
There are a number of different and innovative approaches that you could use rather than the simplistic one above, but then that your job, eh? However, for those of you who are a bit braver or, just want to do it your self then you should see the section Scratch Built Auto Install Diskette for a examples of various customized approaches.
For those of you who were so excited about installing and test driving the new Mandrake Linux release that you forgot to 'Generate an auto install floppy', no problem. Mandrake Linux has a tool available, as part of the drakconf program (Mandrake Control Center), that will allow you to generate an Auto Install disk at any time after the initial installation, see the section Replay Install for details. Or you can get a copy of the auto_inst.cfg.pl file located in the directory /root/drakx.
In addition to the standard CD-ROM and DVD installations that most users are familiar with, Auto Installation makes use of floppy diskettes and CD-ROMs to initiate and control the installation process. The next three sections describe the contents of the diskette(s) that you generated at the end of the manual installation process described in the previous section.
After completing the 'Generate an auto install floppy' step (using the cdrom, network or pcmcia images), you should have a diskette (two for Network Services based installs) containing the following files:
advanced.msg
This file contains some text that describes a number of advanced options. You could customize this.
auto_inst.cfg
This file contains your selections. See the section Anatomy of the 'auto_inst.cfg' File for details. For Network Services based installs, this file is on the second diskette. In case you were wondering, you will also find this file in the /root/drakx directory with the name auto_inst.cfg.pl.
boot.msg
This file contains a graphic image that appears as soon as you boot from the diskette. You could customize this.
help.msg
This file contains some text regarding the start up options and keys, which you can customize too. It is optional and may not be present on your generated diskette (space limitations).
ldlinux.sys
This is what booted (boot loader). Don't mess with it.
cdrom.rdz or hd.rdz or network.rdz
The file name is dependent on the Method you used to perform the manual install. It contains stage 1 of DrakX and other things which are needed for the automated install.
syslinux.cfg
This file contains information that controls the operation of the 'ldlinux' boot loader. You may have to modify this. See the section Anatomy of the Boot Loader Configuration Files for details.
vmlinuz
This is the compressed Linux kernel image file. Don't mess with this one either.
modules.mar
This file contains all the possible network device drivers supported by the Stage1 installer. It is only present on the second diskette of Network Services based install diskette set.
After completing the 'Generate an auto install floppy' step (using the hd_grub image), you should have a diskette containing the following files:
auto_inst.cfg
This file contains your selections. See the section Anatomy of the 'auto_inst.cfg' File for details. In case you were wondering, you will also find this file in the /root/drakx directory with the name auto_inst.cfg.pl.
menu.lst
This file contains information that controls the operation of the 'grub' boot loader. You may have to modify this. See the section Anatomy of the Boot Loader Configuration Files for details. MandrakeSoft has a web page, http://qa.mandrakesoft.com/hd_grub.cgi, that you should use to help with setting specific parameters need to boot your computer's hardware.
stage1
This is used to load and run stage2. Do not mess with it
stage2
This is the actual Grub Boot Loader program. Do not mess with it either.
After completing the 'Generate an auto install floppy' step, the only file, on the diskette, that is important is:
auto_inst.cfg
This file contains your selections. See the section Anatomy of the 'auto_inst.cfg' File for details. In case you were wondering, you will also find this file in the /root/drakx directory with the name auto_inst.cfg.pl.
After creating a CD-ROM from the boot.iso file, you should have a CD-ROM containing the following files in the isolinux/ directory:
advanced.msg
This file contains some text that describes a number of advanced options. You could customize this.
boot.cat
This file contains information for the isolinux boot loader. Don't mess with it.
boot.msg
This file contains a graphic image that appears as soon as you boot from the diskette. You could customize this.
help.msg
This file contains some text regarding the start up options and keys, which you can customize too.
isolinux.bin
This is what booted (boot loader). Don't mess with it.
isolinux.cfg
This file contains information that controls the operation of the 'isolinux' boot loader. You may have to modify this. See the section Anatomy of the Boot Loader Configuration Files for details.
alt0 and alt1
Are directories containing the following files:
all.rdz
It contains stage 1 of DrakX and other things which are needed for the install.
vmlinuz
This is the compressed Linux kernel image file. Don't mess with this one either.
test
directory containing the memory test program (Press F2 on boot to access).
The contents of the files, syslinux.cfg, menu.lst, isolinux.cfg and auto_inst.cfg, are what the bulk of this document is about, so with out further a due....
Installation is initiated by 'booting' the computer with a specially created boot media (floppy or CD-ROM) that is used to start Stage 1 of the Mandrake Linux installation. Stage 1, after obtaining the necessary information, loads and activates the main installation program referred to as Stage 2. Stage 1 and Stage 2 are collectively known as DrakX. This section deals specifically with Stage 1 and the configuration files used by the boot loaders.
The boot media contains a Boot Loader, kernel and the Stage 1 program (the term 'gi' is associated with or is the name of the Stage 1 program). Due to changes in the Mandrake Linux distribution, there are now three different boot loader programs used, depending on the installation method desired. The following table illustrates the boot image files (located in images) and their associated media, boot loader and configuration file:
Image |
Boot Media |
Boot Loader |
Configuration File |
---|---|---|---|
boot.iso |
CD-ROM |
isolinux |
isolinux/isolinux.cfg |
cdrom.img |
floppy |
syslinux |
syslinux.cfg |
hd_grub.img |
floppy |
grub |
menu.lst |
network.img and network_drivers.img |
2 x floppy |
syslinux |
syslinux.cfg |
pcmcia.img |
floppy |
syslinux |
syslinux.cfg |
|
|
|
|
Please refer to the section Getting Started and the documentation INSTALL.txt and images/README (on your CD-ROM or the down loaded file set) for details regarding the creation of your desired boot media.
Regardless of the boot media used, the boot process goes something like this:
1. |
The computers' BIOS reads the Master Boot Record (MBR), |
2. |
Then loads and runs the Boot Loader program, |
3. |
The Boot Loader reads its configuration file and retrieves the location and name of the file containing the kernel to be started and the parameters to be passed to the kernel (what this section is all about), |
4. |
The kernel is loaded and it in turn runs the Stage 1 install program (its actually hidden in the initial ram disk (the file ending with the .rdz extention). |
5. |
And now ... |
The files, isolinux.cfg, menu.lst and syslinux.cfg are used to specify what the boot loader is supposed to do and what options, if any, are available to an installer (you) at boot time. In addition, the boot loader passes parameters to the linux kernel when it loads and starts the kernel; a few of the parameters are used by the kernel, but all the parameters are available to the Stage 1 program. Some of these parameters are specific to an installation method (as is the initial ram disk contained on the floppy/CD-ROM).
Consequently, the Auto Install diskette that you created (at the end of your initial installation or from the Mandrake Control Center on a running system) is set up to match the installation method that was originally used. If you are planning to install multiple computers the same way, then you are all set.
However, if you intend to change the installation method, you will have to create your own Auto Install diskette (see the section Scratch Built Auto Install Diskette). The reason for this is due to the flexibility needed to support a variety of installation methods and options. You just can not get it all on one diskette. This is not as bad as you may think, since the most important file, auto_inst.cfg, is independent of the installation method.
The following are going review the contents of the configuration files as used by MandrakeSoft. For an in-depth description of the capabilities of each loader, please visit their web sites:
for GRUB see the site: http://www.gnu.org/software/grub
for SYSLINUX/ISOLINUX see the site: http://syslinux.zytor.com
Lets begin with samples of the configuration files used for each boot loader. Please note the similarities / differences as you examine them.
This is a fragment extracted from a isolinux.cfg file used with a Network Services:NFS install:
default linux |
prompt 1 |
timeout 50 |
display boot.msg |
F1 help.msg |
F2 advanced.msg |
F3 boot.msg |
label linux |
kernel alt0/vmlinuz |
append ramdisk_size=128000 initrd=alt0/all.rdz root=/dev/ram3 acpi=ht |
vga=788 kickstart=floppy automatic=method:nfs, |
server:fileserver,directory:/Mandrake/10.0, |
network:static,ip:192.168.5.202,netmask:255.255.255.0, |
gateway:192.168.5.253,dns:192.168.5.253 |
|
All the text starting with append through 255.255.255.0, are on ONE line. |
This is a fragment extracted from a menu.lst file used with a Disk Install:
timeout 5 |
default 0 |
fallback 0 |
|
title Mandrake Install |
|
root (hd0,6) |
kernel /cooker/isolinux/alt0/vmlinuz ramdisk_size=128000 |
root=/dev/ram3 acpi=ht vga=788 kickstart=floppy |
automatic=method:disk,dis:hde,par:hde7,dir:/cooker, |
initrd /cooker/isolinux/alt0/all.rdz |
|
All the text starting with kernel through cooker, are on ONE line. |
This is a fragment extracted from a syslinux.cfg file used with a Network Services:NFS install.
default linux |
prompt 1 |
timeout 50 |
display boot.msg |
F1 help.msg |
F2 advanced.msg |
F3 boot.msg |
label linux |
kernel vmlinuz |
append ramdisk_size=128000 initrd=network.rdz root=/dev/ram3 acpi=ht |
vga=788 kickstart=floppy automatic=method:nfs, |
server:fileserver,directory:/Mandrake/10.0, |
network:static,ip:192.168.5.202,netmask:255.255.255.0, |
gateway:192.168.5.253,dns:192.168.5.253 |
|
All the text starting with append through 255.255.255.0, are on ONE line. |
As you can see, the syslinux.cfg and isolinux.cfg files are nearly identical but the menu.lst file is very different. Before we discuss these similarities / differences, we need to review the basic organization of the files.
Each file contains a set of directives which control the actions of the boot loader. These directives can be divided into two groups; global directives and section specific directives. The global ones control the operation of the boot loader, whereas the section directives are only effective when the installer (you) selects them.
The global directives usually occur at the beginning of the file and specify things like which section is selected by default, how long to wait for the installer to select a section, etc.
The section specific directives are identified by a line containing label <name> or title <name> and are followed by two or more lines which specify the kernel image to load and, what parameters to pass to the kernel (and the Stage 1 program) and the initial ram disk image to be used. The <name> parameter is the value that an installer would type in (or select) at the boot prompt to select a specific section other than the default one.
Two of the above fragments , syslinux.cfg
and isolinux.cfg, are
virtually identical except for the
kernel
alt0/vmlinuz and the initrd=alt0/all.rdz.
These similarities are the result of the two boot loaders being
supplied by the same developer. The difference is simply due to the
placement of the files on the associated boot media.
The third fragment, menu.lst, is substantially different. This is due to the fact that a different developer had a concept that differed from that of the developer of the other two fragments.
However, the important part of these three fragments begins with kickstart=. This is the start of the Stage 1 parameters and are the subject of this section.
The section Scratch Built Auto Install Diskette will provide you with example for all three boot loaders.
The following details the purpose of the directives that you can use in the three configuration files. You should visit the web page for each boot loader for more information regarding their capabilities and the options that are available to you. MandrakeSoft only uses a subset because they are generating "general purpose" files. You, on the other hand, are not as limited.
Boot Graphics
If you want to change the default graphics (boot.msg) for the syslinux or isolinux boot loaders, you need to read the file /usr/share/doc/syslinux*/README.graphics.
The Global Directives are not method or mode specific, rather they affect all methods / modes the same.
default linux |
if the user presses ENTER or the optional timeout expires, this tells the loader to locate the section with the label linux and begin booting the kernel as defined by the lines after the label <name>. |
prompt 1 |
this tells the loader to prompt the user to enter an alternate label rather than just using the default section. You can have several different boot scenarios in this file, which is the reason that the generated file has so much in it. This parameter is optional, removing it means the installer (you) will not have the ability to select an alternate boot section. |
timeout 50 |
this tells the loader to give the installer (you) 5 seconds to begin entering another label before using the default section and continuing on with the boot/install process. This parameter is optional and is not necessary if prompt is not used. |
display boot.msg |
this tells the loader
to display the contents of the specified file before presenting a
prompt. This is optional, but it may be a good idea to remind
the installer what is being installed. If you want a flashy
graphic message, then see the file
|
F1 help.msg |
if the user presses the F1 key, then display the specified file's contents. This parameter and associated file are optional. |
F2 advanced.msg |
if the user presses the F2 key, then display the specified file's contents. This parameter and associated file are optional. |
F3 boot.msg |
if the user presses the F3 key, then display the specified file's contents. This parameter and associated file are optional. |
label linux |
this names a section that defines specific information that the loader uses for booting Stage 1 of the installation process. The value associated with any section label can be typed by the user at the prompt to instruct the loader to find the specific section, rather than use the one named by the default directive. |
default 0 |
if the optional timeout expires, this tells the loader to locate the first section with the title keyword and begin booting the kernel as defined by the lines after the title. As usual, the debate about 0 meaning first continues. |
fallback 0 |
this tells the loader to use an alternate section should a error be encountered with the default section. This parameter is optional, removing it means the installer will not have the ability to select an alternate boot section. |
timeout 5 |
this tells the loader to give the user 5 seconds to select another section (title) before using the default and continuing on with the boot/install process. A value of 0 means wait forever. |
title linux |
this names a section that defines specific information that the loader uses for booting Stage 1 of the installation process. The value associated with any section label can be selected by the user at the prompt to instruct the loader to find the specific section, rather than use the one identified by the default directive. |
Section directives are preceded with the label (or title) directive.
In this case, a section contains a kernel and an append directive (see the section Advanced Features for special options).
kernel vmlinuz |
this is the name of the file containing the compressed kernel image to load and start. |
append=... |
this is a list of space separated parameters passed to the kernel when the loader starts it. |
If you look in the file that was generated, you will find a number of sections (choices) that an installer could select. Each has a different effect or purpose which the following table briefly describes:
vgalo, vgahi, vga16 |
Are just different resolutions for graphic installs. |
text |
Is a text based install. |
expert |
Has the advantage of disabling Automatic Hardware Detection. |
rescue |
Allows you to repair an already installed system using the CD-ROM. |
patch |
Allows you to install a patch from a floppy diskette. |
acpi |
Enables the Advanced Configuration and Power Interface. The other sections limit the ACPI to boot time enumeration. See the kernel documentation for more details. |
memtest |
Starts the stand-alone memory test. NOTE: only available when using the CD-ROM created from the boot.iso image. |
In this case, a section contains a kernel and an initrd directive (see the section Advanced Features for special options).
root (hd0,6) |
this tells the boot loader what disk drive and partition on the hard disk, as seen from the BIOSs' perspective, where the specified kernel and initial ram disk can be found. This can be really tricky for those of you, like me, using a mother board with a 'promise' controller (possibly others) that an installed system sees as /dev/hde but the BIOS sees it as the first hard drive. |
|
Mandrake has provided a web page to help you solve this little pain in the butt at: http://qa.mandrakesoft.com/hd_grub.cgi. |
kernel ... |
this is a list of space separated parameters passed to the kernel when the loader starts it. The name of the compressed kernel image is specified here and the boot loader installs it into memory before activating it and passing it the parameters. |
initrd ... |
this is the location of the initial ram disk image that is loaded and used to create a temporary file system for the kernel when the loader starts it. |
DrakX supports a substantial number of parameters that can be used to control its operation. This section will describe just the ones that affect the Automated Install.
|
You are going to get caught with this one so I will tell you now; the kernel will only pass a maximum of 256 characters from the 'append' (or 'kernel') line through to the Stage 1 installer, so be careful. |
If you examine the configuration file fragments closely, you will notice that there are a few kernel parameters present. These are normally placed at the end of the 'append' (or 'kernel') line so that the 256 character limit can be fully used for parameters passed to the Stage 1 installer. For the convenience of this documents text, I placed them at the end.
The following are common and not related to a specific method or mode but they are specific to the boot loader used.
kickstart=floppy |
required, do not change. This actually causes the installer to look on the floppy diskette for the auto_inst.cfg file. An interesting tidbit; if you omit this option and set the automatic= option, you can do GUI based installs without having to enter the method information each time. Of course the auto_inst.cfg file, if present, is ignored. |
netauto |
optional, this parameter is required if you are using a DHCP server to provide the name of the auto_inst.cfg file. See the section Advanced Features - DHCP Server. |
ramdisk_size=128000 |
required kernel parameter, do not change. |
root=/dev/ram3 |
required kernel parameter, do not change. |
acpi=ht |
optional kernel parameter, dependent on your motherboard. For more details check the kernel document Documentation/kernel-parameters.txt. |
vga=788 |
required, can be changed. Generally, this parameter affects the GUI installation, but it does have interesting effects when used in the Automated install. If you want details, then check out the kernel documents: Documentation/svga.txt and Documentation/i386/boot.txt |
text |
80x25 text |
vga16 |
80x25 text, 640 x 480 GUI |
785 |
80x30 text, 640 x 480 GUI (frame buffer) |
788 |
100x37 text, 800 x 600 GUI (frame buffer) |
791 |
130x48 text, 1024 x 768 GUI (frame buffer) |
794 |
158x64 text, 1280 x 1024 GUI (frame buffer) |
Others you can play with: |
|
0x0f01 |
80x50 text |
0x0f02 |
80x43 text |
0x0f03 |
80x28 text |
0x0f05 |
80x30 text |
0x0f06 |
80x34 text |
0x0f07 |
80x60 text |
0x0122 |
100x30 text |
Ask |
prompt for desired video characteristics to use. You can use this to determine the selections actually available for your video card. |
initrd=network.rdz |
required, changes based on the type of method being used: |
cdrom.rdz |
for CD-ROM |
hd_grub.rdz |
for Hard Disk |
network.rdz |
for Network Services |
all.rdz |
used with 'boot.iso' |
pcmcia.rdz |
for PCMCIA devices |
kickstart=floppy |
required, do not change. This actually causes the installer to look on the floppy diskette for the auto_inst.cfg file. An interesting tidbit; if you omit this option and set the automatic= option, you can do GUI based installs without having to enter the method information each time. Of course the auto_inst.cfg file, if present, is ignored. |
ramdisk_size=128000 |
required kernel parameter, do not change. |
root=/dev/ram3 |
required kernel parameter, do not change. |
acpi=ht |
optional kernel parameter, dependent on your motherboard. For more details check the kernel document Documentation/kernel-parameters.txt. |
vga=788 |
required, can be changed. Generally, this parameter affects the GUI installation, but it does have interesting effects when used in the Automated install. If you want details, then check out the kernel documents: Documentation/svga.txt and Documentation/i386/boot.txt |
text |
80x25 text |
vga16 |
80x25 text, 640 x 480 GUI |
785 |
80x30 text, 640 x 480 GUI (frame buffer) |
788 |
100x37 text, 800 x 600 GUI (frame buffer) |
791 |
130x48 text, 1024 x 768 GUI (frame buffer) |
794 |
158x64 text, 1280 x 1024 GUI (frame buffer) |
Others you can play with: |
|
0x0f01 |
80x50 text |
0x0f02 |
80x43 text |
0x0f03 |
80x28 text |
0x0f05 |
80x30 text |
0x0f06 |
80x34 text |
0x0f07 |
80x60 text |
0x0122 |
100x30 text |
Ask |
prompt for desired video characteristics to use. You can use this to determine the selections actually available for your video card. |
The automatic parameter is used to select the install method type (cdrom, disk, nfs, ftp or http) and to specify additional parameters as necessary. Any additional parameters are appended after the method type, with each being separated by a COMMA (,) rather than a SPACE. It uses the following general form:
automatic=method:<type>,<parameter>:<value>,
The following are a summary of the method parameters grouped by method type along with any special notes. The additional parameters are simply concatenated together to form a single comma separated string.
automatic=method:cdrom,
|
For those of you that are using CD-ROMs as the source media, the option interactive (see the section Anatomy of the 'auto_inst.cfg' File) is especially pertinent to package installation from more than the first CD. |
domain:eastcott.net, |
allows you to preset the domain name for the computer. |
hostname:linux1, |
allows you to set the host name for the computer. |
automatic=method:disk,
directory:/Mandrake/10.0, |
root directory where the files are found or, it may also specify the location and name of an ISO image (this image must be the 'first' CD's ISO image). |
|
If you specify an ISO file name, then you will be limited to installing ONLY those packages which are available in that ISO image. You will not be able to install packages from the other ISO images which form the complete set. |
disk:hda, |
disk drive containing the directory or ISO image. |
domain:eastcott.net, |
allows you to preset the domain name for the computer. |
hostname:linux1, |
allows you to set the host name for the computer. |
partition:hda6, |
partition number of the specified disk drive containing the directory or ISO image. |
automatic=method:nfs,
interface:eth1, |
specifies the ethernet interface to use (eg. eth0, eth5, etc.). It is only required when there is more than 1 ethernet interface. This feature can only be used if DrakX can auto detect ALL the ethernet cards. The trick when installing with multiple network card is convincing the computer that the ethX you specify is the same one it thinks is ethX. If you do not use the interface parameter, DrakX will ask you which one you want and then it will prompt you for the relevant information based on your specified method. |
server:fileserver, |
machine where the installable files are located, can be an IP or a host.domain (or host). |
directory:/Mandrake/10.0, |
root directory where the files are found. |
network:static, |
means you are going to specify the necessary IP information; |
ip:192.168.5.202, |
what is it for this machine. |
netmask:255.255.255.0, |
what is it's netmask. This is optional and is only required if you are using a non-standard netmask. |
gateway:192.168.5.253, |
what is the gateway's IP. This is optional and should only be included if the specified fileserver is not located on the same subnet. |
dns:192.168.5.253, |
what is the IP for the DNS server. Up to three DNS servers can be specified, each IP is separated by a comma. This is optional and should not be included if you do not have or use a DNS server. If it is not included, then the server: option must contain an IP address instead of a name. |
or |
|
network:dhcp, |
means the IP, netmask, gateway and dns parameters are provided by the dhcp server. Depending on how the dhcp and DNS servers are configured, the host name and domain name may also be supplied. |
or |
|
network:adsl, |
means the IP, netmask, gateway and dns parameters are provided by the ADSL service provider when you connect. |
adsluser:my_adsl_name, |
user name, as required, to login to your ADSL service provider. |
adslpass:my_password, |
password, as required, to login to your ADSL service provider. |
|
If you have selected network:adsl, be aware that ONLY the PPPoE protocol is currently supported. |
domain:eastcott.net, |
optionally allows you to preset the domain name for the computer. This parameter is only required if the stage 1 installer can not obtain the domain name from your DNS Server for the IP address that you specified. |
hostname:linux1, |
optionally allows you to set the host name for the computer. This parameter is only required if the stage 1 installer can not obtain the host name from your DNS Server for the IP address that you specified. |
automatic=method:ftp,
interface:eth1, |
specifies the ethernet interface to use (eg. eth0, eth5, etc.). It is only required when there is more than 1 ethernet interface. This feature can only be used if DrakX can auto detect ALL the ethernet cards. The trick when installing with multiple network card is convincing the computer that the ethX you specify is the same one it thinks is ethX. If you do not use the interface parameter, DrakX will ask you which one you want and then it will prompt you for the relevant information based on your specified method. |
server:fileserver, |
machine where the installable files are located, can be an IP or a host.domain (or host). |
directory:/Mandrake/10.0, |
root directory where the files are found. |
network:static, |
means you are going to specify the necessary IP information; |
ip:192.168.5.202, |
what is it for this machine. |
netmask:255.255.255.0, |
what is it's netmask. This is optional and is only required if you are using a non-standard netmask. |
gateway:192.168.5.253, |
what is the gateway's IP. This is optional and should only be included if the specified fileserver is not located on the same subnet. |
dns:192.168.5.253, |
what is the IP for the DNS server. Up to three DNS servers can be specified, each IP is separated by a comma. This is optional and should not be included if you do not have or use a DNS server. If it is not included, then the server: option must contain an IP address instead of a name. |
or |
|
network:dhcp, |
means the IP, netmask, gateway and dns parameters are provided by the dhcp server. Depending on how the dhcp and DNS servers are configured, the host name and domain name may also be supplied. |
or |
|
network:adsl, |
means the IP, netmask, gateway and dns parameters are provided by the ADSL service provider when you connect. |
adsluser:my_adsl_name, |
user name, as required, to login to your ADSL service provider. |
adslpass:my_password, |
password, as required, to login to your ADSL service provider. |
|
If you have selected network:adsl, be aware that ONLY the PPPoE protocol is currently supported. |
domain:eastcott.net, |
optionally allows you to preset the domain name for the computer. This parameter is only required if the stage 1 installer can not obtain the domain name from your DNS Server for the IP address that you specified. |
hostname:linux1, |
optionally allows you to set the host name for the computer. This parameter is only required if the stage 1 installer can not obtain the host name from your DNS Server for the IP address that you specified. |
user:anonymous, |
user name, as required, for ftp login. |
pass:david@eastcott.net, |
pass word, as required, for ftp login. |
proxy_host:prx.eastcott.net, |
optionally specifies the gateway to contact the real ftp host. |
proxy_port:8080, |
used with proxy_host to specify the port number to be used. |
automatic=method:http,
interface:eth1, |
specifies the ethernet interface to use (eg. eth0, eth5, etc.). It is only required when there is more than 1 ethernet interface. This feature can only be used if DrakX can auto detect ALL the ethernet cards. The trick when installing with multiple network card is convincing the computer that the ethX you specify is the same one it thinks is ethX. If you do not use the interface parameter, DrakX will ask you which one you want and then it will prompt you for the relevant information based on your specified method. |
server:fileserver, |
machine where the installable files are located, can be an IP or a host.domain (or host). |
directory:/Mandrake/10.0, |
root directory where the files are found. |
network:static, |
means you are going to specify the necessary IP information; |
ip:192.168.5.202, |
what is it for this machine. |
netmask:255.255.255.0, |
what is it's netmask. This is optional and is only required if you are using a non-standard netmask. |
gateway:192.168.5.253, |
what is the gateway's IP. This is optional and should only be included if the specified fileserver is not located on the same subnet. |
dns:192.168.5.253, |
what is the IP for the DNS server. Up to three DNS servers can be specified, each IP is separated by a comma. This is optional and should not be included if you do not have or use a DNS server. If it is not included, then the server: option must contain an IP address instead of a name. |
or |
|
network:dhcp, |
means the IP, netmask, gateway and dns parameters are provided by the dhcp server. Depending on how the dhcp and DNS servers are configured, the host name and domain name may also be supplied. |
or |
|
network:adsl, |
means the IP, netmask, gateway and dns parameters are provided by the ADSL service provider when you connect. |
adsluser:my_adsl_name, |
user name, as required, to login to your ADSL service provider. |
adslpass:my_password, |
password, as required, to login to your ADSL service provider. |
|
If you have selected network:adsl, be aware that ONLY the PPPoE protocol is currently supported. |
domain:eastcott.net, |
optionally allows you to preset the domain name for the computer. This parameter is only required if the stage 1 installer can not obtain the domain name from your DNS Server for the IP address that you specified. |
hostname:linux1, |
optionally allows you to set the host name for the computer. This parameter is only required if the stage 1 installer can not obtain the host name from your DNS Server for the IP address that you specified. |
proxy_host:prxy.eastcott.net, |
optionally specifies the gateway to contact the real http host. |
proxy_port:8080, |
used with proxy_host to specify the port number to be used. |
Documenting how you should use the network:dhcp option and the related domain and hostname options is difficult since they are highly dependent on the characteristics and interactions of your DHCP and DNS servers. In addition to the conventional servers, there are a number of devices capable of acting as DHCP servers for a LAN which are designed primarily for use in the Windows world and may require a bit of effort on your part to get it working.
Since there are may ways to set the DHCP / DNS servers up, I will present a few of the more common arrangements and what may be required for the Stage 1 installer. These are by no means the only ways.
DHCP servers can be configured to provide IP, host name and domain name information based solely on the ethernet address of the network card in a computer. An associated DNS server can be pre-configured with the IP and host name association, or the DHCP server can inform the DNS server of the IP/name association (Dynamic DNS). In this case all that is required is the network:dhcp, parameter.
Another configuration scenario is where the computer must supply a host name when requesting IP information, then the DHCP server will return the IP, host name, and domain name information. This is the usual case for most Cable Modem connections and is the behaviour exhibited by most Windows based computers. Again, the DNS server can be pre-configured with the association or the DHCP server can inform it with the necessary information (DDNS). In this case, both the network:dhcp, and hostname:linux1, parameters are required.
Finally, there is the case where the DHCP server does not return the host name or domain name to be used, and/or the DNS server does not contain the IP to name association or is not informed by the DHCP server. In this case you will need to supply all three parameters, network:dhcp,hostname:linux1,domain:eastcott.net.
The Stage 1 installer passes what ever information it is provided (from the parameters supplied, from the DHCP server or the DNS server) to the stage 2 installer to set up the final configuration for your computer. Your actual DHCP / DNS environment will have an impact on two possible aspects of an automated install. For NFS installs, if the IP that you are assigned does not have an associated host name that the NFS server can obtain from a DNS server, you will have to ensure that the NFS server is set for IP authentication rather than name authentication (see the section Setting up a Simple NFS Server, Step 5). Also, the DHCP server can be configured to supply the name and location of the auto_inst.cfg file (see the section DHCP Server) in the Advanced Features section of this document.
Regardless of how you think every things is supposed to work, you are advised to discuss things with your network administrator and experiment a bit to determine the best approach(s) for your actual environment.
The problem of the 256 character line length can be mitigated somewhat by the use of aliases for some of the parameters as follows:
Full Name |
Alias |
adslpass |
adslp |
adsluser |
adslu |
directory |
dir |
disk |
dis |
domain |
dom |
gateway |
gat |
hostname |
hos |
interface |
int |
method |
met |
netmask |
netm |
network |
netw |
password |
pass |
partition |
par |
proxy_host |
proxh |
proxy_port |
proxp |
server |
ser |
user |
use |
By rewriting one of the fragments from the beginning of this section using the aliases, you get the following:
default linux |
prompt 1 |
timeout 50 |
display boot.msg |
F1 help.msg |
F2 advanced.msg |
F3 boot.msg |
label linux |
kernel vmlinuz |
append kickstart=floppy automatic=met:nfs, |
ser:fileserver,dir:/Mandrake/10.0, |
netw:static,ip:192.168.5.202,netm:255.255.255.0, |
gat:192.168.5.253,dns:192.168.5.253 ramdisk_size=128000 |
initrd=network.rdz root=/dev/ram3 acpi=ht vga=788 |
|
All the text starting with append through 788 are on ONE line. |
For those of you who noticed, this example is now passed through to the Stage 1 installer intact (which, by the way, the original fragment is not).
The automated installation feature of DrakX is controlled by the contents of a file named 'auto_inst.cfg'. This file is generally located on the boot floppy diskette that you create manually, at the end of the initial installation process, or using the Mandrake Control Center (drakconf) or drakautoinst from an installed system. However, it can also be located in a sub-directory of the method installation source media (see the section The 'auto_inst.cfg' File Location).
The contents of the auto_inst.cfg file are comprised of a Perl Scalar Structure declaration (o). The declaration $o = {...}; is used by the DrakX program to preset various options and selections. Within the opening/closing braces are a series of simple and/or compound declarations (representing your selections).
During a manual install, the various declarations are created and the appropriate fields filled in as you made choices from the various screens. Then when you created the Automated or Replay diskette, selected portions of this structure were simply dumped to a file that will control the actions of DrakX when an Automated or Replay install is done.
An Automated Install requires that all the choices be pre-selected using either the file generated by the install program or, manually by you. Me, I am a bit lazy so I generate an initial diskette at the end of the install or using drakautoinst, then modify it to suit my requirements.
The remainder of this section describes the options available for the o$ declaration.
As always, if you want the gory details regarding how and what, look on the CD-ROM (or installation source media) in the directory Mandrake/mdkinst/usr/bin/perl-install for the actual perl modules. MandrakeSoft has made the DrakX installer code available for public inspection via their CVS repository (see http://www.linux-mandrake.com/cgi-bin/cvsweb.cgi/). In addition to the source code, there are a variety of documents and text files that contain things you may be interested in.
There are a substantial number of options (choices) that are available to you and the following is a brief summary of the ones that you can preset (just to wet your appetite). You will find detailed descriptions for each, along with examples, on the subsequent pages.
|
|
||
|
M |
||
|
|
||
|
|
||
|
|
||
|
M |
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
M |
||
|
|
||
|
|
||
M |
|
||
M |
M |
||
|
|
||
|
|
|
|
There have been some additions and a number changes to the various options since the previous release of Mandrake Linux. I have added an indicator: N (new), C (important changes to content) or M (modified, added or deleted capability) to the left of each affected option listed above.
Additional notes: wacom is now defined in the 'mouse' option.
This option is used to specify how user logins are authenticated.
'authentication' => { |
|
'shadow' => 1, |
'md5' => 1, |
'NIS' => undef, |
'LDAP' => undef, |
'winbind' => undef, |
}, |
Descriptions:
'shadow' |
Indicates if shadow passwords are used. |
|
0 - disables |
|
1 - enables |
'md5' |
Used to specify if md5 encryption is to be used for passwords. |
|
0 - disables, (use default crypt) |
|
1 - enables |
'NIS' |
Indicates if a NIS server is to be used for authentication |
|
'' - if NIS is not being used. Also, if this line is not present, it means no NIS too. |
|
'broadcast' - if the NIS server is accessed via a broadcast message |
|
'<nisserver>' - name of the machine containing the NIS server. |
'LDAP' |
Indicates if a LDAP server is to be used for authentication. |
|
'' - if LDAP is not being used. Also, if this line is not preset, it means no LDAP too. |
|
'<ldapserver>' - name of the machine containing the LDAP server. |
'windbind' |
Indicates if a Windows PDC (primary domain controller) is being used for authentication. |
|
'' - if the PDC is not being used. Also, if this line is not preset, it means no PDC too. |
|
'<AdminUser>' - user name to be used to join the domain. |
'winpass' |
used only with 'windbind'. |
|
'' - no pass word. |
|
'<AdminPass>' - pass word to be used when joining the domain as '<AdminUser>'. |
|
For this to work for a W2K PDC, you will probably need to have the administrator run: |
|
C:\>net localgroup "Pre-Windows2000 Compatible Access" everyone /add |
and reboot the server. |
By default, Mandrake Linux installations enable md5 and shadow. Also, you will probably have noticed that the GUI based install no longer gives you the ability to select/de-select these two, rather the Local files selection is used to indicate them.
If you select NIS, LDAP or winbind, you will have to add NISDOMAIN, LDAPDOMAIN or WINDOMAIN to the option netc. If the appropriate one is not added, then the installer automatically sets them to the same value as DOMAINNAME.
Examples:
The following is used to illustrate the expected entries for a Windows PDC:
'authentication' => { |
|
'windbind' => 'Administrator', |
'winpass' => 'admin' |
}, |
Related Option Entries:
This option is used to direct the installation process to automatically exit and re-boot the computer when the installation is complete.
'autoExitInstall' => 1, |
Descriptions:
'autoExitInstall' |
what you want to do when installation is complete |
|
0 - prompt the installer to re-boot and wait |
|
1 - re-boot the computer automatically. |
|
When you do a manual install, the auto_inst.cfg.pl file created in /root/drakx has this value set to 1. If you generated an Automated or Replay diskette, the auto_inst.cfg file also has this value set to 1. CHANGE it to 0, otherwise the computer will re-boot and start the install all over again. |
Related Option Entries:
none.
This is used to have the system automatically login a specific user, rather than having the usual login prompt. This feature can be used with a single user only and, the user should be defined (see the option users).
If the auto-login feature is not desired, then do not include this in your file.
'autologin' => 'david', |
Descriptions:
'autologin' |
specifies the name of the user that the system is to automatically log in as. Change it as you desire, but to a valid user only. |
The installation process creates the file /etc/sysconfig/autologin and places USER=<your user name> along with a few other values in it.
Related Option Entries:
This option allows you specify the boot loader to be installed and the associated parameters that it requires. The general structure and relevant parameters for each loader are presented and explained in their own section, rather than trying to show you the whole thing and adding comments indicating which parameter is valid for which boot loader. Also, check the notes at the end of each section for tidbits.
A couple things worth noting:
|
The new graphic startup display (bootsplash) is activated when the 'default' kernel image loaded has the 'linux' label. |
The verbosity of both the kernel and the SysVinit scripts is controlled by the presence or absence of the keyword 'quiet' in the 'append' declaration. |
The following is specifically for the x86 architecture.
DrakX is capable of installing either the Lilo or Grub boot loaders for 'x86' type computers. The following causes DrakX to install the Lilo boot loader and create the file /etc/lilo.conf. You really want to look at 'man conflicting' for the correct explanation for some of the following.
'bootloader' => { |
|
'method' => 'lilo-text' |
'boot' => '/dev/hda', |
'default' => 'my_linux', |
'install' => '/boot/boot.b', |
'lba32' => 1, |
'map' => '/boot/map', |
'message' => "My text boot up\n", |
'timeout' => '5', |
|
'entries' => [ |
{ |
'type' => 'image', |
'kernel_or_dev' => '/boot/vmlinuz', |
'label' => 'my_linux', |
'root' => '/dev/hda6', |
'initrd' => '/boot/initrd.img', |
'append' => 'mem=128M', |
'read-write' => 0, |
or |
'type' => 'other', |
'kernel_or_dev' => '/dev/zip', |
'label' => 'zip', |
'unsafe' => 1, |
} |
] |
}, |
Descriptions:
'method' |
this entry defines the boot loader options; for x86 and IA64 computers this may be one of the following: |
|
'lilo-text' - the LILO boot loader is installed with a simple text based prompt. |
|
'lilo-menu' - the LILO boot loader is installed with a text based menu. |
|
'lilo-graphic' - the LILO boot loader is installed with a graphical menu. |
|
'grub' - the GRUB boot loader is installed. |
'append' |
if present, it is placed in the lilo.conf and used as lilo's default for any per image entry that does not contain an 'append'. It is used to specify parameters to be passed to the kernel. eg. 'mem=128M console=ttyS0,9600n8'. |
'boot' |
this allows you to specify the disk drive that it to be used as the boot device. Do not include the partition number. eg. '/dev/hda' or '/dev/hde'. |
'compact' => 1, |
if present, says to try and merge read requests for adjacent sectors. This is seldom used. |
'crushMbr' => 1, |
if this is present, it means replace (crush) the existing Master Boot Record and install the lilo equivalent. |
'default' |
this is used to specify the default kernel image to boot. The value here is the 'label' value for one of the defined 'entries'. eg. 'my_linux'. |
'install' |
this is used to
specify the file containing the new master boot record. |
'linear' => 1, |
if present, says to generate linear sector addresses instead of sector/head/cylinder. This is seldom used. Use only if the device does not support 'lba32'. |
'map' |
this is the name and location of the map file created by lilo. eg. '/boot/map'. |
'message' |
this allows you to create a customized boot message. It is optional and if included, causes the file /boot/message to be created containing your string (don't forget to include '\n' where appropriate. Also use double quotes (") ). If it is not included, then DrakX creates a default message for you. |
'password' |
if present, it specifies a pass word string (clear text) used to protect booting of all images. eg. 'dickie'. In addition, the permissions for lilo.conf will be set to 0600. |
'perImageAppend' => '', |
if this is present, then DrakX uses the values here as the append for each entry it automatically creates. Note, DrakX creates this if it detects that there are any IDE CD-RW or CD Burners installed, if the 'miscellaneous' => { 'HDPARM '} is set, if it detects that you used mem= at the boot prompt or, if the syslinux.cfg file contains either mem= or console= in the append directive. |
|
NOTE: If console=ttyS0,9600n8 is present somewhere in the value, then DrakX will automatically add serial=0,9600n8 to the lilo.conf file. You can set the parameters for the console= to what ever you require, the previous was just an example. However, if you do use the console= , you might want to consider adding it to the 'append' as well. |
'restricted' => 1, |
if present, reduces the boot up password enforcement so that the user must enter a pass word only if the user enters additional parameters. 'password' must be present if 'restricted' is present. |
'timeout' |
the time, in seconds,
to wait for the user to enter a desired image. |
'vga' |
if present, this is used to set the default video mode and can be: |
'ask' |
Ask at boot (kinda nice if you're just playing around) |
'normal' |
80 x 25 (default) |
'0x0f01' |
80 x 50 |
'0x0f02' |
80 x 43 |
'0x0f03' |
80 x 28 |
'0x0f05' |
80 x 30 |
'0x0f06' |
80 x 34 |
'0x0f07' |
80 x 60 |
'0x0122' |
100 x 30 |
'785' |
640 x 480 in 16 bits (Frame Buffer only) |
'788' |
800 x 600 in 16 bits (Frame Buffer only) |
'791' |
1024 x 768 in 16 bits (Frame Buffer only) |
'794' |
1280 x 1024 in 16 bits (Frame Buffer only) |
'entries' |
this is an array of 'per image' entries describing selectable boot images. Normally you should not need to add any since DrakX installs a number of default entries which represent your computer's equipment. However if you do add a new one and it has the same label as an internally defined one (linux, linux-2.2, linux-hack, failsafe, failsafe-2.2, failsafe-hack, floppy, default, linux-up, linux-2.2up, linux-hackup, linux-nonfb, linux-2.2nonfb, linux-hacknonfb, NT, dos, windows) DrakX will rename your new one to old_... when it adds yours. So be careful. |
Each entry has one of two forms:
'type' => 'image', |
specifies that this image describes a Linux kernel image to boot. |
'kernel_or_dev' |
specifies the location
and name of the kernel image to boot. |
'label' |
specifies the name associated with this image. eg. 'my_linux'. |
'root' |
specifies the partition to be mounted as 'root'. eg. '/dev/hda6'. |
'initrd' |
if present, specifies
the location and name of the initial ram disk to be loaded. |
'append' |
if present, specifies
the kernel parameters for this image. |
'vga' |
if present, specifies the video mode to be used with this image. ( See 'vga' above.). |
'read-write' => 1, |
if present, indicates the root file system is to be mounted read-write. If it is NOT present, then the root file system is mounted read-only. |
or,
'type' => 'other', |
specifies that this image describes an arbitrary operating system to boot. |
'kernel_or_dev' |
specifies the device to boot. eg. '/dev/zip' or '/dev/hdb'. |
'label' |
specifies the name associated with this image. eg. 'my_linux'. |
'unsafe' => 1, |
see man lilo.conf. |
'table' |
see man lilo.conf. |
'map-drive' |
see man lilo.conf. |
This loader is used on PowerPC computers. The following causes DrakX to create the file /etc/yaboot.conf. You really want to look at 'man yaboot.conf' for the correct explanation for some of the following.
'bootloader' => { |
|
'method' => 'yaboot', |
|
'boot' => '/dev/hda', |
'delay' => 30, |
'default' => 'my_linux', |
'defaultos => 'linux', |
'enablecdboot' => 1, |
'enableofboot' => 1, |
'init-message' => "My init text\n", |
'message' => "My text boot up\n", |
'timeout' => 50, |
'xfsroot' => undef, |
|
'entries' => [ |
{ |
'type' => 'image', |
'kernel_or_dev' => '/boot/vmlinuz', |
'label' => 'my_linux', |
'root' => '/dev/hda6', |
'initrd' => '/boot/initrd.img', |
'append' => undef, |
'read-write' => 0, |
} |
] |
}, |
Descriptions:
'methods' |
this entry defines the boot loader options the PowerPC and must be 'yaboot'. |
'append' |
if present, it is placed in the yaboot.conf and used as yaboot's default for any per image entry that does not contain an 'append'. It is used to specify parameters to be passed to the kernel. eg. 'mem=128M serial=0,9600n8'. |
'boot' |
this allows you to specify the disk drive that it to be used as the boot device. Do not include the partition number. eg. '/dev/hda' or '/dev/hde'. |
'delay' |
the time, in seconds, for the Open Firmware Delay. |
'default' |
this is used to specify the default kernel image to boot. The value here is the 'label' value of one of the defined 'entries'. eg. 'my_linux'. |
'defaultos' |
is one of 'linux', 'macos', 'macosx' or 'darwin'. |
'enablecdboot' => 1, |
enables booting from CD. |
'enableofboot' => 1, |
enables booting using Open Firmware. |
'init-message' |
this allows you to create a customized boot message. It is optional and if included, will causes the file boot loader to display your string. Also use double quotes ("). |
'message' |
this allows you to create a customized boot message. It is optional and if included, causes the file /boot/message to be created containing your string (don't forget to include '\n' where appropriate. Also use double quotes (") ). If it is not included, then DrakX creates a default message for you. |
'perImageAppend' => '', |
if this is present, then DrakX uses the values here as the append for each entry it automatically creates. Note, DrakX creates this if it detects that there are any IDE CDRW or CD Burrners installed, if the 'miscellaneous' => { 'HDPARM '} is set, if it detects that you used mem= at the boot prompt or, if the syslinux.cfg file contains either mem= or console= in the append directive. |
'timeout' |
the time, in tenths (0.1) of seconds, to wait for the user to enter a desired image. eg. '10'. Also, this forces a prompt for the 'label' name to boot. |
'xfsroot' => 1, |
causes initrd-size=6144 to be added to every entry with a type of 'image'. |
'entries' |
this is an array of 'per image' entries describing selectable boot images. DrakX installs a number of default entries and normally you should not need to add any. However if you do add a new one and it has the same label as an internally defined one (linux, linux-2.2, linux-hack, failsafe, failsafe-2.2, failsafe-hack, default, linux-up, linux-2.2up, linux-hackup, linux-nonfb, linux-2.2nonfb, linux-hacknonfb, NT, dos, windows) DrakX will rename your new one to old_... when it adds yours. So be careful. |
Each entry has one of two forms:
'type' => 'image', |
specifies that this image describes a Linux kernel image to boot. |
'kernel_or_dev' |
specifies the location
and name of the kernel image to boot. |
'label' |
specifies the name associated with this image. eg. 'my_linux'. |
'root' |
specifies the partition to be mounted as 'root'. eg. '/dev/hda6'. |
'initrd' |
if present, specifies
the location and name of the initial ram disk to be loaded. |
'append' |
if present, specifies
the kernel parameters for this image. |
'read-write' => 1, |
if present, indicates the root file system is to be mounted read-write. If it is NOT present, then the root file system is mounted read-only. |
or
'type' => 'other', |
causes an entry to be added to yaboot.conf with the 'label=' set to the Open Firmware device. |
Examples (for x86):
This first one is the simplest and I use it on a server to obtain a simple text based boot prompt, rather than the default graphic one. This also lets DrakX fill in all the auto detected stuff for me.
'bootloader' => { |
|
'method' => 'lilo-text' |
'crushMbr' => 1 |
}, |
|
I use the 'crushMbr' here to make sure that whatever is on the disk is replaced with lilo's boot loader. This may not be suitable for everyone (such as dual boot or if you want to keep the existing MBR). Your installation needs may be different, so use with caution. |
This one adds an additional boot image that I use on my test machine to increase the size of the default ram disk.
'bootloader' => { |
|
'method' => 'lilo-text' |
|
'entries' => [ |
{ |
'type' => 'image', |
'kernel_or_dev' => '/boot/vmlinuz', |
'label' => 'bigdisk', |
'root' => '/dev/hda6', |
'initrd' => '/boot/initrd.img', |
'append' => 'ramdisk=8192k' |
} |
] |
}, |
If I had wanted to make this new image the one which is automatically booted, then I would have added 'default' => 'bigdisk', just before the 'entries'.
Related Option Entries:
This option is only to be used in conjunction with 'compssUsersChoice'. It allows you to install packages based on their relative importance and has the following is its general form:
'compssListLevel' => 5, |
Descriptions:
'compssListLevel' |
the desired rating value can be one of: |
|
5 - Must Have |
|
4 - Important |
|
3 - Very nice |
|
2 - Nice |
|
1 - Maybe |
Mandrake has taken most of the installable packages (*.rpms found in Mandrake/RPMS ...) and categorized them, hierarchically, into Groups (eg. Office, KDE) and then refined it a bit further into sub-groups (packages which should only be installed if the corresponding tag has been selected) and then finally applied a numerical rating (1 through 5) to each package. If you look in the file Mandrake/base/rpmsrate, you can see the group/sub-group tags, followed by the rating levels and each package assigned to that level.
When you use 'compssListLevel', DrakX will install every package which has a rating greater than or equal ( '>=' ) to the value you specify with this option, regardless of the group or sub-group they have been listed in.
|
Since the Mandrake Linux distribution comes on a varying number of CD's, you may find packages listed which are not found on the ones that you downloaded or bought - not to worry, DrakX knows this and will only attempt to install packages that you actually have. |
Examples:
See the section 'compssUsersChoice' for examples. Using this option without 'compssUsersChoice' will not produce the result that older versions (earlier than 8.1) did.
Related Option Entries:
compssUsersChoice, default_packages
This option is an alternate package selection method and if used, then 'compssListLevel' must be defined as well. These two options used together closely mimic the GUI based install where you selected which package groups to install. It has the following general form:
'compssUsersChoice' => { |
|
'<group_tag>' => 1, |
'<group_tag>' => 1 |
}, |
Descriptions:
'<group_tag>' - is one of the following:
ACCESSIBILITY ARCHIVING GNOME KDE AUDIO 3D GNOME KDE BOOKS BURNER DEVELOPMENT GNOME KDE COMMUNICATIONS KDE CONFIG DATABASES DATABASES_SERVER DEVELOPMENT DEVELOPMENT BOOKS GNOME KDE DEVELOPMENT_OTHER DOCS EDITORS GNOME KDE EMULATORS FILE_TOOLS GAMES 3D GNOME KDE GNOME GRAPHICAL_DESKTOP GRAPHICS GNOME KDE INSTALL NOCOPY KDE LSB
|
MONITORING GNOME KDE PCMCIA X NETWORKING_CHAT KDE NETWORKING_CHAT_SERVER NETWORKING_DNS NETWORKING_DNS_SERVER NETWORKING_FILE GNOME NETWORKING_FILE_SERVER BOOKS KDE NETWORKING_FILE_TRANSFER GNOME KDE NETWORKING_FILE_TRANSFER_SERVER NETWORKING_FIREWALLING_SERVER NETWORKING_GROUPWARE_SERVER NETWORKING_INSTANT_MESSAGING GNOME KDE NETWORKING_IRC KDE NETWORKING_LDAP_SERVER NETWORKING_MAIL GNOME KDE NETWORKING_MAIL_SERVER NETWORKING_NEWS GNOME KDE NETWORKING_NEWS_SERVER NETWORKING_OTHER KDE NETWORKING_OTHER_SERVER NETWORKING_REMOTE_ACCESS KDE NETWORKING_REMOTE_ACCESS_SERVER BOOKS NETWORKING_WWW GNOME KDE
|
NETWORKING_WWW_SERVER BOOKS NIS NIS_SERVER OFFICE GNOME KDE PHOTO PUBLISHING BOOKS CUPS SCANNER SCIENCES HDF KDE SHELLS BOOKS SPELLCHECK SOUND KDE SYSTEM BIGMEM BOOKS HIGH_SECURITY KDE NIS PCMCIA SMP USB TERMINALS GNOME KDE TEXT_TOOLS BOOKS TV VIDEO WEBMIN WIZARDS X GNOME HIGH_SECURITY KDE USB |
|
The indented tags indicate that there are packages in the corresponding Group which will only be installed if the indented tag is specified as well. If you look in the file Mandrake/base/rpmsrate, you can see the group/sub-group tags, followed by the rating levels and packages that are assigned to that level. |
Before you get too carried away, remember that DrakX is going to install what it considers an essential minimum set of packages, then it looks at your selections and adds any extras that you selected and, any additional packages that are needed for your choices to operate properly.
Examples:
How do you select things? Well, have you ever tried the game 'Rubics Cube'; its kinda like that but with a bigger block.
First pick the features you want, then select the desktop you want to use. Then create a list of tags. Or you can look at the file Mandrake/base/compssUsers to see how Mandrake grouped things for the GUI Group Package selection screen and go from there. Finally, you have to set the package rating level you want as the minimum using 'compssListLevel'.
The following are some simple examples:
This is what would be selected if you were using the GUI install and selected the icons for Game station, Multimedia Station, Console Tools and KDE:
'compssUsersChoice' => { |
|
'GAMES' => 1, 'AUDIO' => 1, 'VIDEO' => 1, 'GRAPHICS' => 1, 'EDITORS' => 1, 'TERMINALS' => 1, 'TEXT_TOOLS' => 1, |
'SHELLS' => 1, 'FILE_TOOLS' => 1, 'KDE' => 1 |
}, |
|
'compssListLevel' => 5, |
This example is basically the same, except the rating level includes almost everything possible for these groups. The 'default_packages' option lets me add package(s) which would have been excluded.
'compssUsersChoice' => { |
|
'GAMES' => 1, 'AUDIO' => 1, 'VIDEO' => 1, 'GRAPHICS' => 1, 'EDITORS' => 1, 'TERMINALS' => 1, 'TEXT_TOOLS' => 1, |
'SHELLS' => 1, 'FILE_TOOLS' => 1, 'KDE' => 1 |
}, |
|
'compssListLevel' => 2, |
'default_packages' => [ 'joe' ], |
Kinda like the individual package selection of the GUI install. Except that the rating level gives you a bit more control on the basic package set installed.
This example is a short way to install almost everything.
'compssUsersChoice' => { |
|
'ALL' => 1 |
}, |
|
'compssListLevel' => 0, |
Related Option Entries:
compssListLevel, default_packages, excludedocs
This option is used to explicitly specify which packages are to be installed. It is simply a list of package names. For an example, see the file 'auto_inst.cfg.pl' that was placed in your /root/drakx after a graphic install. The general form is as follows:
'default_packages' => [ |
|
'<package-name>', |
'<package-name>' |
], |
Descriptions:
'<package-name>', |
name of the package to be installed, not including the version, release, architecture and filename extension. eg. if the package file name is acon-1.0.4-5mdk.i586.rpm then use 'acon',. |
If you are not sure of the name for the package you want installed, then use the following:
rpm -qp --queryformat %{NAME} <filename of package>
This will give you the name that the install is expecting.
After viewing the contents of the auto_inst.cfg or auto_inst.cfg.pl files, you may have noticed that the list does not contain all the packages that are installed in a system (rpm -qa | sort). This because a new approach is being used in an attempt to reduce the size of the files on the diskette. Basically, this means that packages 'required' by the listed ones do not have to be explicitly included in the list.
|
All packages must be in either the RPMS, RPMS2 or, RPMS3 directories. If you have added one, then see the section Creating an Updated Installation CD Set. |
Examples:
The following is a simple example to illustrate the use of this option.
'default_packages' => [ |
|
'fonts-ttf-west_european', |
'strace', |
'gurpmi', |
'reiserfsprogs', |
'kudzu', |
'linux_logo', |
'bc', |
'fonts-ttf-decoratives', |
'at', |
'MAKEDEV', |
'iputils', |
'imwheel', |
'rpmdrake', |
'locales-en', |
'sndconfig', |
'rxvt', |
'numlock', |
'nfs-utils-clients', |
'man-pages', |
'open', |
'ldetect', |
'XFree86-server', |
'hexedit', |
'ftp', |
'anacron', |
'DrakConf', |
'XFree86-75dpi-fonts', |
'icewm-light' |
], |
Related Option Entries:
compssUsersChoice, compssListLevel, excludedocs
This option is used to preset the default Desktop (Window Manager) for users.
'desktop' => 'KDE', |
Descriptions:
'desktop' |
if this option is present, then it may be any one of the following, provided of course it was installed: |
|
KDE |
|
GNOME |
|
WindowMaker |
|
Enlightenment |
|
Blackbox |
|
XFce |
|
ICEWM |
|
default |
|
failsafe |
The DrakX installer places the specified value into the file /etc/sysconfig/desktop.
|
Default means that if you are at Run Level 3 and you type startx, then the window manager defined in the file is used. If you have a graphic Login Screen and you select default, rather than one of the indicated Window Managers, then the window manager defined in this file is used. |
Related Option Entries:
This option instructs DrakX to inhibit the installation of any documents associated with packages being installed. Associated documents usually appear in /usr/share/docs in a sub-directory with the same base name as the package installed.
'excludedocs' => 1, |
Descriptions:
'excludedocs' |
what you want to do |
|
0 - include the package documentation. |
|
1 - exclude the package documentation. |
DrakX normally installs all documentation that is available with each package.
|
If the 'excludedocs' option is used, DrakX automatically adjusts the file /etc/rpm/macros so that any subsequent package installed also includes or excludes documentation based on your selection. |
Related Option Entries:
compssUsersChoice, default_packages
This option is used when you are doing auto installs from CD-ROM and some of the packages to be installed are on the 2nd or 3rd CD. Or if you would simply like a graphic display showing the installation progress, rather than the simplistic text which is the default for an automated install.
'interactive' => 'newt', |
Descriptions:
'interactive' |
Selects the method of graphic presentation: |
|
'newt' - simple graphical interface (for the memory limited). |
|
'gtk' - full graphical presentation similar to the GUI based install. |
The default operation of DrakX for automated installs does not allow for any interaction with the installer: Insert boot floppy, press reset and go for coffee. This approach works very well when installing via a network, but is inconvenient when using CDs and, some of the needed packages are on the second or third CD (they are skipped and you have to manually install them).
The interactive option allows you to perform a CD based auto install and have DrakX prompt you when it needs a different CD.
Related Option Entries:
none.
This option is used when you are creating a Replay Install configuration.
'interactiveSteps' => [ |
|
'doPartitionDisks', |
'formatPartitions' |
], |
Descriptions:
DrakX has the capability, Replay Auto Install, which can be used to assist installation on multiple computers with slightly different hardware configurations. This replay ability allows you to select one or more specific steps where you want to manually re-enter configuration selections.
Generation of a Replay Auto Install Disk and can be accomplished:
at the end of a Manual install where you select Advanced, Generate an auto install floppy, then Reply or, |
on an installed system by running the drakconf program or, |
manually creating the disk and files on it. |
To change a standard Auto Install into a Replay Auto Install, just add this option. For a more detailed description and a summary of the available steps, please review the section Replay Install.
Related Option Entries:
See Replay Install – Steps vs Options.
This option is used to define the various network (ethernet or wireless) capable devices in your system.
The following is the general form for the structure:
'intf' => { |
|
'ethx' => {}, |
and / or |
'wireless_eth' => {}, |
}, |
'ethx' |
used to indicate an ethernet card interface definition. The 'x' is a sequence number, beginning with 0, for each ethernet card installed. Up to 10 cards can be defined with this version of the installer. |
'wireless_eth' |
used to indicate that there is a wireless ethernet interface installed. Currently only a single interface is supported. |
For an ethernet card, the following are valid:
'eth0' => { |
|
'DEVICE' => 'eth0', |
'BOOTPROTO' => 'static', |
'ONBOOT' => 'yes', |
'IPADDR' => '192.168.5.202', |
'NETMASK' => '255.255.255.0', |
'NETWORK' => '192.168.5.0', |
'BROADCAST' => '255.255.255.0', |
'HWADDR' => '00:01:02:03:04:05' |
}, |
For a wireless interface, the following are valid:
'wireless_eth' => { |
|
'DEVICE' => 'wireless_eth', |
'BOOTPROTO' => 'static', |
'ONBOOT' => 'yes', |
'IPADDR' => '192.168.5.202', |
'NETMASK' => '255.255.255.0', |
'NETWORK' => '192.168.5.0', |
'BROADCAST' => '255.255.255.0', |
'WIRELESS_MODE' => 'Auto', |
'WIRELESS_ESSID' => 'any', |
'WIRELESS_NWID' => '', |
'WIRELESS_FREQ' => '', |
'WIRELESS_SENS' => '', |
'WIRELESS_RATE' => '', |
'WIRELESS_ENC_KEY' => '', |
'WIRELESS_RTS' => '', |
'WIRELESS_FRAG' => ',' |
'WIRELESS_IWCONFIG' => '', |
'WIRELESS_IWSPY' => '', |
'WIRELESS_IWPRIV' => '', |
}, |
Descriptions:
'DEVICE' |
must be the same as the 'ethx' (or 'wireless_eth') you used to start this definition with. |
'BOOTPROTO' |
may be one of 'static', 'dhcp' or 'bootp'. |
'ONBOOT' |
normally set to 'yes', but can be set to 'no' if you do not want the interface automatically started at boot up. |
'IPADDR' |
IP address ('x.x.x.x') for this interface, not required if BOOTPROTO is dhcp or bootp. |
'NETMASK' |
Network Mask ('x.x.x.x') to be used with this interface, not required if BOOTPROTO is dhcp or bootp. |
'NETWORK' |
base IP address ('x.x.x.x') for this interface, not required if BOOTPROTO is dhcp or bootp. |
'BROADCAST' |
broadcast IP address ('x.x.x.x') for this interface, not required if BOOTPROTO is dhcp or bootp. |
'HWADDR' |
the ethernet hardware address for the associated ether net interface card. Only required if the system is tracking the networking id (see miscellaneous). |
'MII_NOT_SUPPORTED' |
specifies whether or not the associated interface is monitored by the ifplug daemon (usually used only on laptops where the interface card is removable). If set to 'yes' then the device is not monitored, if set to 'no' then it is monitored. |
'DHCP_HOSTNAME' |
used only if the interface acquires its information from a DHCP server and this computer must supply a host name. If may have two formats, depending on the requirements of the DHCP server, either '<hostname>' or '<hostname>.<domainname>'. eg. 'dave1' or 'dave1.eastcott.net'. NOTE: this value can be different from the 'netc' HOSTNAME (when supplying a specific name to an ISP) and is usually just the host name (no domain name part). |
'NEEDHOSTNAME' |
used only if the DHCP server supplies the host name. If set to 'yes', then the dhcp client will request, then use the host name from the DHCP server. If omitted, then any host name supplied by the DHCP server is ignored. |
'WIRELESS_MODE' |
may be one of Ad-hoc, Managed, Master, Repeater, Secondary or Auto. |
'WIRELESS_ESSID' |
Extended Service System ID, and is a string representing the desired ID or 'any'. |
'WIRELESS_NWID' |
Network ID or Channel Sequence number |
'WIRELESS_FREQ' |
Operating frequency of the wireless radio component. (eg. '2.46G') |
'WIRELESS_SENS' |
Receive sensitivity |
'WIRELESS_RATE' |
Data transfer rate (eg. '11M') |
'WIRELESS_ENC_KEY' |
Encryption or scrambling key |
'WIRELESS_RTS' |
??? |
'WIRELESS_FRAG' |
??? |
'WIRELESS_IWCONFIG' |
list of parameters to be given to the program iwconfig. |
'WIRELESS_IWSPY' |
list of parameters to be given to the program iwspy. |
'WIRELESS_IWPRIV' |
list of parameters to be given to the program iwpriv. |
The entries for each interface appear in a configuration file located in /etc/sysconfig/network-scripts/. The configuration file name for each interface is formed by adding the DEVICE string to the end of 'ifcfg-'. In the example below, you would expect to find the file: /etc/sysconfig/network-scripts/ifcfg-eth0.
'intf' => { |
|
'eth0' => { |
|
'DEVICE' => 'eth0', |
... |
} |
}, |
Examples:
See the section Network and Connection Examples for various examples.
For a computer which does not have an ethernet or wireless interface, then use the following:
'intf' => {}, |
If the target computer has multiple interfaces, then use the following:
'intf' => { |
'eth0' => { |
|
... |
|
}, |
|
'eth1' => { |
|
... |
|
} |
} |
If the computer has more than one interface defined, make sure the 'netc' option identifies which one is the GATEWAYDEV.
If the computer has an interface with BOOTPROTO set to 'dhcp', then see 'netc' for selecting a 'dhcp_client' to be installed.
For those of you using a Wireless interface, the following are recommended reading for additional information:
The Wireless-HOWTO at www.linuxdoc.org and, |
Linux Wireless Howto Collection at www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ |
|
If you are trying to install ISA network cards
, DrakX does not auto detect them and as a result will not update
the /etc/modules.conf file
with the appropriate alias. However, the
|
There are a number of other variables that affect the operation of the dhcp clients and could be added to the appropriate interface configuration file using the 'postInstall' features including:
PEERDNS=yes |
causes the dhcp client to modify the /etc/resolv.conf file with values received from the DHCP server. |
PEERYP=yes |
casues the dhcp client to modify the /etc/yp.conf file with values received from the DHCP server. |
PEERNTPD=yes |
causes the dhcp client to modify the /etc/ntp.conf file with values it receives from the DHCP server. |
DHCP_TIMEOUT=15 |
changes the default time out of dhcp client to the number of seconds specified. |
See the file /etc/sysconfig/network-scripts/ifup to determine which variables are used with which dhcp client.
Related Option Entries:
netc, miscellaneous, postInstall
This option is used to tell DrakX to perform an upgrade instead of a full install.
'isUpgrade' => 0, |
Descriptions:
'isUpgrade' |
what you want to do |
|
0 - perform a full install |
|
1 - perform an upgrade |
An upgrade will examine the currently installed packages on the computer and upgrade only those packages necessary. It will add additional new packages that are 'required' by the new packages which are replacing older ones.
|
The 'isUpgrade' => 1, option does not always work properly for everyone, so use at your own risk. |
Related Option Entries:
none.
This option allows you to specify the type of keyboard you are using by specifying one of the country codes.
See file Mandrake/mdkinst/usr/bin/perl-install/keyboard.pm declaration for %keyboards which may contain a more up to date list.
'keyboard' => { |
|
'GRP_TOGGLE' => '', |
'KBCHARSET' => 'C', |
'KEYBOARD' => 'us' |
}, |
Descriptions:
'GRP_TOGGLE' |
specifies the key sequence used to switch keyboard layouts if you installed more than one. The value can be set to one of the following: |
'toggle' |
Right Alt key |
'shift_toggle' |
Both Shift keys simultaneously |
'ctrl_shift_toggle' |
Control and Shift keys simultaneously |
'caps_toggle' |
Capslock key |
'ctrl_alt_toggle' |
Control and Alt keys simultaneously |
'alt_shift_toggle' |
Alt and Shift keys simultaneously |
'menu_toggle' |
"Menu" key |
'lwin_toggle' |
Left "Windows" key |
'rwin_toggle' |
Right "Windows" key |
'ctrls_toggle' |
Both Control keys simultaneously |
'alts_toggle' |
Both Alt keys simultaneously |
'lshift_toggle' |
Left Shift key |
'rshift_toggle' |
Right Shift key |
'lalt_toggle' |
Left Alt key |
'lctrl_toggle' |
Left Control key |
'rctrl_toggle' |
Right Control key |
'' |
No toggle |
'KBCHARSET' |
specifies the keyboard character set to be used. The value here is obtained from the third (3rd) column of the table listed in the locale section for the language that you choose. |
'KEYBOARD' |
specifies the keyboard type used, possible values are: |
'al' |
Albanian |
'am_old' |
Armenian (old) |
'am' |
Armenian (typewriter) |
'am_phonetic' |
Armenian (phonetic) |
'ar' |
Arabic |
'az' |
Azerbaidjani (latin) |
'be' |
Belgian |
'ben' |
Bengali |
'bg' |
Bulgarian |
'bg_phonetic' |
Bulgarian (phonetic) |
'br' |
Brazilian (ABNT-2) |
'bs' |
Croat |
'by' |
Belarusian |
'ch_de' |
Swiss (German layout) |
'ch_fr' |
Swiss (French layout) |
'cz' |
Czech (QWERTZ) |
'cz_qwerty' |
Czech (QWERTY) |
'de' |
German |
'de_nodeadkeys' |
German (no dead keys) |
'dev' |
Devanagai |
'dk' |
Danish |
'dvorak' |
Dvorak |
'dvorak_no' |
Dvorak (Norwegian) |
'dvorak_se' |
Dvorak (Swedish) |
'ee' |
Estonian |
'es' |
Spanish |
'fi' |
Finnish |
'fr' |
French |
'ge_ru' |
Georgian (Russian layout) |
'ge_la' |
Georgian (Latin layout) |
'gr' |
Greek |
'gr_pl' |
Greek (polytonic) |
'guj |
Gujarati |
'gur' |
Gurmukhi |
'hu' |
Hungarian |
'hr' |
Croatian |
'ie' |
Irish |
'il' |
Israeli |
'il_phonetic' |
Israeli (Phonetic) |
'ir' |
Iranian |
'is' |
Icelandic |
'it' |
Italian |
'iu' |
Inuktitut |
'jp' |
Japanese 106 keys |
'kan' |
Kannada |
'kr' |
Korean |
'la' |
Latin American |
'lao' |
Laotian |
'lt' |
Lithuanian AZERTY (old) |
'lt_new' |
Lithuanian AZERTY (new) |
'lt_b' |
Lithuanian number row QWERTY |
'lt_p' |
Lithuanian phonetic QWERTY |
'lv' |
Latvian |
'mal' |
Malayam |
'mk' |
Macedonian |
'mm' |
Myanmar |
'mng' |
Mongolian (cryillic) |
'mt' |
Maltese (UK) |
'mt_us' |
Maltese (US) |
'nl' |
Dutch |
'no' |
Norwegian |
'ori' |
Oriya |
'pl' |
Polish (qwerty layout) |
'pl2' |
Polish (qwertz layout) |
'pt' |
Portuguese |
'qc' |
Canadian (Quebec) |
'ro2' |
Romanian (QWERTZ) |
'ro' |
Romanian (QWERTY) |
'ru' |
Russian |
'ru_yawerty' |
Russian (Yawerty) |
'sapmi' |
Saami (norwegian) |
'sapmi_sef' |
Saami (swedish/finnish) |
'se' |
Swedish |
'si' |
Slovenian |
'sk' |
Slovakian (QWERTZ) |
'sk_qwerty' |
Slovakian (QWERTY) |
'sr' |
Serbian |
'syr' |
Syriac |
'syr_p' |
Syriac (phonetic) |
'tel' |
Telugu |
'th' |
Thai keyboard |
'tj' |
Tajik keyboard |
'tml' |
Tamil |
'tscii' |
Tamil (Typewriter-layout) |
'tr_f' |
Turkish (traditional F model) |
'tr_q' |
Turkish (modern Q model) |
'ua' |
Ukrainian |
'uk' |
UK keyboard |
'us' |
US keyboard |
'us_intl' |
US keyboard (international) |
'uz' |
Uzbek (cryillic) |
'vn' |
Vietnamese numeric row QWERTY |
'yu' |
Yugoslavian (latin) |
Related Option Entries:
This option allows you to select the locale used for text presentations. The default is English US ('en_US').
See file Mandrake/mdkinst/usr/bin/perl-install/lang.pm declaration for %languages which may contain a more up to date list.
'locale' => { |
|
'lang' => 'en_US', |
'langs' => { |
|
'en_US' => 1, |
}, |
'country' => 'CA', |
'utf8' => '' |
} |
Descriptions:
'lang' |
specifies the default
language (see table below), not a locale. For example, all
locales speaking French (fr_FR fr_CH fr_BE fr_CA) it's 'fr',
for all locales speaking American English it's 'en_US'.
This parameter will be used to set the language-oriented locales
environment variables (LANG, LC_CTYPE, LC_MESSAGES, etc.). See
file Mandrake/mdkinst/usr/bin/perl-install/lang.pm
declaration for |
'langs' |
contains a list of one or more languages used to select the 'locales-*' packages for installation. |
'country' |
specifies the 2 letter
acronym for your country. For example, France will be 'FR',
USA will be 'US'. This
parameter will be used to set the country-oriented locales
environment variables (LC_NUMERIC, LC_MONETARY, etc). See file
Mandrake/mdkinst/usr/bin/perl-install/lang.pm
declaration for |
'utf8' => 1, |
used to force UTF-8
locales. However, it is normally left unset |
'af' |
Afrikaans |
iso-8859-1 |
'am' |
Amharic |
utf_am |
'ar' |
Arabic |
utf_ar |
'as' |
Assamse |
utf_bn |
'az' |
Azeri (latin) |
utf_az |
'be' |
Belarussian |
cp1251 |
'bg' |
Bulgarian |
cp1251 |
'bn' |
Bengali |
utf_bn |
'br' |
Brezhoneg |
iso-8859-15 |
'bs' |
Bosnian |
iso-8859-2 |
'ca' |
Catalan |
iso-8859-15 |
'cs' |
Czech |
iso-8859-2 |
'cy' |
Welsh |
utf_lat8 |
'da' |
Danish |
iso-8859-15 |
'de' |
German |
iso-8859-15 |
'el' |
Greek |
iso-8859-7 |
'en_US' |
English (US) |
C |
'en_GB' |
English (UK) |
iso-8859-15 |
'en_IE' |
English (Ireland) |
iso-8859-15 |
'eo' |
Esperanto |
unicode |
'es' |
Spanish (Spain, modern sorting) |
iso-8859-15 |
'et' |
Estonian |
iso-8859-15 |
'eu' |
Euskara (Basque) |
iso-8859-15 |
'fa' |
Farsi (Iranian) |
utf_ar |
'fi' |
Finnish (Suomi) |
iso-8859-15 |
'fo' |
Faroese |
iso-8859-15 |
'fr' |
French |
iso-8859-15 |
'ga' |
Gaelic (Irish) |
iso-8859-15 |
'gl' |
Galician |
iso-8859-15 |
'gu' |
Gujarati |
unicode |
'he' |
Hebrew |
utf_he |
'hi' |
Hindi |
unicode |
'hr' |
Croatian |
iso-8859-2 |
'hu' |
Hungarian |
iso-8859-2 |
'hy' |
Armenian |
utf_hy |
'id' |
Indonesian |
iso-8859-1 |
'is' |
Icelandic |
iso-8859-1 |
'it' |
Italian |
iso-8859-15 |
'ja' |
Japanese |
jisx0208 |
'ka' |
Georgian |
utf_ka |
'kn' |
Kannada |
utf_kn |
'ko' |
Korean |
ksc5601 |
'ku' |
Kurdish |
iso-8859-9 |
'li' |
Limbourgish |
iso-8859-15 |
'lo |
Laotian |
utf_lo |
'lt' |
Lithuanian |
iso-8859-13 |
'lv' |
Latvian |
iso-8859-13 |
'mi' |
Maori |
unicode |
'mk' |
Macedonian |
utf_cyr1 |
'ml' |
Malayalam |
unicode |
'mn' |
Mongolian |
utf_cyr2 |
'mr' |
Marathi |
unicode |
'ms' |
Malay |
iso-8859-1 |
'mt' |
Maltese |
unicode |
'nb' |
Norwegian Bokmaal |
iso-8859-1 |
'ne' |
Nepali |
unicode |
'nl' |
Dutch (Netherlands) |
iso-8859-15 |
'nn' |
Norwegian Nynorsk |
iso-8859-1 |
'oc' |
Occitan |
iso-8859-1 |
'pl' |
Polish |
iso-8859-2 |
'pt_BR' |
Portuguese (Brazil) |
iso-8859-1 |
'pt' |
Portuguese |
iso-8859-15 |
'ro' |
Romanian |
iso-8859-2 |
'ru' |
Russian |
koi8-u |
'se' |
Saami |
unicode |
'sk' |
Slovak |
iso-8859-2 |
'sl' |
Slovenian |
iso-8859-2 |
'sq' |
Albanian |
iso-8859-1 |
'sr' |
Serbian (Cyrillic) |
iso-8859-5 |
'sr@Latn' |
Serbian (Latin) |
iso-8859-2 |
'ss' |
Swati |
iso-8859-1 |
'st' |
Sotho |
iso-8859-1 |
'sv' |
Swedish |
iso-8859-1 |
'ta' |
Tamil |
utf_ta |
'te' |
Telugu |
unicode |
'tg' |
Tajik |
utf_cyr2 |
'th' |
Thai |
tis620 |
'tr' |
Turkish |
iso-8859-9 |
'uk' |
Ukrainian |
koi8-u |
'uz@Latn' |
Uzbek (Latin) |
utf_cyr2 |
'uz' |
Uzbek (Cyrillic) |
utf_cyr2 |
've' |
Venda |
iso-8859-1 |
'vi' |
Vietnamese |
utf_vi |
'wa' |
Walon |
iso-8859-15 |
'xh' |
Xhosa |
iso-8859-1 |
'yi' |
Yiddish |
utf_he |
'zh_TW' |
Chinese (Traditional) |
Big5 |
'zh_CN' |
Chinese (Simplified) |
gb2312 |
'zu' |
Zulu |
iso-8859-1 |
|
Not all languages are supported by all applications. The third column, above, is the character set for the language. |
Related Option Entries:
This option allows you to add additional entries to the /etc/fstab file on the target computer. The most notable include adding NFS mounts and Windows shares (smbfs). Possibilities include other devices which are not detected by the install program, partitions or devices which already exist on the target computer and have not been specified in the 'partitioning' option.
'manualFstab' => [ |
{ |
'device' => 'linux1:/nfscd/cdrom82', |
'mntpoint' => '/mnt/linux1', |
'type' => 'nfs', |
'options' => 'noauto,ro,nosuid,rsize=8192,wsize=8192' |
}, |
], |
Descriptions:
The fields for this option are identical to those you would see in the /etc/fstab file.
'device' |
a physical device (partition) such as 'hdd1' or, a nfs network device such as 'linux1:/nfscd/cdrom82' or, '//cherry/cherry-c' for smb file systems. |
'mntpoint' |
the file system mount point for the device. It is a good idea NOT to use a mount point that is created for the use of rpmdrake (eg. /mnt/nfs). |
'type' |
type of file system on the device ( eg. ext2, reiserfs, nfs,smbfs ). See man mount for a list of supported file types. You may also use numeric values for the type. |
'options' |
mount options for the device / file system being mounted and are very file system specific. See the appropriate man page for details about the options available. |
'passno' |
if present, the value specified is placed in the fifth (5) field (default value of 0 is used if this is omitted). See the man page for fstab (man fstab). |
'freq' |
if present, the value specified is placed in the sixth (6) field (default value of 0 is used if this is omitted). See the man page for fstab (man fstab). |
'toFormat' => 1, |
if present, causes the associated 'device' to be formatted. This selection is applicable to local devices only and is ONLY used when an EXISTING partition must be formatted prior to the actual installation (see the Note for the option 'partitioning'). |
'toFormatCheck' => 1, |
if present, causes the associated 'device' to be checked for Bad Blocks. This selection is applicable to local devices only and is ONLY valid if 'toFormat' is used. |
Examples:
The following is a simple example to illustrate specifying a Windows Share:.
'manualFstab' => [ |
{ |
'device' => '//cherry/cherry-c', |
'mntpoint' => '/mnt/cherry', |
'type' => 'smbfs', |
'options' => 'noauto,ro,username=david,password=hawker,workgroup=eastcott' |
'passno' => 0, |
'freq' => 0, |
}, |
], |
|
Because username
and password are present,
drakx will automatically create a file
|
The following is an example that re-uses existing partitions, including one that I did not want formatted (it contains a copy of the cooker files for testing the Grub auto install).
'partitioning' => { |
'eraseBadPartitions' => 0, |
'auto_allocate' => 0, |
'clearall' => 0, |
}, |
'manualFstab' => [ |
{ |
'device' => 'hde1', |
'mntpoint' => '/boot', |
'type' => 'ext3', |
'options' => 'defaults', |
'passno' => 1, |
'freq' => 2, |
'toFormat' => 1, |
}, |
{ |
'device' => 'hde5', |
'mntpoint' => 'swap', |
'type' => 'swap', |
'options' => 'defaults', |
}, |
{ |
'device' => 'hde6', |
'mntpoint' => '/', |
'type' => 'ext3', |
'options' => 'defaults', |
'passno' => 1, |
'freq' => 1, |
'toFormat' => 1, |
}, |
{ |
'device' => 'hde7', |
'mntpoint' => '/mnt/hd', |
'type' => 'ext2', |
'options' => 'defaults', |
'passno' => 1, |
'freq' => 2, |
'toFormat' => 0, |
}, |
], |
Related Option Entries:
This is where stuff goes that does not fit anywhere else.
'miscellaneous' => { |
|
'numlock' => 1, |
'HDPARM' => 1, |
'http_proxy' => undef, |
'ftp_proxy' => undef, |
'track_network_id' => undef |
}, |
Descriptions:
'numlock' |
if present, causes the numlock package to be installed. Whether it is set to 1 or 0 does not matter, the numlock service will be started with the result that keyboards' NumLock will be turned on after boot up. If you want it off after boot up, then you will have to create a services list which specifically excludes numlock (see the 'services' option ). |
'HDPARM' |
if present, then forces the 'perImageAppend', used by the bootloader, to have ALL IDE controllers set for auto tune (eg. ide0=autotune ide1=autotune). |
'http_proxy' |
if used, then it is set to the URL and port for the http proxy server. |
'ftp_proxy' |
if used, then it is set to the URL and port for the ftp proxy server. If you have specified
entries for the 'http_proxy'
or 'ftp_proxy' options,
DrakX places them in two files: /etc/profile.d/proxy.sh
and |
'track_network_id' |
if used, then it allows you to enable (1) or disable (0) the ethernet interface hardware address (ethernet hardware address) tracking. It is useful for Laptops where the interface card can be removed/replaced under varying circumstances. |
|
The option 'CLEAN_TMP'
has been removed, but you can still have the startup scripts clean
the |
Related Option Entries:
default_packages, bootloader, intf, services.
This option allows you to create a boot disk during the install process. Probably not something you want to do while doing an auto installation.
'mkbootdisk' => '', |
Descriptions:
'mkbootdisk' |
used to specify the floppy device that is to be used: |
|
'0' or '' - no boot disk |
|
'1' - if there is only 1 floppy drive in the system, then this will create the boot disk on it. |
|
'fd0' - if you have more than one floppy device, then you can specify the one to be used. It is the device name without the '/dev/' part. For IDE floppies it is typically 'fd0' or 'fd1', LS120 devices are 'pf0' and for scsi floppies, it is dependent on its LUN (eg. 'sdb'). |
Related Option Entries:
none.
This option is used to define the Mouse that is attached to the target computer. Use this option ONLY if you know the required information. By using this option, DrakX is inhibited from performing a 'Mouse Probe' in an attempt to automatically identify the type of mouse available. See 'nomouseprobe' for additional information.
'mouse' => { |
|
'type' => 'serial', |
'device' => 'ttyS1', |
'name' => 'Generic 2 Button Mouse', |
'nbuttons' => 2, |
'XEMU3' => 'yes', |
'MOUSETYPE' => 'Microsoft', |
'XMOUSETYPE' => 'Microsoft', |
'FULLNAME' => 'serial|Generic 2 Button Mouse', |
'WHEEL' => 'no', |
'wacom' => [], |
}, |
Descriptions:
'type' |
one of 'PS/2', 'USB', 'serial', 'busmouse', 'Universal' or 'none'. See table for mice for each type. |
'device' |
device file to use: |
|
'psaux', for PS/2 |
|
'ttySx', where x is a serial port number (0, 1, 2 or 3), |
|
'atibm', 'inportbm', or 'logibm', (depends on card installed), if a PPC use 'adbmouse', for bus mice. |
|
'usbmouse', for USB mice. |
|
'input/mice', for Universal mice. |
|
'none', for no mouse. |
'name' |
see table. |
'nbuttons' |
2 or 3 for mice without a wheel, 5 for mice with a wheel (see table). |
'XEMU3' |
'yes' if 2 button mouse and you want 3 button emulation, else should be set to 'no'. |
'EMULATEWHEEL' |
'yes' if 2 button mouse and you want wheel emulation, else should be set to 'undef'. |
'MOUSETYPE' |
see table. |
'XMOUSETYPE' |
see table. |
'FULLNAME' |
is '<type> | <name>'. eg. 'PS/2|Standard' |
'WHEEL' |
'yes' if mouse has a wheel, 'no' if the mouse does not. |
'wacom' |
use this to define one or more (total of 4) Wacom Tablet devices as follows: |
A tablet attached to a serial port:
'wacom' => [ |
|
'ttyS1' |
], |
A tablet attached via USB:
'wacom' => [ |
|
'input/event0' |
], |
'nbuttons' |
'MOUSETYPE' |
'XMOUSETYPE' |
'name' |
'PS/2' |
|
|
|
|
|
|
|
2 |
ps/2 |
PS/2 |
Standard |
5 |
ps/2 |
MouseManPlusPS/2 |
Logitech MouseMan+ |
5 |
imps2 |
IMPS/2 |
Generic PS2 Wheel Mouse |
5 |
ps/2 |
GlidePointPS/2 |
GlidePoint |
5 |
ps/2 |
ThinkingMousePS/2 |
Kensington Thinking Mouse |
5 |
netmouse |
NetMousePS/2 |
Genius NetMouse |
5 |
netmouse |
NetScrollPS/2 |
Genius NetScroll |
7 |
ps/2 |
ExplorerPS/2 |
Microsoft Explorer |
|
|
|
|
'USB' |
|
|
|
|
|
|
|
1 |
ps/2 |
IMPS/2 |
1 button |
2 |
ps/2 |
IMPS/2 |
Generic 2 Button Mouse |
3 |
ps/2 |
IMPS/2 |
Generic |
3 |
ps/2 |
IMPS/2 |
Generic 3 Button Mouse with Wheel Emulation |
5 |
ps/2 |
IMPS/2 |
Wheel |
7 |
ps/2 |
ExplorerPS/2 |
Microsoft Explorer |
|
|
|
|
'serial' |
|
|
|
|
|
|
|
2 |
Microsoft |
Microsoft |
Generic 2 Button Mouse |
3 |
Microsoft |
Microsoft |
Generic 3 Button Mouse |
3 |
Microsoft |
Microsoft |
Generic 3 Button Mouse with Wheel emulation |
5 |
ms3 |
IntelliMouse |
Microsoft IntelliMouse |
3 |
MouseMan |
MouseMan |
Logitech MouseMan |
3 |
MouseMan |
MouseMan |
Logitech Mouse Man with Wheel emulation |
2 |
MouseSystems |
MouseSystems |
Mouse Systems |
3 |
logim |
MouseMan |
Logitech CC Series |
3 |
logim |
MouseMan |
Logitech CC Series with Wheel emulation |
5 |
pnp |
IntelliMouse |
Logitech MouseMan+/FirstMouse+ |
5 |
ms3 |
IntelliMouse |
Genius NetMouse |
2 |
MMSeries |
MMSeries |
MM Series |
2 |
MMHitTab |
MMHittab |
MM HitTablet |
3 |
Logitech |
Logitech |
Logitech Mouse (serial, old C7 type) |
3 |
Logitech |
Logitech |
Logitech Mouse (serial, old C7 type) with Wheel emulation |
3 |
Microsoft |
ThinkingMouse |
Kensington Thinking Mouse |
3 |
Microsoft |
ThinkingMouse |
Kensington Thinking Mouse with Wheel emulation |
|
|
|
|
'busmouse' |
|
|
|
|
|
|
|
1 |
Busmouse |
BusMouse |
1 button (PPC only) |
2 |
Busmouse |
BusMouse |
2 buttons |
3 |
Busmouse |
BusMouse |
3 buttons |
3 |
Busmouse |
BusMouse |
3 buttons with Wheel emulation |
|
|
|
|
'Universal' |
|
|
|
|
|
|
|
7 |
ps/2 |
ExplorerPS/2 |
Any PS/2 & USB mice |
|
|
|
|
'none' |
|
|
|
|
|
|
|
0 |
None |
Microsoft |
No mouse |
Examples:
|
If you are using an old Microsoft Bus Mouse, you MUST use this option. |
'mouse' => { |
|
'type' => 'busmouse', |
'device' => 'inportbm', |
'name' => '2 buttons', |
'nbuttons' => 2, |
'XEMU3' => 'yes', |
'MOUSETYPE' => 'Busmouse', |
'XMOUSETYPE' => 'BusMouse', |
'FULLNAME' => 'busmouse|2 buttons', |
'WHEEL' => 'no' |
}, |
The following is an example for a PS/2 non wheel mouse:
'mouse' => { |
|
'type' => 'PS/2', |
'device' => 'psaux', |
'name' => 'Standard', |
'nbuttons' => 2, |
'XEMU3' => 'yes', |
'MOUSETYPE' => 'ps/2', |
'XMOUSETYPE' => 'PS/2', |
'FULLNAME' => 'PS/2|Standard', |
'WHEEL' => 'no' |
}, |
The following is an example for a serial mouse:
'mouse' => { |
|
'type' => 'serial', |
'device' => 'ttyS1', |
'name' => 'Generic 2 Button Mouse', |
'nbuttons' => 2, |
'XEMU3' => 'yes', |
'MOUSETYPE' => 'Microsoft', |
'XMOUSETYPE' => 'Microsoft', |
'FULLNAME' => 'serial|Generic 2 Button Mouse', |
'WHEEL' => 'no' |
}, |
The following is an example for a Generic PS/2 Wheel mouse:
'mouse' => { |
|
'type' => 'PS/2', |
'device' => 'psaux', |
'name' => 'Generic PS2 Wheel Mouse', |
'nbuttons' => 5, |
'XEMU3' => 'no', |
'MOUSETYPE' => 'imps/2, |
'XMOUSETYPE' => 'IMPS/2', |
'FULLNAME' => 'PS/2|Generic PS2 Wheel Mouse', |
'WHEEL' => 'yes', |
}, |
|
Information from here is used to update the
files /etc/sysconfig/mouse
and |
Related Option Entries:
This option contains values used to configure the network parameters for the target computer. The general form is as follows:
'netc' => { |
|
'NETWORKING' => 'yes', |
'FORWARD_IPV4' => 'false', |
'HOSTNAME' => 'linux-dev.eastcott.net', |
'DOMAINNAME' => 'eastcott.net', |
'GATEWAY' => '192.168.5.254', |
'GATEWAYDEV' => 'eth0', |
'dnsServer' => '24.64.8.1', |
'dnsServer2' => '24.64.8.2', |
'dnsServer3' => undef, |
'NISDOMAIN' => undef, |
'LDAPDOMAIN' => undef, |
}, |
Descriptions:
'NETWORKING' |
set to 'yes' if this machine is network connected, otherwise it is set to 'no' and remove any other entries . |
'FORWARD_IPV4' |
set to 'true' if IP forwarding between interfaces is required, otherwise it should be set to 'false'. |
'HOSTNAME' |
fully qualified host name for the target computer. This is not required if supplied via a DHCP server. See 'intf' DHCP_HOSTNAME and NEEDHOSTNAME. |
'DOMAINNAME' |
domain name for the target computer. This is not required if supplied via a DHCP server. |
|
Since this variable is NOT placed in the /etc/sysconfig/network file, there are a few things you should be aware of: |
|
if your interfaces are set for static addresses, then the domainname command returns a NULL value. |
|
if you have an internal static network or your internal network has a unique (personal domain name) and you are using DHCP on one or more interfaces, the DHCP client will set the domain name to the value it receives from the DHCP server. |
'GATEWAY' |
IP address for the machine that processes all non-local IP messages. This is not required if supplied via a DHCP server. |
'GATEWAYDEV' |
device name for the interface that is to be used to access the gateway machine. This is not required if supplied via a DHCP server. eg. 'eth0' |
'dnsServer' |
IP addresses for DNS server, up to three may be specified. This is not required if supplied via a DHCP server. See 'intf' PEERDNS. |
'dnsServer2' |
if available, then the second DNS server's IP address. This is not required if supplied via a DHCP server. See 'intf' PEERDNS. |
'dnsServer3' |
if available, then the third DNS server's IP address. This is not required if supplied via a DHCP server. See 'intf' PEERDNS. |
'NISDOMAIN' |
if NIS authentication is used, then this contains the NIS domain name, otherwise it is not required. |
'LDAPDOMAIN' |
if LDAP authentication is being used, then this contains the Base Distinguished Name, otherwise it is not required. eg. 'LDAPDOMAIN' => 'dc=eastcott,dc=net' |
'WINDOMAIN' |
if Windows PDC
authentication is
being used, then this contains the Windows Domain Name, otherwise
it is not required. |
'DHCP' => 1, |
use if one or more interfaces have 'BOOTPROTO' => 'dhcp' and you want the default dhcp client installed and used. The ISC dhcp-client package is the current default. |
'dhcp_client' |
use if you want to select a specific dhcp client to be installed and used, then set it to one of: 'dhcp-client', 'dhcpcd', 'dhcpxd' or 'pump'. If this parameter is not specified, then the dhcp-client package is installed by default. If more than one dhcp client package is installed, you should add DHCP_CLIENT=<your client> to the associated ifcfg-ethx file. |
|
You might want to seriously consider installing the package zcip when using a dhcp client. |
'ZEROCONF_HOSTNAME' |
use if your computer is used in a standalone environment and you are not normally connected to a network or the internet. It specifies the hostname that the package tmdns will manage. |
Examples:
See the section Network and Connection Examples for various examples.
There are a number of things that you can change to control or fix the operation of your computer (especially if you are using DHCP), some are referenced in 'intf' and other's you will have to locate by examining the network control scripts in /etc/sysconfig/network-scripts. These fine adjustments need to be done either manually or by using the 'postinstall' option. eg.
'postInstall' => ' |
# fix so that the dhcp client does NOT update the domain name |
# received fromt the DHCP server. |
echo "DOMAINNAME=eastcott.net" >> /etc/sysconfig/network |
' |
Related Option Entries:
intf, authentication, postInstall
This option is used to prevent the install program from doing a 'Mouse Probe' on serial ports, PS/2 mouse port, etc. You would ONLY use this when the target computer has no mouse attached and you have equipment connected to the computer (typically serial ports) that would be adversely affected by the mouse probe.
If you use the 'mouse' option to define your mouse, then the mouse probe is automatically disabled and this option is not necessary.
'nomouseprobe' => 1, |
Descriptions:
'nomouseprobe' |
what to do |
|
0 - enable probing for a mouse. |
|
1 - disable probing for a mouse. |
Normally if you want probing, then this statement is not included in the auto_inst.cfg file
Related Option Entries:
This option is used to control the partitioning of the target systems' hard disk drives.
'partitioning' => { |
|
'clearall' => 1, |
'clear' => undef, |
'eraseBadPartitions' => 0, |
'auto_allocate' => 1 |
}, |
Descriptions:
'clearall' |
set to 1 if all the existing partitions on all disks are to be cleared and replaced by new ones (internal defaults or the ones defined by 'partitions' are to be used). Set to 0 if the disks are to be left untouched or, you are going to use 'clear' instead. |
'clear' |
if present, this is a list of the disks that are to have their partitions cleared. If your system has more than one disk drive, any drive(s) you do not list are left untouched. |
|
eg. 'clear' => [ 'hda', 'hdc' ], clears the partitions on hda and hdc, but leaves hdb untouched. The partitions for hdb will have to be defined using the 'manualFstab' option. |
'eraseBadPartitions' |
this is no longer used and, if present it has no affect. |
'auto_allocate' |
set to 1 if disk partitions are to be defined by the option 'partitions', set to 0 if the installer is to leave the existing partitioning untouched. If you have cleared all or, one or more drive partitions, then you need to set this option to the value one (1) and, you have to define the new partition layout for the cleared drives using the 'partitions' option. |
|
If you want to re-use the existing partitions, then set clearall and auto_allocate to their zero (0) value AND specify all the mounting information in the 'manualFstab' (see the example). |
|
If you want the install program to auto-allocate the partitions, then set clearall and auto_allocate to their one (1) value, and remove the 'partitions' option. |
Related Option Entries:
This option is used to define the partitions that are to be created on your hard disks. It is used in conjunction with the 'partitioning' options entry for 'auto_allocate'. If 'auto_allocate' => 0, then this options' contents are ignored.
'partitions' => [ |
{ |
'mntpoint' => '/boot', |
'type' => 131, |
'size' => 64449, |
'hd' => 'hda' |
}, |
{ |
'mntpoint' => 'swap', |
'type' => 130, |
'size' => 524097, |
'hd' => 'hda' |
}, |
{ |
'mntpoint' => '/', |
'type' => 387, |
'size' => 573344, |
'ratio' => 100, |
'maxsize' => 5750000 |
'hd' => 'hda' |
} |
], |
Descriptions:
'mntpoint' |
normally, this is the directory where the partition will be mounted. However, it is also used to provide a unique name for a RAID volume or LVM physical volume (PV) that will be combined in a subsequent declaration using the 'parts' option. |
'type' |
file system type for the partition. |
|
131 (0x83) is ext2, 130 (0x82) is swap, 387 (0x183) is reiserfs, 1155 (0x483) is ext3. See Mandrake/mdkinst/usr/bin/perl-install/partition_table.pm for a complete listing. |
|
Use 142 (0x8e) for LVM PVs or 253 (0xfd) for RAID partitions |
'size' |
the number of sectors that the partition is to be created with. The partitioning of the disk is done to the nearest cylinder boundary less than or equal to the number you have specified. The number of sectors in a cylinder are found by (number of sectors per track) * (number of heads). Usually each sector is 512 bytes in size, so you can do the math... |
|
A quick short way is: 'size' => 32 << 11 should give you something just short of 32 megabytes. |
'ratio' |
is the percentage (1 -> 100) of the disk that the partition can grow to. |
'maxsize' |
is the maximum number of sectors that the partition can be. A limit on the 'ratio'. |
'hd' |
device label (without the /dev/ part) for the disk drive that this set of definitions applies to. eg. hda or sdb. This entry is not required if you only have one hard disk, but it may be a good habit to get into in case the next system has more than one drive and you forget. |
'level' |
this specifies the Software RAID level that is desired. Supported levels are: |
|
'linear', '0', '1', '4' or '5' |
'options' |
mount options for the device / file system being mounted and are very file system specific. See the appropriate man page for details about the options available. |
'parts' |
this is a space separated list of 'mntpoint' which are to be combined into either a RAID array or a LVM Volume Group (VG). |
'VG_name' |
is the name used to reference a Volume Group in a subsequent declaration. |
'passno' |
if present, the value specified is placed in the fifth (5) field (default value of 0 is used if this is omitted). See the man page for fstab (man fstab). |
'freq' |
if present, the value specified is placed in the sixth (6) field (default value of 0 is used if this is omitted). See the man page for fstab (man fstab). |
'toFormatCheck' => 1, |
if present, causes the associated 'device' to be checked for Bad Blocks. |
|
To make your life a bit simpler and be able to allocate all of the disk, change the last partitions 'size' to some small value and set the 'ratio' to 100. This has the effect of allocating all of the remainder of the disk to that partition. For 'passno', 'freq' and 'toFormatCheck' special information, see the Problems and Issues section. |
Examples:
LVM:
partitions => [ |
... |
|
{ 'mntpoint' => 'vg_a', 'size' => 400 << 11, 'type' => 0x8e, 'hd' => 'sda' }, |
{ 'mntpoint' => 'vg_b', 'size' => 400 << 11, 'type' => 0x8e, 'hd' => 'sdb', 'ratio' => 1 }, |
{ 'VG_name' => 'pixVG', 'parts' => 'vg_a vg_b' }, |
{ 'mntpoint' => '/home', 'size' => 500 << 11, 'type' => 0x183, 'hd' => 'pixVG' }, |
], |
|
If the 'parts' field is omitted, then any PV available will be used. |
Software RAID:
partitions => [ |
... |
|
{ 'mntpoint' => 'raid_a', 'size' => 400 << 11, 'type' => 0xfd, 'hd' => 'sda', 'ratio' => 1 }, |
{ 'mntpoint' => 'raid_b', 'size' => 400 << 11, 'type' => 0xfd, 'hd' => 'sdb', 'ratio' => 1 }, |
{ 'mntpoint' => 'raid_c', 'size' => 400 << 11, 'type' => 0xfd, 'hd' => 'sdc', 'ratio' => 1 }, |
{ 'mntpoint' => 'raid_d', 'size' => 400 << 11, 'type' => 0xfd, 'hd' => 'sdd', 'ratio' => 1 }, |
{ 'mntpoint' => '/home', 'type' => 0x483, 'hd' => 'md0', 'level' => 1, 'parts' => 'raid_a raid_b' }, |
], |
LVM on software raid:
partitions => [ |
... |
|
{ 'mntpoint' => 'raid_a', 'size' => 400 << 11, 'type' => 0xfd, 'hd' => 'sda', 'ratio' => 1 }, |
{ 'mntpoint' => 'raid_b', 'size' => 400 << 11, 'type' => 0xfd, 'hd' => 'sdb', 'ratio' => 1 }, |
{ 'mntpoint' => 'raid_c', 'size' => 400 << 11, 'type' => 0xfd, 'hd' => 'sdc', 'ratio' => 1 }, |
{ 'mntpoint' => 'raid_d', 'size' => 400 << 11, 'type' => 0xfd, 'hd' => 'sdd', 'ratio' => 1 }, |
{ 'mntpoint' => 'vg_a', 'type' => 0x8e, 'hd' => 'md0', 'level' => 1, 'parts' => 'raid_a raid_b' }, |
{ 'mntpoint' => 'vg_b', 'type' => 0x8e, 'hd' => 'md1', 'level' => 1, 'parts' => 'raid_c raid_d' }, |
{ 'VG_name' => 'pixVG', 'parts' => 'vg_a vg_b' }, |
{ 'mntpoint' => '/home', 'size' => 500 << 11, 'type' => 0x183, 'hd' => 'pixVG' }, |
], |
|
If the 'parts' field is omitted, then any PV available will be used. |
Related Option Entries:
This option provides the installer two simple methods for performing post installation activities on the installed system. You can use one or the other or both methods. If you want to use both, then the installer will execute the 'postInstallNonRooted' first, then the 'postInstall' last.
postInstall:
'postInstall' => " |
echo \"This is a test string\" > /root/test.log |
" |
For this option, the install script is executed as root on the target computer with the environment set to that of the target computer. In other words, any references to the file system are relative to the target computers / (root). In addition, DrakX executes the script that you define using the form: chroot /mnt bash -c <yourscript here> (/mnt is the directory, in the DrakX environment, under which the entire file system for the target computer is located).
postInstallNonRooted:
'postInstallNonRooted' => ' |
echo "This is a test string" > /mnt/root/test.log |
' |
For this option, the install script is executed within the current environment of the DrakX install program. In other words, any references to the file system are relative to DrakX's / (root). In addition, DrakX executes the script that you define using the form: bash -c <yourscript here>.
The above two examples produce the exact same result; the string, This is a test string is placed in a file called test.log located in the /root directory on the target computer. For the observant, there are a some other subtle differences. The use of a perl single-quote string literal (which allows only the \' and \\ escape-sequences) and the perl double-quote string literal (which allows backslash and variable interpolation). Either form can be used with either option, although the single-quote form is the easiest to follow and likely the most often used. In the double-quote form, the double-quote (") before and after the string This is a test string had to be 'escaped', otherwise the script would have terminated prematurely and as a consequence not be executed.
Examples:
The following are a simple set of examples which demonstrate the use of these options.
Change the default auto install run level from 5 to 3 (uses "" so that the sed parameter does not have to be 'escaped'):
'postInstall' => " |
# change run level from 5 to 3 |
cat /etc/inittab | sed 's/^id:5:init/id:3:init/' > /etc/inittab1 |
mv -f /etc/inittab1 /etc/inittab |
" |
Or using a simple perl one-liner:
'postInstall' => ' |
# change run level from 5 to 3 |
perl -p -i -e "s/^id:5:init/id:3:init/" /etc/inittab |
' |
Copy the auto install configuration file defined with the syslinux.cfg append parameter auto_install= to the target computers /root/drakx directory (this only works for NFS and CD-ROM source medias):
'postInstallNonRooted' => " |
# copy the file from the source media |
cp /tmp/image/$::auto_install /mnt/root/drakx/ |
" |
A little more complicated variation:
'postInstall' => ' |
# only if the NTP package is installed |
if [ -f /etc/ntp.conf ]; then |
cat <<EOF1 > /etc/ntp/step-tickers |
time-server.eastcott.net |
EOF1 |
fi |
|
# clean up bug for Netscape |
cat <<EOF2 >> /etc/skel/.bash_profile |
|
# clean up old cache files, since Netscape doesn't |
[ -d ~/.netscape ] && rm -rf ~/.netscape/cache/* |
|
EOF2 |
' |
|
The EOF (or what you used for <<EOF) MUST begin in column 1 and be on a line by itself. |
One final note, if you selected 'autoExitInstall' => 0, then these two options do NOT get executed until AFTER you press the ENTER key at the end of the installation process.
Related Option Entries:
Depends on what all you installed.
This option provides you with the ability to install and configure none, one, or more printers. DrakX provides installation support for four basic printing systems: CUPS, LPRng, LPD and PDQ. The following is an attempt to distill the auto install stuff down to a simple presentation.
If all else fails, use the following form to indicate that there is no printer to be installed and then after the install is done, use the printerdrake program to add your printing system and printers.
To have No Printing System installed, simply ensure that the 'printer' option is not in the file, or:
'printer' => undef, |
However, for the more adventurous:
'printer' => { |
|
'DEFAULT' => 'HP990C', |
'SPOOLER' => 'cups', |
'BROWSEPOLLADDR' => undef, |
'BROWSEPOLLPORT' => undef, |
'MANUALCUPSCONFIG' => undef, |
|
'configured' => { |
|
'HP990C' => { |
|
'queuedata' => { |
|
'spooler' => 'cups', |
'foomatic' => 1, |
'printer' => 'HP-DeskJet_990C', |
'ppd' => undef, |
'queue' => 'HP990C', |
'driver' => 'hpijs', |
'connect' => 'smb://david:cherry@eastcott/cherry/HP-990C' |
'desc' => 'Color InkJet', |
'loc' => 'Cherry\'s Computer', |
'make' => 'HP', |
'model' => DeskJet 990C', |
'options' => [ |
'-o', |
'PageSize=Letter', |
'-o', |
'InputSlot=Default' |
'-o', |
'Duplex=DuplexNoTumble', |
|
... |
], |
}, |
} |
} |
}, |
|
BROWSEPOLLADDR, BROWSEPOLLPORT and MANUALCUPSCONFIG are not currently used. So you could remove them or, just not include them in your 'auto_inst.cfg' file. |
Descriptions:
'DEFAULT' |
this is set to the 'queue' name for the printer that you want as the default (generally referenced as lp). eg. 'DEFAULT' => 'HP990C', |
'SPOOLER' |
this is the printing systems that you want installed. It may be one of 'cups', 'lpd', 'lprng' or, 'pdq'. eg. 'SPOOLER' => 'cups'. |
'BROWSEPOLLADDR' |
not currently
supported. This is an IP address that CUPS will poll for
supported printers (see the file /etc/cups/cupsd.conf).
|
'BROWSEPOLLPORT' |
not currently
supported. This is the interface Port number to contact when
polling for supported printers (see the file
/etc/cups/cupsd.conf).
|
'MANUALCUPSCONFIG' |
not currently
supported. Set to 1 if you
are manually configuring the printing sub-system. Set to 0,
if CUPS is to automatically set up the configuration files each
time the CUPS service is started. eg. 'MANUALCUPSCONFIG'
=> 1,. The file |
|
CUPS_CONFIG=manual - when this option is set to 1 or, |
|
CUPS_CONFIG=automatic - when this option is set to 0 |
Each 'configured' printer definition begins with the name of the printer 'queue', and is followed by all the printer specific parameters ('queuedata') as follows:
'spooler' |
this is set to the same value used for 'SPOOLER'. eg. 'spooler' => 'cups', |
'foomatic' |
set to '1' if you want to select the printer using the foomatic printer ID. If you want to use a CUPS+PPD file instead, then set it to '0' and enter the 'ppd' information. eg. 'foomatic' => '1', |
'printer' |
required if you set 'foomatic' => 1,. This is set to the printer ID contained in the foomatic database You can determine the value to use with the command '/usr/bin/foomatic-configure -O -q | less' to locate your printer, then extract the string which is bounded by the xml tag <id>...</id>. eg. 'printer' => 'HP-DeskJet_990C', |
'ppd' |
required if you set 'foomatic' => '0',. This is set to the file name for the CUPS+PPD file associated with the printer. You can determine the filename by using the command '/usr/bin/poll_ppd_base -a | less' to locate the PPD definition for your printer. Each line contains a number of fields separated by a vertical bar (|). The first field contains the filename required for this entry. An alternate approach is to look in the directory /usr/share/cups/model, locate your model and desired ppd file. The value for 'ppd' would be the sub-directory and filename you want. Set it to 1 if the printer is to be installed without an initial PPD script. Set it to undef if you are not using a PPD file. eg. 'ppd' => 'xerox/xr_45171.ppd.gz', |
'queue' |
this is set to a string which represents the name of the printer that all printing utilities recognize as meaning 'this' printer. It MUST be set to the same value that is used for this printers definition. NOTE: the CUPS tools only allow the use of letter, number and the underscore characters. Strange, because the KUPS administration tool lets you add printer names with a hyphen too. eg. 'queue' => 'HP990C', |
'driver' |
this is the name of
the driver to be used for this printer. You can determine the
driver name by using the command : |
'connect' |
this defines how the printer is to be accessed (pick one of the following): |
|
file - the printer is accessed via a local parallel or usb port. General form is: |
|
file:<port device file name> |
|
eg. 'file:/dev/lp0', or 'file:/dev/usb/lp0', |
|
ipp - the printer is accessed via the internet printing protocol. General form is: |
|
ipp://<IP or FQDN>/printers/<printer name> |
|
eg. 'ipp://linux1.eastcott.net/printers/HP_820C', |
|
lpd - the printer is accessed via a remote lpd. If the spooling system selected is 'lpd', then the package rlpr must be installed. General form is: |
|
lpd://<IP or FQDN>/<queue name> |
|
eg. 'lpd://xerox.eastcott.net/PORT1', |
|
serial - the printer is accessed via a local serial port. General form is: |
|
serial:<serial port device file name>[?option[+option...]] |
|
baud=rate - Sets the baud rate for the device. |
|
bits=7 or 8 - Sets the number of data bits. |
|
parity=even - Sets even parity checking. |
|
parity=odd - Sets odd parity checking. |
|
parity=none - Turns parity checking off. |
|
flow=dtrdsr - Turns DTR/DSR (hardware) flow control on. |
|
flow=hard - Turns RTS/CTS (hardware) flow control on. |
|
flow=none - Turns flow control off. |
|
flow=rtscts - Turns RTS/CTS (hardware) flow control on. |
|
flow=soft - Turns XON/XOFF (software) flow control on. |
|
eg. 'serial:/dev/ttyS0?baud=9600+bits=8+parity=none', |
|
smb - the printer is accessed via the Microsoft SMB protocol. If this option is specified, then the package samba-clients must be installed. General form is one of the following: |
|
smb://workgroup/server/sharename |
|
smb://server/sharename |
|
smb://user:pass@workgroup/server/sharename |
|
smb://user:pass@server/sharename |
|
eg. 'smb://MY-COMPUTER/HP_990C', |
|
socket - the printer is accessed via the AppSocket protocol (a.k.a. JetDirect). If the printing system selected is 'lpd' or 'lprng', then the package nc must be installed. General form is: |
|
socket://<IP or FQDN>[:<port number>] |
|
eg. 'socket://hp.eastcott.net:9600', |
|
If a port number is not specified, it defaults to 9100 |
|
ncp - the printer is accessed via a Netware Host. If this option is used, then the package ncpfs must be installed. General form is: |
|
ncp:lpd://user:password@<server name>/<queue name> |
|
ncp:lpd://<server name>/<queue name> |
|
eg. 'ncp://MY_PRINT_SERVER/PRINTER1', |
|
postpipe - the file being printed is 'piped' through a user command, rather then being sent to a printer directly. General form is: |
|
postpipe:<command> |
|
eg. 'postpipe:cat > $HOME/rawfile', |
|
NOTE: If you have a machine running with CUPS, then you can look at the CUPS documentation at http://localhost:631/sam.html which has a ton of information. |
'desc' |
this is descriptive
text about the associated printer. |
'loc' |
this is usually text
which describes where the printer is physically located. |
'make' |
this is the manufacture's name for the printer. It is optional. |
'model' |
this is the manufacture's model designation for the printer. It is optional. |
'options' |
this is a series of parameters, which are concatenated together (space separated) and passed to the printer administration tool (foomatic-configure or lpoptions) when the printer queue is created. These options typically preset the default printer options. And are very dependent on the 'driver' selected. |
|
To figure out what to put here, there are two steps (note: foomatic-configure outputs a perl data structure because of the -P option in the steps below): |
|
First use: |
|
foomatic-configure -P -q -p 530428 -d gimp-print -s cups | grep "'name" | less |
|
to get a list of option names for the printer (530418) and driver (gimp-print) and spooler (cups) combination. |
|
Then use: |
|
foomatic-configure -P -q -p 530428 -d gimp-print -s cups | less |
|
and search for 'name' => '<option name you are looking to find values for>', just after it will be a structure beginning with 'vals_byname' which contains series of option values by name along with some information specific to each value. All you are interested in is the exact option value name(s). |
|
Finally you create the 'option' entries as follows: |
|
'-o', |
|
'<option name>=<option value>', |
|
and repeat for all options. |
NOTES:
There are a couple issues with the CUPS system that you may want to be aware of:
1. |
The default auto install leaves the CUPS system acquiring and reporting printer information automatically on your network. You might really want to modify the /etc/cups/cupsd.conf file and set the BrowseInterval to 0 and set Browsing to off so that your computer does not broadcast its printer definitions to the world. This propensity to tell everyone everything results in the various GUI tools presenting multiple instances of the printer definitions that can lead to confusion. Especially if the printer in question is a network based printer and you want to configure each computer to access the printer directly. |
2. |
There is a lurking
problem related to the CUPS ability to modify its configuration
file to suit the network environment every time the daemon is
restarted. If this is causing you concerns, you were wondering
why your changes were being ignored, or you simply do not want
this behavior, then make sure that the file
|
3. |
One final note. You normally do not have to set definitions for printers which are already defined on other computers running CUPS, as CUPS checks all other machines to see what printers they are exporting and will make them available to you. However, if they are exporting a printer which is actually on another computer or network and you print to it, then your print job actually goes to that computer first, then it goes to the printer. The downside is that if that computer is off, then you will not be able to use the printers it has defined. So use your discretion when defining printers |
Examples:
NO Printers:
'printer' => undef |
If you use this option, then you will probably have to install all the appropriate packages when you do set up your printers.
Multiple Printers:
'printer' => { |
'configured' => { |
'CK_HP990C' => { |
'queuedata' => { |
'printer' => 'HP-DeskJet_990C', |
'make' => 'HP', |
'foomatic' => 1, |
'options' => [ |
'-o', |
'PageSize=Letter', |
'-o', |
'PageRegion=Letter', |
'o', |
'PrintoutMode=Normal', |
'-o', |
'InputSlot=Default', |
'-o', |
'Duplex=DuplexNoTumble', |
'-o', |
'Quality=FromPrintoutMode', |
], |
'ppd' => undef, |
'spooler' => 'cups', |
'model' => 'DeskJet 990C', |
'desc' => 'Color InkJet', |
'loc' => 'Cherry\'s Office', |
'queue' => 'CK_HP990C', |
'connect' => 'smb://david:cherry@eastcott/cherry/HP-990C', |
'driver' => 'hpijs' |
} |
}, |
'CK_HP2200D' => { |
'queuedata' => { |
'printer' => undef, |
'make' => 'HP', |
'foomatic' => 0, |
'options' => [ |
'-o', |
'PageSize=Letter', |
'-o', |
'InputSlot=Middle', |
'-o', |
'Manualfeed=0', |
'-o', |
'Duplex=DuplexNoTumble', |
'-o', |
'Resolution=600x600x2dpi', |
'-o', |
'Smoothing=PrinterDefault', |
'-o', |
'HPEconoMode=PrinterDefault', |
'-o', |
'HPHalftone=PrinterDefault', |
'-o', |
'PageRegion=Letter', |
'-o', |
'HPOption_Duplexer=1', |
'-o', |
'HPOption_PaperPolicy=PromptUser', |
'-o', |
'HPOption_Tray3=0', |
'-o', |
'InstalledMemory=8MB' |
], |
'ppd' => 'HP-Postscript/HP_LaserJet_2200.ppd.gz', |
'spooler' => 'cups', |
'model' => 'LaserJet 2200', |
'desc' => 'Laser Jet', |
'loc' => 'Dave\'s Office', |
'queue' => 'CK_HP2200D', |
'connect' => 'lpd://scb65358/L1', |
'driver' => 'PPD' |
} |
} |
}, |
'BROWSEPOLLADDR' => undef, |
'MANUALCUPSCONFIG' => undef, |
'BROWSEPOLLPORT' => undef, |
'DEFAULT' => 'CK_HP2200D', |
'SPOOLER' => 'cups' |
}, |
Related Option Entries:
This option is used to set the Mandrake Security Level.
'security' => 2, |
Descriptions:
'security' |
security level desired, from 0 through 5 |
See the documentation on msec for more information regarding the meaning and effects of the various security level settings.
During the GUI installation, DrakX allows you to select one of four security levels, the following shows the security level associated with each:
Standard |
2 |
High |
3 |
Higher |
4 |
Paranoid |
5 |
Related Option Entries:
This option is used to set the email address where msec (Mandrake Security) will send security notifications when it (msec) detects a potential problem.
'security_user' => 'david@eastcott.net', |
Descriptions:
'security_user' |
email address where security notifications are to be sent. If you do not want email notification or you do not have a mail server available, then set it to ''. |
If you forget, you can always add the email address later to /etc/security/msec/security.conf at the option MAIL_USER=.
Examples:
I live in an area where I have continuous access to my ISP's mail server so I install a simple Mail Transfer Agent (MTA) called ssmtp and have the security notifications emailed to me. The following is an abstract of my settings:
'security' => 2, |
'security_user' => 'david@eastcott.net', |
'default_packages' => [ |
..., |
ssmtp, |
..., |
], |
'postInstall' => ' |
# adjust /etc/ssmtp/ssmtp.conf for my world |
perl -pi -e "s/^root=root/root=david@eastcott.net/" /etc/ssmtp/ssmtp.conf |
perl -pi -e "s/^mailhub=mail/mailhub=mymail.mycable.net/" /etc/ssmtp/ssmtp.conf |
perl -pi -e "s/^hostname=_HOSTNAME_/hostname=dave1.eastcott.net/" /etc/ssmtp/ssmtp.conf |
' |
Related Option Entries:
This option is used to specify exactly which services are to be started at boot up. This is a tough one to describe since the services that are started at boot up are dependent on what you installed. However, the general form is as follows:
'services' => [ |
|
'<name of service>', |
'<name of service>' |
], |
Descriptions:
'<name of service>' |
This is a list of service names (the ones in /etc/rc.d/init.d) which you want automatically started. |
DrakX determines
what services are present in the /etc/rc.d/init.d
directory and it runs
'chkconfig
--add ...' for the ones you list, and 'chkconfig
--del ...' for those that are installed but you did not list.
The following is a brief summary of the services that are possible
(see the file Mandrake/mdkinst/use/bin/perl-install/services.pm
for details):
Printing |
cups cupslpd lpr lpd oki4daemon hpoj cups-lpd |
|
|
Internet |
httpd boa tux roxen ftp pftp tftp proftpd wu-ftpd pure-ftpdipsec proftpd-xinetd ipchains iptables ipvsadm isdn4linux ibod jabber jabber-icq adsl squid portsentry prelude nessusd junkbuster radvd cddbp ippl iptoip jail.init |
|
|
File sharing |
nfs nfslock smb nettalk netfs mcserv autofs amd venus.init auth2.init codasrv.init update.init swat |
|
|
System |
usb usbd pcmcia irda xinetd inetd kudzu harddrake apmd sound network xfs alsa functions halt kheader killall mandrake_everytime mandrake_firstime random rawdevices single keytable syslog crond medusa-init portmap acon anacron atd gpm psacct wine acpid numlock jserver sensors mosix bpowerd bpowerfail fcron powertweak.init ups syslog-ng cvs apcupsd |
|
devfsd dm |
|
|
Remote Administration |
sshd telnetd telnet rsh rlogin rexec webmin cfd heartbeat ldirectord iplog mon vncserver netsaint olympusd drakxtools_http |
|
|
Database Server |
mysql postgresql |
|
Do NOT include mandrake_firstime or mandrake_everytime in your list, they are automatically handled by the scripts rc.local and rc.sysinit, respectively. |
|
To get the 'services' => ... included in the generated configuration file (on floppy, in the images, or /root/drakx/auto_inst.cfg.pl), you have to click on the Configure button associated with Configure Services on the Summary screen during the initial GUI installation. Alternately, you can look in the directory /etc/rc.d/rc5.d and create the entry by examining the files listed with “S??<name of service>” where <name of service> also appears in the /etc/rc.d/init.d directory. |
Examples:
A simple example:
'services' => [ |
|
'syslog', |
'xfs', |
'network', |
'portmap' |
], |
Related Option Entries:
compssListLevel, compssUsersChoice, default_packages, nomouseprobe
This option is to
set the Super User log in (usually referred to as root). These
values are placed in the file
/etc/passwd
and the group id is placed in the file /etc/group.
'superuser' => { |
|
'uid' => '0', |
'gid' => '0', |
'realname' => 'root', |
'pw' => '$1$XHDtOdGw$kBibHl2otqOVEnBIumdgR/', |
or |
'password' => 'psbcr!', |
'shell' => '/bin/bash', |
'home' => '/root', |
'icon' => 'root' |
}, |
Descriptions:
'uid' |
user id number (SHOULD ALWAYS be 0) |
'gid' |
group ID (SHOULD ALWAYS be 0) |
'realname' |
usually root, but can be anything you want. |
|
NOTE: use either 'pw' or 'password' - but NOT both. |
'pw' |
this is the encrypted form of the password. Its contents are dependent on the authentication used. If using MD5 and Shadow, then copy it from /etc/shadow'. |
'password' |
this is the clear text form of the password. Just what ever you want. |
'shell' |
the path name and
shell program to use when root logs in (Optional, defaults to
/bin/bash /bin/csh /bin/sh /bin/ksh
|
'home' |
where root's home directory is, usually /root |
'icon' |
if present, is the filename (but no extension) containing the desired icon. These icons are located in: /usr/share/mdk/faces. |
|
Setting 'pw' => undef will result in an installed system where you can log in as root without a password. Probably not something you really want to do. |
Related Option Entries:
This option is used to set the Time zone for the computer and to indicate if the computers hardware clock is set to UTC (GMT) or not.
'timezone' => { |
|
'UTC' => 1, |
'ntp' => 'time-server.eastcott.net', |
'timezone' => 'Canada/Mountain' |
}, |
Descriptions:
'UTC' |
how is the hardware clock set: |
|
0 means it is set for the local timezone. |
|
1 means it is set to GMT. |
'ntp' |
set to the fully qualified domain name for the time server that you want to access. See http://www.ntp.org for a list of known time servers in your area and, more IMPORTANTLY, the rules governing their access. See also the file /etc/ntp.conf and the directory contents in /etc/ntp. |
'timezone' |
set to one of the time zone strings for the local time zone |
The time zone string can be determined from the directories located in /usr/share/zoneinfo and combining the directory names and filenames.
Examples:
The sub-directory Canada contains a file Mountain, so the time zone string would be 'Canada/Mountain'.
|
The file /etc/sysconfig/clock is updated with information from this option. |
Related Option Entries:
none.
This option is used to add users to the system.
'users' => [ |
{ |
'name' => 'tom', |
'uid' => '5000', |
'gid' => '5000', |
'realname' => 'Tomas Wild', |
'pw' => '$1$XHDtOdGw$kBibHl2otqOVEnBIumdgR/', |
or |
'password' => 'psbcr!', |
'shell' => '/bin/bash', |
'home' => '/home/tom', |
'icon' => 'ic-bird', |
'groups' => [] |
} |
], |
Descriptions:
'name' |
the log in user name (REQUIRED). DrakX adds an entry to the /etc/passwd file using the value specified here, along with uid, gid, realname, home and shell. See man passwd. |
'uid' |
user id number (optional, if omitted then the default begins at the value for USER in the file /etc/defaults/useradd and increments for each successive user). |
'gid' |
group ID number (optional, if omitted then the default begins at the value for GROUP in the file /etc/defaults/useradd and increments for each successive user). DrakX updates the /etc/group file with an entry containing a group name, the same as 'name' above, and the 'gid' specified here or automatically generated. |
'realname' |
usually the user's full name, but can be anything you want. (optional, can be omitted) |
|
NOTE: use either 'pw' or 'password' - but NOT both. |
'pw' |
this is the encrypted form of the password. Its contents are dependent on the authentication used. If using MD5 and Shadow, then copy it from /etc/shadow. |
'password' |
this is the clear text form of the password. Just what ever you want. |
'shell' |
the path name and
shell program to use when a user logs in. (Optional, defaults to
/bin/bash /bin/csh /bin/sh /bin/ksh |
'home' |
where the users home directory is. (Optional, defaults to /home/<name> ). |
'icon' |
if present, is the filename (no extension) containing the desired icon. These icons are located in: /usr/share/mdk/faces. |
'groups' |
if present, is a list of supplemental groups that this user is to be added to. You may specify either numeric gid's or text group names. DrakX will automatically add the user to the groups listed and remove the user from any groups not listed. NOTE: the group name or gid listed must already exist in the /etc/group file. |
DrakX's default for the text group name is to use the 'name' value. This option works OK if you do not want specific text names for the GID. However, if you do want specific text names, then add the users that you want and modify the /etc/group file manually after the system is started. Alternately, you could use the 'postInstall' option to automate the fix up.
Examples:
'users' => [], means do not create any user accounts. |
An example to illustrate the 'groups' feature: |
'users' => [ |
{ |
'name' => 'tom', |
'uid' => '5000', |
'gid' => '5000', |
'realname' => 'Tomas Wild', |
'pw' => '$1$XHDtOdGw$kBibHl2otqOVEnBIumdgR/', |
'shell' => '/bin/bash', |
'home' => '/home/tom', |
'icon' => 'ic-fish', |
'groups' => [ 'disk', '80' ] |
} |
], |
A simple example to add new groups (no user) and then add a user to the new groups, change and existing group name to a different name:
'postInstall' => " |
# add some groups |
groupadd -g 4001 g_special |
groupadd -g 4002 g_new_special |
usermod -G special,new_special,disk,80 tom |
groupmod -n g_david david |
" |
Related Option Entries:
authentication, autologin, superuser, postInstall
This option is used to enable or disable the use of Supermount.
'useSupermount' => 0, |
Descriptions:
'useSupermount' |
to use it or not |
|
0 - to disable (manual mounting of all removable devices). |
|
1 - to enable it or, '' (automatic mounting of all removable devices) |
|
'magicdev' - to enable it for all removable devices except CD-ROM / DVD types. |
If the floppy device is not always using a FAT / VFAT file system, then you have to disable the use of Supermount. The default is to use Supermount for all removable media (cdrom , floppy, zip) that the installer detects in your system.
You can always modify the /etc/fstab file after installation as required.
|
During a normal GUI based install, the ability to select / deselect Supermount can be adjusted by clicking the MORE button on the disk partitioning display and then select / deselect the button 'Removable media automounting'. |
|
Using 'magicdev' may be a better choice if you have a CD-RW or DVD-RW device(s) installed. |
Related Option Entries:
The following are a collection of observations, rather than a definitive reference guide, to installing and customizing the X environment for your equipment.
For those of you who are not installing or do not want X, make sure that the 'X' => {...}, is not present in the auto_inst.cfg file. Also, make sure that you do not install any packages which have XFree86* as a dependancy. Or you can use :
'X' => { 'disabled' => 1 }, |
and not worry about which packages are installed.
Please note, that even though you may have installed the XFree86* packages, window manager packages, and /or X based applications, X will not be configured correctly. So don't forget and type startx at the command prompt!
Perhaps a better solution is to install X, then use the 'postInstall' option to change the default run level from 5 to 3 as follows:
'postInstall' => " |
# change run level from 5 to 3 |
cat /etc/inittab | sed 's/^id:5:init/id:3:init/' > /etc/inittab1 |
mv -f /etc/inittab1 /etc/inittab |
" |
If you are installing on a relatively new computer using a newer and supported graphics card, then the install program will probably be able to identify what it needs with only a couple hints as follows:
'X' => { |
|
'resolution_wanted' => '1024x768', |
'default_depth' => '32' |
}, |
'resolution_wanted' |
this may be one of: 640x480, 800x600, 1024x768, 1152x864, 1280x1024, 1400x1050, 1600x1200, 1920x1440, or 2048x1536; its very dependent on the type video card that you have installed and the monitor that is used. |
'default_depth' |
this may be one of: 8, 15, 16, 24 or 32; its very dependent on the type video card that you have installed. |
Manual configuration of your Card and Monitor values will require that you reference the files: Mandrake/mdkinst/usr/share/ldetect-1st/Cards+.gz and MonitorsDB.gz for some information. And possibly the manufactures documentation too.
If the 'ddcxinfos' command does not work with your video card, or it returns incorrect values, then you can preset or over-ride the basic values as a first step, as follows:
'X' => { |
|
'resolution_wanted' => '1024x768', |
'default_depth' => '32', |
|
'card' => { |
'type' => 'ATI Mach64' |
}, |
'monitor' => { |
'EISA_ID' => 'aocd556' |
} |
}, |
The value for 'type' is extracted from the Cards+ file from the NAME field in the section appropriate to your card. The 'EISA_ID' value is obtained from the MonitorsDB file, <EISA ID> field and all letters must be LOWERCASE .
Anything beyond this and you should really use the Replay Install and add the selection 'Summary'.
For this one you really want to use the Replay Install and add the selection 'Summary'.
An interesting feature, when XFree86-4 is used, is the ability to use both a regular mouse device and a Wacom graphics tablet. See the following references for more details:
http://www.linuxdoc.org/HOWTO/Wacom-Tablet-HOWTO.html
http://www.linuxdoc.org/HOWTO/mini/Wacom-USB-mini-HOWTO.html
Related Option Entries:
DrakX has an exciting capability, Replay Auto Install, which can be used to assist installation on multiple computers with slightly different hardware configurations. This replay ability allows you to select one or more specific steps where you want to manually re-enter configuration selections.
Generation of a Replay Auto Install Disk and can be accomplished:
1. |
at the end of a Manual install where you select Advanced, Generate an auto install floppy, then Reply or, |
2. |
on an installed system by running the drakautoinst program or, |
3. |
manually creating the disk and files on it. |
Currently, the first two approaches generate an auto_inst.cfg file which contains only the options that were selected at the time the initial install was done. If you are using the drakautoinst program, you will have to manually update the auto_inst.cfg file to reflect the latest changes on the computer and make adjustments to the default options.
The only difference that you will notice in the auto_inst.cfg file between an Automated Install and a Replay Install is the absence or presence of the following $o option:
'interactiveSteps' => [ |
|
'doPartitionDisks', |
'formatPartitions' |
], |
The following are a list of the steps available to you and a short description of what each does:
Step |
drakconf Label |
Description |
selectLanguage |
Language |
Select language(s) support to be installed. |
acceptLicense |
License |
Allows you to Accept or Refuse the License Agreement |
setupSCSI |
Hard drive detection |
Check for any SCSI devices |
selectKeyboard |
Choose your keyboard |
Select the desired keyboard |
miscellaneous |
Security |
Select the security level desired |
doPartitionDisks |
(not selectable, always added) |
Set up disk drives, their partitions, mount points and options. MUST be used if you are installing software RAID or LVM. |
formatPartitions |
(not selectable, always added) |
Select which partitions are to be formatted. |
choosePackages |
Choose packages to install |
The package selection (both groups and individual packages) |
setRootPassword |
Root password |
Select root's password and select the type of authentication to be used. |
addUser |
Add a user |
Add users |
summary |
Summary |
Select the time zone, GMT/Local hardware clock and if you want NTP installed |
configureServices |
Configure services |
Allows you select which services are to be automatically started at boot time |
installUpdates |
Install system updates |
Obtain and install updated system packages. |
exitInstall |
Exit install |
Prompt for exit, and offers the option of creating an automated install disk. |
Does any of this look familiar, it should. These are the main steps that you went through while doing a Manual install. drakautoinst uses the notation Replay (to use the contents of the auto_inst.cfg file) or Manual (to cause DrakX to prompt you for input).
Which steps, if any, should you use? MandrakeSoft recommends that as a minimum, the doPartitionDisks and formatPartitions steps should be included. This may only necessary if you are trying to preserve existing data on some partitions or on other drives.
You really need to evaluate this on a machine by machine basis. What is different about this new machine that could cause you trouble?
By the way, you just might want to check out the Advanced Features discussion regarding the use of the 'display=' parameter.
What affect does each of the Steps, selected for Manual (included in the list), have on the various selections and settings that were preset with the $o = {...} declaration? For the most part, your presets become the defaults when DrakX prompts you for input.
|
DO NOT expect the doPartitionDisks and formatPartitions steps to use your settings as defaults. |
Which $o options are associated with which step? The following table provides a bit of information:
Step |
Option |
Notes |
selectLanguage |
locale |
If the option is present, its value is used as the default when the GUI display is presented. |
acceptLicense |
- |
There is no option for this step. |
selectMouse |
mouse |
If the option is present, then it is used as the default when the GUI display is presented. |
setupSCSI |
- |
There is no option for this step. |
selectKeyboard |
keyboard |
If the option is present, its value is used as the default when the GUI display is presented. |
miscellaneous |
security, security_user |
If the option is present, its value is used as the default when the GUI display is presented. |
doPartitionDisks |
manualFstab, useSupermount, partitioning, partitions |
The option manualFstab, if present, will have its contents added to the /etc/fstab file. The option useSupermount, if present, sets the default state of the 'More' button's radio-button selection for 'Removable media auto mounting'. The options partitioning and partitions are ignored. |
formatPartitions |
- |
This step should ALWAYS be used in conjunction with doPartitionDisks. |
choosePackages |
compssListLevel, compssUsersChoice, default_packages |
If these options are present, the STEP is IGNORED. |
installPackages |
default_packages |
If this option is present, the STEP is IGNORED. |
setRootPassword |
superuser, authentication |
The option superuser is ignored. The option authentication, if present, is used as the default when the GUI display is presented. |
adduser |
user, autologin |
If the option user is present, its contents are added and you will be prompted for additional ones. |
|
|
NOTE: you can not edit any predefined users. If the autologin options is present, it is used directly and you are NOT prompted to change its settings. |
configureNetwork |
intf, miscellaneous, netc |
The contents of these options, if present, are used as the defaults when the GUI displays are presented. |
setupBootloader |
bootloader, misc |
The contents of these options, if present, are used as the defaults when the GUI displays are presented. |
summary |
bootloader, intf, keyboard, miscellaneous, mouse, netc, printer, timezone, X |
The contents of these options, if present, are used as the defaults when the GUI displays are presented. |
configureServices |
services |
If the option is present, its value is ignored. |
installUpdates |
- |
If the option is present, its value is used as the default when the GUI display is presented. |
The safest policy when mixing Replay Steps and predefined options is to delete the predefined options from the $o structure. This ensures that there are no hidden or adverse interactions that will produce undesired results. On the other hand, a bit of experimenting to confirm expectations will result in a very flexible and powerful tool.
Special Notes:
Just so you know, DrakX creates the file replay_install.img in /root/drakx, along with the auto_inst.cfg.pl file. The replay_install.img file is actually a modified version of the boot image file that corresponds to your method of installation (basic image file is found in the images directory on the CD).
What's different? The syslinux.cfg file is modified: to add the 'kickstart=' parameter, the 'automatic=' parameter is adjusted to reflect the method and network parameters used for the computer when it was first installed. The auto_inst.cfg, which was added at install time, is the same as the auto_inst.cfg.pl file except for the 'auto_allocate' and 'autoExitInstall' options.
When you use drakautoinst to create an auto install disk, it copies the image to the floppy diskette, then adjusts the auto_inst.cfg file, on the floppy diskette, with your manual selections.
|
Use: mount replay_install.img /mnt/disk -t vfat -o loop to check it out. |
If you were curious and pressed the F1 and/or the F2 keys during a Manual install, you would have noticed a few features that you may find useful; the text on the screens indicate that you can type the indicated keywords in response to the boot prompt. You can also add them, in the 'syslinux.cfg' file, to the Section 'append' line(s) as additional SPACE separated parameters. All kernel parameters are normally placed at the end of the 'append' line so that the 256 character limit can be fully used for parameters passed to the Stage1 installer.
|
Please be careful when adding additional parameters to the append line(s) that you DO NOT exceed the 256 character limit. Use the Method Parameter Aliases to reduce the line length. If this is still not enough, determine what you can live with or, find an alternative approach. |
The following are a selection of interesting / exotic / useful features that I felt needed to be highlighted.
|
You can only provide parameters to the kernel for 'compiled' in capabilities. You can not pass parameters to 'modules' using the append line in the 'syslinux.cfg' file. |
quiet |
has the dubious benefit of making the kernel less verbose while it is going though its boot up process. Mostly it is for those who complain about all the 'noise' on the screen at start up, which they can not read, do not understand or care about. This option has become the default used in the 'lilo.conf' file. |
Until this point, I have always indicated that the configuration file is always called 'auto_inst.cfg' and that it is always located on the floppy diskette. Most people find this to be the easiest and most portable method and, it is better to use a consistent presentation in a document (less confusion).
However DrakX is not that limited. In fact it supports a number of different methods for specifying where the file is located and what its name is. The following provide an illustration of most approaches.
This is the primary location for the 'auto_inst.cfg' file and it is generally specified using 'kickstart=floppy'. You may also use 'auto_install=floppy'. In either case, when the floppy keyword is used, DrakX expects the file to be called 'auto_inst.cfg'or, 'auto_inst.cfg.pl'.
As an alternative to the floppy diskette, DrakX provides a capability that allows you to specify the name and location of the configuration file on the source media (where the install file set is). You can use this feature with any of the Network Services methods as well as the CD-ROM method.
Basically, you use either the kickstart= or auto_install= parameter to specify a file relative to the location of the install file set using the following general form:
auto_install=<path>/<name> |
|
<path>/ |
is the directory path, optional, to the file (<name>) relative to the directory that you specified with the 'directory:' parameter and, |
<name> |
is the name of a unique file which contains the installation selections (see the section Anatomy of the 'auto_inst.cfg' File). |
Here is a simple example:
append auto_install=cfgs/test.cfg automatic=met:nfs, |
ser:fileserver,dir:/Mandrake/10.0, |
netw:static,ip:192.168.5.202,netm:255.255.255.0, |
gat:192.168.5.253,dns:192.168.5.253 ramdisk_size=128000 |
initrd=network.rdz root=/dev/ram3 acpi=ht vga=788 |
|
All the text starting with append through 788 are on ONE line. |
Can you imagine the possibilities? Especially (the people building clusters) if you combine this with the postInstall and postInstallNonRooted options? NOTE: DrakX mounts the NFS exported directory on the server as Read Only, and if you are using ftp or http it is a bit more troublesome, so ...
The IP-based File Naming feature will aid those of you wanting to manage all the configuration files from the NFS server and create a boot floppy set (not machine customized). It works this way:
On the file server, create each machine's configuration file using the following form:
<name>-<IP Address> |
|
<IP Address> |
is expressed as a combined hexidecimal value for each component of the IP address (the letters must be Upper Case). eg. 192.168.5.225 would be C0A805E1 |
then set the 'auto_install=' parameter in the 'syslinux.cfg' file as follows:
auto_install=<path>/<name>-IP or
auto_install=<path>/<name>-IP.pl
Now when the 'auto_install=' parameter is processed, the 'IP' portion is replaced by the IP Address for the machine, and the resultant file is accessed on the server. The following is a simple example:
On the server, create the auto install file 'cfgs/test-C0A805E1' and in the 'syslinux.cfg' file, set the append parameter as follows:
append auto_install=cfgs/test-IP automatic=met:nfs, |
ser:fileserver,dir:/Mandrake/10.0, |
netw:static,ip:192.168.5.202,netm:255.255.255.0, |
gat:192.168.5.253,dns:192.168.5.253 ramdisk_size=128000 |
initrd=network.rdz root=/dev/ram3 acpi=ht vga=788 |
|
All the text starting with append through 788 are on ONE line. |
The CD-ROM method can be used too, but it requires that you create new CD-ROMs containing the configuration file(s) (see the section Creating an Updated Installation CD Set). The configuration files are placed on the CD-ROM in a manner similar to the one described above on an NFS server.
All the fore going require that you use a boot floppy, for those of you who are really into customization and the ultimate in CD-ROM automated installs, try modifying the images/cdrom.img file on the new CD-ROMs that you need to create. It works great if you only want one kind of install configuration. Better yet, check out the Boot CD-ROM and Auto Install Diskette section.
|
This will affect the replay_install.img that the Mandrake Control Center tool uses to generate Replay Installation disks so make sure that you correct that image using the postInstall options. |
DHCP servers can, in addition to supplying an IP address and other network information, provide the name of a file to any or all client machine(s) that request an IP. When used with the Stage 1 install program, this file can be the name of a generic or a machine specific 'auto_inst.cfg' file.
This capability of the Stage 1 install program is available when you specify network:dhcp, but you must explicitly tell the installer to use the DHCP supplied file by adding netauto as well. It is a bit exotic and definitely not for the faint of heart. However, it works well and has the benefit of not requiring you to waste characters on the 'append' line. It does require that you have access to the configuration files for the DHCP server and, optionally, that you know the Type and Hardware Address (link layer address) for each of the Network Interface Cards (NICs) that you plan to use this feature with. Working knowledge for configuring a DHCP server is mandatory.
|
If you are planning to use the IP-based File Naming, then you must have the DCHP server provide fixed IPs rather than a random one from the pool. |
There are five (5) methods available; a simple one that can be used with any/all computers and three which allow you to customize for specific computers and requires specific parameter settings on the append line as well as changes to the DHCP server's configuration file. The fifth, IP-based File Naming, can substantially reduce the work required to maintain and manage the configuration files. The following are a brief general description of each.
If you are going to use the same configuration file with all computers, then adding an entry similar to the following in the Global Section of the dhcpd.conf file will be adequate:
filename "my_cfgs/auto_inst.cfg";
The 'syslinux.cfg' files' append line should be similar to the following:
append netauto automatic=met:nfs, |
ser:fileserver,dir:/Mandrake/10.0, |
netw:dhcp, ramdisk_size=128000 |
initrd=network.rdz root=/dev/ram3 acpi=ht vga=788 |
|
All the text starting with append through 788 are on ONE line. |
If you want specific configuration filenames given to specific computers, then you need to create host declarations which identify each of the client hardware addresses and the filenames to be served; similar to the following:
host tommy { |
hardware ethernet 00:20:78:11:F9:A2; |
filename "my_cfg/tommy.cfg"; |
} |
|
host johnny { |
hardware ethernet 00:60:05:37:69:C8; |
filename "my_cfg/johnny.cfg"; |
} |
The 'syslinux.cfg' files' append line should be similar to the following:
append netauto automatic=met:nfs, |
ser:fileserver,dir:/Mandrake/10.0, |
netw:dhcp, ramdisk_size=128000 |
initrd=network.rdz root=/dev/ram3 acpi=ht vga=788 |
|
All the text starting with append through 788 are on ONE line. |
If you are using Dynamic DNS and want to specify the host name for the computer, then use something similar to the following:
host tommy { |
option dhcp-client-identifier 1:00:20:78:11:F9:A2; |
filename "my_cfg/tommy.cfg"; |
} |
|
host johnny { |
option dhcp-client-identifier 1:00:60:05:37:69:C8; |
filename "my_cfg/johnny.cfg"; |
} |
The 'syslinux.cfg' files' append line should be similar to the following:
append netauto automatic=met:nfs, |
ser:fileserver,dir:/Mandrake/10.0, |
netw:dhcp,hos:tommy, ramdisk_size=128000 |
initrd=network.rdz root=/dev/ram3 acpi=ht vga=788 |
|
All the text starting with append through 788 are on ONE line. |
This is a simple variation of Method 3 where you want or need to specify the domain name as well, then use something similar to the following:
host tommy { |
option dhcp-client-identifier "\000tommy.eastcott.net"; |
filename "my_cfg/tommy.cfg"; |
} |
|
host johnny { |
option dhcp-client-identifier "\000johnny.eastcott.net"; |
filename "my_cfg/johnny.cfg"; |
} |
The 'syslinux.cfg' files' append line should be similar to the following:
append netauto automatic=met:nfs, |
ser:fileserver,dir:/Mandrake/10.0, |
netw:dhcp,hos:tommy,dom:eastcott.net ramdisk_size=128000 |
initrd=network.rdz root=/dev/ram3 acpi=ht vga=788 |
|
All the text starting with append through 788 are on ONE line. |
This example illustrates the IP-based File Naming.
|
This can only be used if the DHCP server provides fixed IP address to the computer being installed. |
Add an entry similar to the following in the Global Section of the dhcpd.conf file:
filename "my_cfgs/auto_inst-IP";
Add a host declaration similar to the following:
host tommy { |
option dhcp-client-identifier 1:00:20:78:11:F9:A2; |
fixed-address "192.168.5.149"; |
} |
Create the computer specific installation file with a filename formed by substituting the hexidecimal representation of the fixed-address for the 'IP' portion of the generic name declared with the filename option. For this example, the filename should be: auto_inst-C0A80595 in the directory my_cfgs.
The 'syslinux.cfg' files' append line should be similar to the following:
append netauto auto_install=my_cfgs/auto_inst-IP automatic=met:nfs, |
ser:fileserver,dir:/Mandrake/10.0, |
netw:dhcp,hos:tommy ramdisk_size=128000 |
initrd=network.rdz root=/dev/ram3 acpi=ht vga=788 |
|
All the text starting with append through 788 are on ONE line. |
|
The fore going
examples assume the use of an ISC DHCP server:
|
A bit of advice for those of you contemplating setting up a DHCP server in an environment where there is one already, don't. At least not with out coordinating with the people responsible for administering the network so that it is set up correctly and does not interfere with existing operations. If you do, do not be surprised if they invite you for a picnic by the river and there is a 25kg bag of cement in the basket (hehehe).
My favorite for
Network Service installs. Have you ever been stuck trying to find a
keyboard and display to install on a headless server? Well if you
enter display=<display machine
name or IP>:<display>
(eg. display=linux1:0)
at the boot prompt and you use the command xhost
+ on the target display machine, then lo and behold all the
Stage 2 information that would have been displayed on the local
console will show up on the target display machine that you
specified.
|
Currently this only works when you are using a full GUI install (gtk), the newt or text modes do not support this. |
If you create a Network Auto Install Diskette Set using the MandrakeSoft supplied network.img and network_driver.img images, modify the 'syslinux.cfg' files' append line similar to the following:
append display=linux1:0 automatic=method:nfs, |
server:fileserver,directory:/Mandrake/10.0, |
network:static,ip:192.168.5.202,netmask:255.255.255.0, |
gateway:192.168.5.253,dns:192.168.5.253 ramdisk_size=128000 |
initrd=network.rdz root=/dev/ram3 acpi=ht vga=788 |
|
All the text starting with append through 788 are on ONE line. |
You can now do a remote Manual install on a headless machine too. (GC claims this has been available forrreverrrrrrr, hmmm). Only the Stage 2 portion of the install is actually displayed on the remote machine, all Stage 1 information is still presented on the local display (so if you made a mistake, you will never see the Stage 2 graphics stuff on the remote machines' display).
For the auto install crowd, there are four things you will have to do:
a) |
use the command xhost + on the target display computer. For the more security conscious, xhost + <IP or name> for the machine being installed. eg. xhost +192.168.5.202 or xhost +linux2.eastcott.net. |
b) |
add the option 'interactive' => 'gtk', to your auto_inst.cfg file. |
c) |
adjust your syslinux.cfg file to added the display= parameter. |
d) |
Just to keep things
from getting too confusing, you might want to start a second X
session using the |
One final note (hehehe), if you use the 'display=' parameter, the specified machine must have an X server running on it.
This section is for those of you who are in a hurry and don't want to read all the preceding pages. This project started out small and turned into a bit more than just a couple pages, hehehe.
Unfortunately, to use the Auto Install Features of DrakX, you DO need to know a few things. There are short cuts, and you can mostly depend on DrakX auto detecting a lot of things for you, but you are going to get to a point or a situation where the rest of the document does come in handy.
There are now three (3) approaches to scratch building your install disks and each is described seperately:
1. |
Single Floppy, for CD-ROM and Hard Disk installs, |
2. |
Dual Floppy, for Network based installs, |
3. |
Boot CD-ROM, for Network based installs (can be used for the others too). |
The kinda Short Cuts.
1. |
If you already have Mandrake Linux 10.0 installed on a machine, then you can use the drakautoinst program to create a basic auto install disk. |
2. |
Alternately, you can
follow the first three steps from the section Getting
Started, then copy the file found in |
3. |
If you do not have Mandrake Linux 10.0 installed yet, you can go to the section Installation Methods and do the steps identified in the sub-section Getting Started, but stop after you complete step 5. While you are doing the Manual Install, and you get the point where it is asking you what packages to install (you have a choice here) deselect all package groups, make sure that the Individual Package Selections is selected, then when prompted select (or not) With X and With documentation, then select any additional packages you want (or not) and finish the install. You will, as part of step 5, now have a diskette containing, for the most part, a basic auto install diskette. From this point on, you can let your repressed creative talents have at it. |
Using any of the above approaches will produce a syntactically correct auto_inst.cfg file on the floppy diskette. However, you MUST review the contents of the file to ensure that what it is going to cause, is in fact what you want it to do (see the section Anatomy of the 'auto_inst.cfg' File). Pay particular attention to the options: 'autoExitInstall', 'mkbootdisk', 'partitioning' and 'partitions' (if the diskette was created by the drakautoinst program, you can ignore the 'partitioning'and 'partitions' options since the Replay Install will force you to re-do these steps). Finally, if you are going to be auto installing from a CD-ROM, then you might want to consider adding the 'interactive' option.
The general objective for creating an Auto Install diskette is to minimize the work that you will have to do when installing basically the same suite of programs on multiple computers. You have a choice at this point, create a 'Basic AutoInstall Diskette' which contains all information common to all computers and then use the Software Manager on each computer to customize for the user. Or, create a custom diskette for each computer but this is a lot of work and there are probably more optimal approaches that you could use.
Unless you are really a lucky individual and all the computers you are doing the installs for are identical, hardware wise, there is some customization that you will have to do for each. The following is a minimal list of things you need to know so that you can begin the 'customization'.
1. |
The amount of installed memory. (just in case the Auto Detection and your BIOS disagree). |
2. |
The number of hard disk drives, their type (IDE and/or SCSI), their device ordering (hda, hdb, ... or sda, sdb, ...) and the size of each in terms of Cylinder/Heads/Sectors. |
3. |
The number and type of CD or CD-RW or DVD drives and their device ordering (hda, hdb ... or sda, sdb ...). |
4. |
The number of Floppy disk drives. |
5. |
The number of types of other removable media devices (zip drives, Jazz drives, tape drives, ...) and their device ordering (hda, hdb ... or sda, sdb ...). |
6. |
The type of pointer device, if any (typically a mouse) and how it is connected (serial, bus mouse, ps/2 ...). |
7. |
The network card type, for non Plug and Pray types, you will also need to know its I/O address and the IRQ it uses. |
8. |
The type of video card used (mostly the chip set that is used on it). |
9. |
The type and capabilities of the monitor. |
Next, you need to know how you plan to organize your devices (storage media) into a uniform file system hierarchy (/, /boot, ...). Which devices and partitions (also what file types ie. xfs, ext3) on each go where.
Finally, you need to determine what packages are going to be installed on the target computer.
So much for Quick, eh?
I almost forgot, you need to decide what Installation Method you plan on using (see the section Installation Methods). The following section is going to use the NFS Server method and it also assumes that you have set up the NFS server with the required file set (see the section Setting Up a Simple NFS Server as an example).
There is a vast volume of information regarding the general subject of setting up and organizing your computer available in book stores and on the web. Everyone has an opinion, good and bad, but you will find that experience is the best, so just use your own best judgment. A good place to start is at http://tldp.org, look at the HOW-TOs, Mini HOW-TOs and Guides. Just in case, the Mandrake Distribution contains most of these documents (albeit somewhat dated) and they may already be installed in a computer that you can access.
Remember, if what you do the first time is not right, do it again. The beauty of the Auto Install process is that you can make changes to the auto_inst.cfg file and repeat the installation until you get it the way you want. Although, lots of coffee or other suitable stimulant(s) may be required.
The best way to start is to create a known 'good' boot diskette using the images that Mandrake has supplied on their CD-ROM, then remove what you do not want, modify what is left as desired, then add anything that is missing. Sounds simple, eh? Only installations from the CD-ROM and PCMCIA devices use this approach.
Build Base diskette:
Load and mount the Install CD-ROM, or change to the directory containing the Mandrake Linux file set, place a blank diskette in the floppy drive, then:
dd if=images/cdrom.img of=/dev/fd0
Remove un-necessary files (optional):
Mount the floppy diskette, then:
rm -f /mnt/floppy/help.msg
Customize the Loader's Configuration File:
Edit /mnt/floppy/syslinux.cfg and remove / change what you do not need (see the section Anatomy of the Boot Loader Configuration Files); the following is my file's contents:
default linux |
display boot.msg |
label linux |
kernel vmlinuz |
append kickstart=floppy automatic=met:cdrom, |
hos:tommy,dom:eastcott.net ramdisk_size=128000 |
initrd=cdrom.rdz root=/dev/ram3 acpi=ht vga=788 |
|
All the text starting with append through 788 are on ONE line. |
Customize the Boot Message:
This one is up to you, but here is what is in mine (create or replace the file /mnt/floppy/boot.msg):
<blank line> |
Installing Mandrake Linux 10.0 |
<blank line> |
This will install a basic system. |
<blank line> |
<blank line> is just in indicator meaning that an empty line is actually in the file. Be as creative or simplistic as you want. If you want to change the default graphics (boot.msg) then you need to read the file '/usr/share/doc/syslinux*/README.graphics'.
Adding your Customized Auto Install File:
Copy your customized auto_inst.cfg (or what ever name you used to distinguish it from other such files) file to the floppy diskette as auto_inst.cfg.
|
Un-mount the diskette and remove it. It is probably a good idea to put a label on the diskette with suitable markings so you can find it again and know what it contains. I have a bad habit of not putting labels on them and ending up with a table full of blank disks and not being able to find the one I want. |
Test Drive:
This may be a good place to go get a good book, extra coffee etc.
Install your shiny new Auto Install disk in the target computer, turn it on an watch what happens, installing any additionally requested CD-ROMS when prompted. If everything went properly, the last message on the screen should be: Please remove disk and re-boot...
If not, then use Ctrl-Alt-F3 to switch to the diagnostic screen and see what the error message was. Then fix what its complaining about, and re-boot and do it again. It might be a good idea to use Ctrl-Alt-F3 shortly after the kernel boots so you can see all the steps that DrakX is going through.
Repeat as required until you get what you want.
A common problem with customized auto_inst.cfg files is you didn't get the syntax correct. Your first hint will be that the install stops with a cryptic error message indicating it could not load the auto_inst.cfg file (maybe it even gives you the line number). If you are not in a rush, you could follow Mandrake's advice in the generated auto_inst.cfg file:
|
# You should always check the syntax with 'perl -cw auto_inst.cfg.pl' before testing |
Another problem is that you did not get the settings and options correct in the syslinux.cfg file. In this case, you will probably be presented with the Manual Install GUI screens. Solving this type of problem is simply a matter of reviewing the file and ensuring that your options are correct.
A more difficult problem to resolve is if you forgot to add a field / line for one of the options you modified or added. There are two possible indications:
1. |
the install stops before completing, or |
2. |
the hard one - you get the success - Please remove disk and re-boot... message, but it doesn't boot or if it does boot, it does not seem to be working right. |
Unfortunately, there is no easy answer here. Begin by reviewing the contents of the auto_inst.cfg file and comparing the entries to the descriptions in the section Anatomy of the 'auto_inst.cfg' File. Pay particular attention to those parts which relate to your hardware, maybe what you thought, is not what the computer knows.
Another approach may be to modify the contents of the auto_inst.cfg file down to an absolute minimum, get that working and then begin adding back the stuff you deleted.
Build Base diskette:
Load and mount the Install CD-ROM, or change to the directory containing the Mandrake Linux file set, place a blank diskette in the floppy drive, then:
dd if=images/hd_grub.img of=/dev/fd0
Customize the Loader's Configuration File:
Edit /mnt/floppy/menu.lst and remove / change what you do not need (see the section Anatomy of the Boot Loader Configuration Files); the following is my file's contents:
timeout 5 |
default 0 |
fallback 0 |
|
title Mandrake Install |
|
root (hd0,6) |
kernel /cooker/isolinux/alt0/vmlinuz ramdisk_size=128000 |
root=/dev/ram3 acpi=ht vga=788 kickstart=floppy |
automatic=method:disk,dis:hde,par:hde7,dir:/cooker, |
initrd /cooker/isolinux/alt0/all.rdz |
|
All the text starting with kernel through cooker, are on ONE line. |
Adding your Customized Auto Install File:
Copy your customized auto_inst.cfg (or what ever name you used to distinguish it from other such files) file to the floppy diskette as auto_inst.cfg.
|
Un-mount the diskette and remove it. It is probably a good idea to put a label on the diskette with suitable markings so you can find it again and know what it contains. I have a bad habit of not putting labels on them and ending up with a table full of blank disks and not being able to find the one I want. |
Test Drive:
This may be a good place to go get a good book, extra coffee etc.
Install your shiny new Auto Install disk in the target computer, turn it on an watch what happens, installing any additionally requested CD-ROMS when prompted. If everything went properly, the last message on the screen should be: Please remove disk and re-boot...
If not, then use Ctrl-Alt-F3 to switch to the diagnostic screen and see what the error message was. Then fix what its complaining about, and re-boot and do it again. It might be a good idea to use Ctrl-Alt-F3 shortly after the kernel boots so you can see all the steps that DrakX is going through.
Repeat as required until you get what you want.
A common problem with customized auto_inst.cfg files is you didn't get the syntax correct. Your first hint will be that the install stops with a cryptic error message indicating it could not load the auto_inst.cfg file (maybe it even gives you the line number). If you are not in a rush, you could follow Mandrake's advice in the generated auto_inst.cfg file:
|
# You should always check the syntax with 'perl -cw auto_inst.cfg.pl' before testing |
Another problem is that you did not get the settings and options correct in the menu.lst file. In this case, you will probably be presented with the Manual Install GUI screens. Solving this type of problem is simply a matter of reviewing the file and ensuring that your options are correct.
A more difficult problem to resolve is if you forgot to add a field / line for one of the options you modified or added. There are two possible indications:
1. |
the install stops before completing, or |
2. |
the hard one - you get the success - Please remove disk and re-boot... message, but it doesn't boot or if it does boot, it does not seem to be working right. |
Unfortunately, there is no easy answer here. Begin by reviewing the contents of the auto_inst.cfg file and comparing the entries to the descriptions in the section Anatomy of the 'auto_inst.cfg' File. Pay particular attention to those parts which relate to your hardware, maybe what you thought, is not what the computer knows.
Another approach may be to modify the contents of the auto_inst.cfg file down to an absolute minimum, get that working and then begin adding back the stuff you deleted.
The Network Services install now requires 2 diskettes, one that you boot from and a second containing the network drivers. The best way to start is to create a known 'good' boot diskette using the images that Mandrake has supplied on their CD-ROM, then remove what you do not want, modify what is left as desired, then add anything that is missing. Sounds simple, eh?
Build Boot diskette:
Load and mount the Install CD-ROM, or change to the directory containing the Mandrake Linux file set, place a blank diskette in the floppy drive, then
dd if=images/network.img of=/dev/fd0
Customize the Loader's Configuration File:
Edit /mnt/floppy/syslinux.cfg and remove / change what you do not need (see the section Anatomy of the Boot Loader Configuration Files); the following is my file's contents:
default linux |
display boot.msg |
label linux |
kernel vmlinuz |
append kickstart=floppy automatic=met:nfs, |
ser:fileserver,dir:/Mandrake/10.0, |
netw:static,ip:192.168.5.202,netm:255.255.255.0, |
gat:192.168.5.253,dns:192.168.5.253 ramdisk_size=128000 |
initrd=network.rdz root=/dev/ram3 acpi=ht vga=788 |
|
All the text starting with append through 788 are on ONE line. |
Customize the Boot Message:
This one is up to you, but here is what is in mine (create or replace the file /mnt/floppy/boot.msg):
<blank line> |
Installing Mandrake Linux 10.0 |
<blank line> |
This will install a basic system. |
<blank line> |
<blank line> is just in indicator meaning that an empty line is actually in the file. Be as creative or simplistic as you want. If you want to change the default graphics (boot.msg) then you need to read the file '/usr/share/doc/syslinux*/README.graphics'.
Build Driver diskette:
dd if=images/network_drivers.img of=/dev/fd0
Adding your Customized Auto Install File:
Copy your customized auto_inst.cfg (or what ever name you used to distinguish it from other such files) file to the Driver floppy diskette as auto_inst.cfg. When you mount the diskette, you will have to become the root user to copy the file.
|
Un-mount the diskette and remove it. It is probably a good idea to put a label on the diskette with suitable markings so you can find it again and know what it contains. I have a bad habit of NOT putting labels on them and ending up with a table full of blank disks and not being able to find the one I want. |
Test Drive:
Install your shiny new Boot Auto Install disk in the target computer, turn it on an watch what happens. If everything went properly, it prompts you to insert the Additional Drivers diskette so put your new Driver diskette in and select OK. You should be able to sit back, have coffee, relax and wait until the last message on the screen: Please remove disk and re-boot... appears indicating that the install is done.
If not, then use Ctrl-Alt-F3 to switch to the diagnostic screen and see what the error message was. Then fix what its complaining about, and re-boot and do it again. It might be a good idea to use Ctrl-Alt-F3 shortly after the kernel boots so you can see all the steps that DrakX is going through.
This capability is probably the best to use if you have access and permissions to change things on the NFS Server. In addition, if you are running a network where IPs are assigned by a DHCP server then you can achieve the maximum benefit possible.
As with all things, there are a number of steps that you will have to go through to set it up. I recommend that you use either CD-RW, DVD-RW, DVD-RAM disks, unless you have an abundant number of cheap CD-R disks avilable.
Setup and Build Test Boot Disk
First, you need to extract the files from the 'boot.iso' and adjust them so that you can add your customizations and rebuild the ISO file:
As root, create a mount point and mount the 'boot.iso' file using:
mkdir -p /mnt/iso
mount -t iso9660 -o loop boot.iso /mnt/iso
Then copy the files to your work area, adjusting the permissions so that you can make changes:
cp -a /mnt/iso .
umount /mnt/iso
chmod 755 iso
chmod 755 iso/isolinux
chmod 644 iso/isolinux/isolinux.bin
chmod 644 iso/isolinux/isolinux.cfg
chown -R <your user name>.<your group name> iso
As a regular user, rebuild the 'boot.iso' file using the following script:
#!/bin/bash |
|
ISO="auto.iso" |
IMAGE_DIR="iso" |
|
rm -f $ISO |
|
cd $IMAGE_DIR |
mkisofs -r -f -J -cache-inodes -V 'Auto Boot ISO' -b isolinux/isolinux.bin \ |
-c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \ |
-o ../$ISO ../$IMAGE_DIR |
cd .. |
You should now have an ISO image called auto.iso that you can create a CD with, boot and verify that it is functional.
Customize the Loader's Configuration File:
Edit the file iso/isolinux/isolinux.cfg so that it appears something like the fragment:
default linux |
prompt 1 |
timeout 150 |
display boot.msg |
F1 help.msg |
F2 advanced.msg |
F3 boot.msg |
|
label FLOPPY |
kernel alt0/vmlinuz |
append kickstart=floppy automatic=met:nfs,ser:fileserver, |
dir:/mnt/mass/Mandrake/mandrake/10.0,int:eth1,netw:static,ip:192.168.5.225, |
netm:255.255.255.0,gat:192.168.5.252,dns:192.168.5.254, |
initrd=alt0/all.rdz ramdisk_size=128000 root=/dev/ram3 acpi=ht vga=788 |
|
label DHCP-FLOPPY |
kernel alt0/vmlinuz |
append kickstart=floppy automatic=met:nfs,ser:fileserver, |
dir:/mnt/mass/Mandrake/mandrake/10.0,int:eth1,netw:dhcp,hos:tommy, |
initrd=alt0/all.rdz ramdisk_size=128000 root=/dev/ram3 acpi=ht vga=788 |
|
label NFS |
kernel alt0/vmlinuz |
append kickstart=my_cfgs/auto_inst.cfg automatic=met:nfs,ser:fileserver, |
dir:/mnt/mass/Mandrake/mandrake/10.0,int:eth1,netw:static,ip:192.168.5.225, |
netm:255.255.255.0,gat:192.168.5.252,dns:192.168.5.254, |
initrd=alt0/all.rdz ramdisk_size=128000 root=/dev/ram3 acpi=ht vga=788 |
|
label NFS-IP |
kernel alt0/vmlinuz |
append kickstart=my_cfgs/auto_inst-IP automatic=met:nfs,ser:fileserver, |
dir:/mnt/mass/Mandrake/mandrake/10.0,int:eth1,netw:static,ip:192.168.5.225, |
netm:255.255.255.0,gat:192.168.5.252,dns:192.168.5.254, |
initrd=alt0/all.rdz ramdisk_size=128000 root=/dev/ram3 acpi=ht vga=788 |
|
label DHCP-NFS |
kernel alt0/vmlinuz |
append kickstart=my_cfgs/auto_inst.cfg automatic=met:nfs,ser:fileserver, |
dir:/mnt/mass/Mandrake/mandrake/10.0,int:eth1,netw:dhcp,hos:tommy, |
initrd=alt0/all.rdz ramdisk_size=128000 root=/dev/ram3 acpi=ht vga=788 |
|
label DHCP-IP |
kernel alt0/vmlinuz |
append kickstart=my_cfgs/auto_inst-IP automatic=met:nfs,ser:fileserver, |
dir:/mnt/mass/Mandrake/mandrake/10.0,int:eth1,netw:dhcp,hos:tommy, |
initrd=alt0/all.rdz ramdisk_size=128000 root=/dev/ram3 acpi=ht vga=788 |
|
label linux |
kernel alt0/vmlinuz |
append initrd=alt0/all.rdz ramdisk_size=128000 root=/dev/ram3 acpi=ht vga=788 |
|
All the text starting with append through 788 are on ONE line. |
Customize the Boot Message:
This one is up to you, but here is what is in mine (create or replace the file iso/isolinux/boot.msg):
<blank line> |
Installing Mandrake Linux 10.0 |
<blank line> |
This will install a basic system. |
<blank line> |
<blank line> is just in indicator meaning that an empty line is actually in the file. Be as creative or simplistic as you want. If you want to change the default graphics (boot.msg) then you need to read the file '/usr/share/doc/syslinux*/README.graphics'.
Build your Customized Auto Install Floppy:
Copy your customized auto_inst.cfg (or what ever name you used to distinguish it from other such files) file to a 'vfat' (or 'ext2') formatted floppy diskette as auto_inst.cfg.
Un-mount the diskette and remove it. It is probably a good idea to put a label on the diskette with suitable markings so you can find it again and know what it contains. I have a bad habit of NOT putting labels on them and ending up with a table full of blank disks and not being able to find the one I want.
This step is only necessary if you plan on using the Boot CD and Floppy approach.
Build Final Boot Disk
Finally, rebuild the auto.iso file using the following script:
#!/bin/bash |
|
ISO="auto.iso" |
IMAGE_DIR="iso" |
|
rm -f $ISO |
|
cd $IMAGE_DIR |
mkisofs -r -f -J -cache-inodes -V 'Auto Boot ISO' -b isolinux/isolinux.bin \ |
-c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \ |
-o ../$ISO ../$IMAGE_DIR |
cd .. |
You should now have an ISO image called auto.iso containing all your customizations that you can use create a suitable CD-R, CD-RW, DVD-R, DVD-RW or DVD-RAM.
Test Drive:
Install your shiny new Boot Auto Install CD-ROM and the Auto Install Floppy in the target computer, turn it on an watch what happens. If everything went properly, the last message on the screen: Please remove disk and re-boot... appears indicating that the install is done.
If not, then use Ctrl-Alt-F3 to switch to the diagnostic screen and see what the error message was. Then fix what its complaining about, and re-boot and do it again. It might be a good idea to use Ctrl-Alt-F3 shortly after the kernel boots so you can see all the steps that DrakX is going through.
The following is an example auto_inst.cfg file for a recent computer used as a workstation. Your situation will obviously vary, but it will give you an idea of what you could do.
By the way, the file were generated using the kinda Short Cut #3 described at the beginning of this section, with a few personal adjustments.
Example 1: Recent Computer
#!/usr/bin/perl -cw |
# |
# You should check the syntax of this file before using it in an auto-install. |
# You can do this with 'perl -cw auto_inst.cfg.pl' or by executing this file |
# (note the '#!/usr/bin/perl -cw' on the first line). |
$o = { |
'autoExitInstall' => 0, |
'mkbootdisk' => 0, |
'isUpgrade' => 0, |
'excludedocs' => 0, |
'miscellaneous' => { |
'numlock' => 1, |
}, |
'partitioning' => { |
'eraseBadPartitions' => 0, |
'auto_allocate' => 1, |
'clearall' => 1, |
}, |
'partitions' => [ |
{ |
'size' => 96327, |
'type' => 1155, |
'mntpoint' => '/boot', |
}, |
{ |
'size' => 2104452, |
'type' => 130, |
'mntpoint' => 'swap', |
}, |
{ |
'size' => 75971322, |
'type' => 1155, |
'ratio' => 100, |
'mntpoint' => '/', |
} |
], |
'manualFstab' => [], |
'useSupermount' => 0, |
'bootloader' => { |
'method' => 'lilo-text', |
'crushMbr' => 1, |
}, |
'authentication' => { |
'md5' => 1, |
'shadow' => 1, |
}, |
'superuser' => { |
'realname' => 'root', |
'shell' => '/bin/bash', |
'pw' => '$1$ec4X9KJ9$RwL6dZqwwzbTMCyP5Wd.01', |
'gid' => '0', |
'uid' => '0', |
'home' => '/root' |
}, |
'users' => [], |
'security' => 2, |
'security_user' => 'david@myisp.ca', |
'libsafe' => 0, |
'timezone' => { |
'UTC' => '1', |
'timezone' => 'Canada/Mountain', |
}, |
'printer' => undef, |
'netc' => { |
'NETWORKING' => 'yes', |
'HOSTNAME' => 'mdk92-devel.eastcott.net', |
'DOMAINNAME' => 'eastcott.net', |
'GATEWAY' => '192.168.5.252', |
'GATEWAYDEV' => 'eth1', |
'dnsServer' => '192.168.5.254', |
'FORWARD_IPV4' => 'false', |
}, |
'intf' => { |
'eth1' => { |
'DEVICE' => 'eth1', |
'BOOTPROTO' => 'static', |
'IPADDR' => '192.168.5.225', |
'NETMASK' => '255.255.255.0', |
'NETWORK' => '192.168.5.0', |
'BROADCAST' => '192.168.5.255', |
'MII_NOT_SUPPORTED' => 'yes', |
'ONBOOT' => 'yes', |
} |
}, |
'locale' => { |
'country' => 'CA', |
'utf8' => '', |
'langs' => { |
'en_US' => 1 |
}, |
'lang' => 'en_US' |
}, |
'keyboard' => { |
'KEYBOARD' => 'us', |
'KBCHARSET' => 'C', |
'GRP_TOGGLE' => '' |
}, |
'mouse' => { |
'type' => 'USB', |
'device' => 'usbmouse', |
'name' => 'Wheel', |
'nbuttons' => 5, |
'MOUSETYPE' => 'ps/2', |
'XMOUSETYPE' => 'IMPS/2' |
}, |
'services' => [ |
'alsa', |
'atd', |
'crond', |
'devfsd', |
'harddrake', |
'keytable', |
'kheader', |
'netfs', |
'network', |
'nfslock', |
'numlock', |
'partmon', |
'portmap', |
'random', |
'rawdevices', |
'sound', |
'syslog', |
], |
'default_packages' => [ |
'at', |
'coreutils-doc', |
'devfsd', |
'eject', |
'gnupg', |
'harddrake', |
'hdparm', |
'hexedit', |
'hotplug', |
'joe', |
'ldetect', |
'locales', |
'locales-en', |
'man', |
'man-pages', |
'msec', |
'nfs-utils-clients', |
'numlock', |
'procmail', |
'strace', |
'sudo', |
'tmpwatch', |
'urpmi', |
], |
# |
# Clean up and adjust missing things |
# |
'postInstall' => ' |
# fix joe up |
perl -pi -e "s/^ -nobackups/-nobackups/" /etc/joe/joerc |
perl -pi -e "s/^-wordwrap/--wordwrap/" /etc/joe/joerc |
' |
}; |
There are a couple of reasons for doing this
1. |
You are tired of installing everything, then having to run rpmdrake to install all updates. |
2. |
You are tired of doing more than you really need to... |
Creating updated CDs/DVD provides you with a some benefits, Nice new shiny up to date date CDs/DVD that you can use for installing, up date your NFS Server file set (for network installs), learn something new.
The following is a simple manual approach to creating a set of updated CDs/DVD. I expect that you will adapt it to suit your environment and personal preferences. It assumes that you have purchased a set of CDs from MandrakeSoft (always a goo thing) or downloaded the 'ISO' images and burned a set of CDs.
|
The images that you create are for the newer 700MB CD or 4.7G DVD disks. If you still want to use the 650MB size, then you will have modify the configuration file and add additional disk definitions. |
The first step is to install the package mkcd-3.8.0-1mdk (or later) and all of its dependencies, then create a mirror image of the installation CDs in a working directory and make a few adjustments. Skip and steps (operations) that are not applicable for the media that you are using. As a regular user:
1. Create Working directories as follows:
mkdir -p master_cd/cd |
cd master_cd |
2. Obtain an initial image of the CD-ROM's directory hierarchy and files.
Insert and Mount the first CD (Installation) then,
cp -a /mnt/cdrom/* cd |
chmod -R u+w cd |
Un-mount the first CD, then repeat the above for each additional CD that you have.
3. Create the new Master RPMS sets using the following:
mkdir myRPMS |
mv -f cd/Mandrake/RPMS/* myRPMS |
mv -f cd/Mandrake/RPMS2/* myRPMS |
mv -f cd/Mandrake/RPMS3/* myRPMS |
rm -rf cd/Mandrake/RPMS |
rm -rf cd/Mandrake/RPMS2 |
rm -rf cd/Mandrake/RPMS3 |
mkdir myRPMSextra |
4. Create a CD configuration file called myCD.conf (similar to the following) and place it in the master_cd directory. If you want to save yourself a lot of typing, look in cd/misc/doc and you will find a template called 10.0.conf. Modify it so that appears similar to the following (you can experiment with the other stuff there some other time), but adjust the full path names to reflect your setup:
# |
|
10.0 |
|
list -k ./cd/RPM-GPG-KEYS 1 ./cd/misc/doc/download ./cd/misc/doc/main |
rpmlist -b ./myRPMSextra |
rpmlist -b ./myRPMS |
|
# download |
|
disc 1 695m 10DOWNLOAD1 "Installation CD 1 (x86)" "MandrakeLinux10.0-Download-1" -p Mandrakesoft |
dir rpms Mandrake/RPMS |
generic --synthesis rpms 1 |
advertising ./cd/Mandrake/share/advertising/01-thanks.png |
./cd/Mandrake/share/advertising/02-community.png |
./cd/Mandrake/share/advertising/03-software.png |
./cd/Mandrake/share/advertising/04-configuration.png |
./cd/Mandrake/share/advertising/05-desktop.png |
./cd/Mandrake/share/advertising/06-development.png |
./cd/Mandrake/share/advertising/07-server.png |
./cd/Mandrake/share/advertising/08-store.png |
./cd/Mandrake/share/advertising/09-mdksecure.png |
./cd/Mandrake/share/advertising/10-security.png |
./cd/Mandrake/share/advertising/11-mnf.png |
./cd/Mandrake/share/advertising/12-mdkexpert.png |
./cd/Mandrake/share/advertising/13-mdkexpert_corporate.png |
installation -o 50,3,0.1 --synthesis -l fr,it,en,de,es -t My-Download-i586 -i ./cd/ |
-d 1/rpms 2/rpms 3/rpms |
boot --isolinux isolinux -b isolinux/isolinux.bin --first ./cd/isolinux -f ./cd/images |
|
disc 2 695m 10DOWNLOAD2 "Installation CD 2 (x86)" "MandrakeLinux10.0-Download-2" -p Mandrakesoft |
dir rpms Mandrake/RPMS2 |
generic --synthesis rpms 1 |
boot -b Boot/cdrom-changedisk.img -- -d -f Boot/ ./cd/images/cdrom-changedisk.img |
disc 3 695m 10DOWNLOAD3 "International CD (x86)" "MandrakeLinux10.0-Download-3" -p Mandrakesoft |
dir rpms Mandrake/RPMS3 |
generic --synthesis rpms 1 |
|
disc 11 4.36g 10DOWNLOAD "Installation DVD (x86)" "MandrakeLinux10.0-Download" -p Mandrakesoft |
dir rpms Mandrake/RPMS |
generic --synthesis rpms 1 |
advertising ./cd/Mandrake/share/advertising/01-thanks.png |
./cd/Mandrake/share/advertising/02-community.png |
./cd/Mandrake/share/advertising/03-software.png |
./cd/Mandrake/share/advertising/04-configuration.png |
./cd/Mandrake/share/advertising/05-desktop.png |
./cd/Mandrake/share/advertising/06-development.png |
./cd/Mandrake/share/advertising/07-server.png |
./cd/Mandrake/share/advertising/08-store.png |
./cd/Mandrake/share/advertising/09-mdksecure.png |
./cd/Mandrake/share/advertising/10-security.png |
./cd/Mandrake/share/advertising/11-mnf.png |
./cd/Mandrake/share/advertising/12-mdkexpert.png |
./cd/Mandrake/share/advertising/13-mdkexpert_corporate.png |
installation -o 50,3,0.1 --synthesis -l fr,it,en,de,es -t My-Download-i586 -i ./cd/ |
-d 11/rpms |
boot --isolinux isolinux -b isolinux/isolinux.bin --first ./cd/isolinux -f ./cd/images |
|
The text beginning with advertising through 13-mdkexpert_corporate.png and installation through 3/rpms and installation through 11/rpms, are all on ONE line. |
The filenames contained in the directory Mandrake/share/advertising/ change from release to release so you need to adjust them to match what you have (see the file list). If you do not, then the GUI based install will FAIL as it goes to install packages. |
5. Remove files that are re-generated when creating the ISO images.
rm -rf ./iso |
rm -rf ./build |
rm -f ./myCD.script |
rm -f ./progress.log |
|
rm -rf ./cd/Boot |
rm -f ./isolinux/boot.cat |
rm -f ./cd/pkg*.idx |
rm -f ./cd/Mandrake/base/compss |
rm -f ./cd/Mandrake/base/depslist.ordered |
rm -f ./cd/Mandrake/base/hdlist*.cz |
rm -f ./cd/Mandrake/base/provides |
rm -f ./cd/Mandrake/base/synth* |
rm -f ./cd/.rr_moved |
|
rm -f ./myRPMS/*.cz |
rm -f ./myRPMSextra/*.cz |
6. Update the 'rpmsrate' file
This is optional, but if you added a new package and you want it to be installed using the alternate package selection methods then you have to update the file for your changes. Simply edit the file Mandrake/base/rpmsrate, locate the appropriate Group tag, sub-group tag and add your package to the desired rate. If the rate you want to use is missing, then add it along with your package name. If you have to, add the necessary sub-group tag. Be smart and do not create a new tag.
At this point your 'master_cd' directory should have the directories 'myRPMS', 'myRPMS4' and 'cd' and, the file 'myCD.conf'.
One final note, MandrakeSoft has a series of Twiki pages at http://qa.mandrakesoft.com/twiki/bin/view/Main that describes a substantial number of features of the distribution. For more specific details regarding the configuration file used by mkcd, then look at http://qa.mandrakesoft.com/twiki/bin/view/Main/MakeCD.
Now the fun part. Locate your favorite ftp mirror site and get the 'updates/10.0/RPMS' directory contents and place them in the master_cd directory in a directory called updates.
When you are done, the updates directory should only contain '*.rpm' files
Now the tricky part. You have to delete the older rpms from your myRPMS and myRPMSextra directories and replace them with the new ones from the updates directory into the appropriate myRPMS or myRPMSextra directory.
I have found that if you run Midnight Commander (mc) from the console or an xterm, you can point it at both your myRPMS / myRPMSextra and updates directories at the same time. This makes it a little easier to see what has to be removed and copied.
|
Be careful and delete only the older files that correspond to the new update ones. See the Advanced section below. |
1. Clean up from any previous ISO creation sessions
cd master_cd |
rm -rf /home/<your home>/tmp/10.0 |
rm -rf /home/<your home>/tmp/build |
rm -rf /home/<your home>/tmp/.mkcd* |
rm -rf /home/<your home>/tmp/.build_hdlist* |
rm -rf ./build |
rm -rf ./iso |
rm -f ./myCD.script |
rm -f progress.log |
2. Build the new ISO images
For CDs use:
mkcd -s myCD.conf --verbose -p myCD.script -m 1,2,3 &> ./progress.log
For a DVD use:
mkcd -s myCD.conf --verbose -p myCD.script -m 11 &> ./progress.log
When the build is done, you should have three ISO images in the iso/9.0 directory called:
1.iso, 2.iso and 3.iso or 11.iso.
You can now use your favorite CD writing program to create new CDs.
A few things you should watch out for:
1. |
If you seem to be missing some RPMS on your new CD set, it is probably because there were missing dependencies and as a result they were dropped by mkcd. If you saw REJECTED appear on the display, then you definitely are missing some packages. You will have to look at the dependencies for the rejected packages and make suitable adjustments. |
2. |
If only CD 1 is too large, you can try reducing the 695m for it to try and force mkcd to move some packages from CD 1 to the remaining 2 CDs. |
3. |
If you have more RPMS than will fit in the disks defined, then add an additional disc definition. See the progression of disc 2 to disc 3 for a hint about what to do. |
4. |
If the ISO build fails when you are building the small (695m) disks and you see a message like: |
|
FATAL mark_and_check_list: a previous revert to put needed packages failed, cannot order packages correctly fo rep 1 on disc 1 It means that mkcd was unable to create the first disk because the were too many REQUIRED packages needed for the first disk. You can try and remove various packages, but I found that removing any OLDer kernels did the trick for me. Alternately, you can build the DVD image. |
If you make any changes then repeat all the steps in Creating New ISO Images.
ISO via Loopback device
If you obtained your Mandrake Linux installation CD by downloading the ISO files from a ftp site and have kept them around just in case, then a more reliable way of creating the Mastering File Set is to mount the ISO images via a loop back device and simply copy their contents. The following is a simple set of steps to make an ISO image accessible as though it was just another disk.
Assuming that you are following the steps for Creating a Mastering File Set, then the following replaces Step 2.
You need a temporary mount point and /mnt/disk is usually available so, as root:
mount <where your isos are>/Mandrake10-cd1-inst.i586.iso /mnt/disk -t iso9660 -o loop |
|
cp -a /mnt/disk/* cd |
umount /mnt/disk |
chmod -R u+w cd |
|
mount <where your isos are>/Mandrake10-cd2-ext.i586.iso /mnt/disk -t iso9660 -o loop |
|
cp -a /mnt/disk/* cd |
umount /mnt/disk |
chmod -R u+w cd |
|
mount <where your isos are>/Mandrake10-cd3-i18n.i586.iso /mnt/disk -t iso9660 -o loop |
|
cp -a /mnt/disk/* cd |
umount /mnt/disk |
chmod -R u+w cd |
finally you have to change ownership from root to a regular user,
chown -R <user>.<group> cd
Now you can resume with Step 3 of Creating a Mastering File Set.
The single most frustrating part of maintaining an Updated Installation CD Set, is deleting the correct 'old' RPMS and replacing them with the new 'Updates' RPMS. It is also the one most likely to result in an error; deleting the wrong file or not copying over the new update. So I created the following script to help me. It is not pretty and I am sure that an enterprising individual could come up with a better/safer one, but it works for me.
#!/bin/bash |
# |
# usage: check2updates <Master RPMS directory> <Master RPMS4 directory> <updates directory> |
# |
# Examines each update file to see if it is newer than one in the master set. |
# If it is, then the older one is removed and the update copied to the master |
# set. |
# |
# If an update package is found that is not in the master set, its name is |
# placed in the file "new_rpms.list" for you to manually deal with. |
# |
|
# first some Constants |
MASTER_FILES="masterfiles.list" |
UPDATE_FILES="updatefiles.list" |
SELECT_FILES="selections.list" |
NEW_RPMS="new_rpms.list" |
|
# and variables |
masterfile="" |
mastername="" |
masterversion="" |
masterrelease="" |
|
updatefile="" |
updatename="" |
updateversion="" |
updaterelease="" |
|
master="" |
master4="" |
updates="" |
|
# then some functions |
|
decide_action () |
{ |
missing=0 |
|
for masterfile in `cat $SELECT_FILES` |
do |
if [ "`basename $masterfile`" = "$updatefile" ]; then |
return 2 |
fi |
|
get_master_info "$masterfile" |
|
if [ "$mastername" = "$updatename" ]; then |
missing=1 |
|
# this is the right one |
if [ `expr $masterversion \< $updateversion` = "1" ]; then |
return 0 |
|
elif [ "$masterversion" = "$updateversion" ]; then |
if [ `expr $masterrelease \< $updaterelease` = "1" ]; then |
return 0 |
fi |
fi |
return 2 |
fi |
done |
|
if [ $missing -eq 0 ]; then |
# update has no match in master list |
return 1 |
fi |
|
# no need to update this one |
return 2 |
} |
|
get_update_info () |
{ |
# $1 is name of package to query |
|
updatename=`rpm -qp --nosignature --queryformat %{NAME} $1` |
updateversion=`rpm -qp --nosignature --queryformat %{VERSION} $1` |
updaterelease=`rpm -qp --nosignature --queryformat %{RELEASE} $1 | sed s/mdk//` |
} |
|
|
get_master_info () |
{ |
# $1 is name of package to query |
|
mastername=`rpm -qp --nosignature --queryformat %{NAME} $1` |
masterversion=`rpm -qp --nosignature --queryformat %{VERSION} $1` |
masterrelease=`rpm -qp --nosignature --queryformat %{RELEASE} $1 | sed s/mdk//` |
} |
|
# |
# |
# finally the main entry point |
# |
|
if [ $# -ne 3 ]; then |
echo "usage: <Master RPMS> <Master RPMS4> <Update RPMS>" |
exit 1 |
fi |
|
if [ ! -d "$1" ]; then |
echo "Need directory name for Master RPMS." |
exit 1 |
fi |
master="$1" |
|
if [ ! -d "$2" ]; then |
echo "Need directory name for Master RPMS4." |
exit 1 |
fi |
master4="$2" |
|
if [ ! -d "$3" ]; then |
echo "Need directory name for Update RPMS." |
exit 1 |
fi |
updates="$3" |
|
#clean up old files from previous runs |
rm -f $NEW_RPMS |
|
# create list of Update RPMS |
ls $updates/* | sed 's|'$updates'/||' > $UPDATE_FILES |
|
# and for the master RPMS |
ls $master/* > $MASTER_FILES |
ls $master4/* >> $MASTER_FILES |
|
# lets do it |
for updatefile in `cat $UPDATE_FILES` |
do |
# get update package info |
echo "Check status of update package: $updatefile." |
get_update_info "$updates/$updatefile" |
|
grep ".*/$new_updatename" $MASTER_FILES > $SELECT_FILES |
if [ $? -eq 0 ]; then |
|
decide_action |
result=$? |
|
case $result |
in |
0) # replace, new update |
echo " Replacing `basename $masterfile` with $updatefile" |
rm -f $masterfile |
cp "$updates/$updatefile" "`dirname $masterfile`/" |
;; |
|
1) # missing from master list |
echo " Update does not exist in the Master File Set: $updatefile" |
echo "$updatefile" >> $NEW_RPMS |
;; |
|
*) # skip, update already in Master, but make sure it really is.. |
if [ ! "`basename $masterfile`" = "$updatefile" ]; then |
echo " ERROR Skipping Master file: $masterfile" |
fi |
;; |
esac |
|
else |
|
# the update is a new package, report and add to new list |
echo " Update does not exist in the Master File Set: $updatefile" |
echo "$updatefile" >> $NEW_RPMS |
fi |
done |
|
# clean up junk files |
rm -f $MASTER_FILES |
rm -f $UPDATE_FILES |
rm -f $SELECT_FILES |
|
exit 0 |
|
# |
1. |
Create a mastering file set as described in steps 1 through 6 of the section Creating a Mastering File Set (Step 2 could be replaced by the procedure described in section Alternate for Creating the Initial Image). |
2. |
Run the script check2updates, (described in the section A Script Based Updater). |
3. |
Then use the following script to create the ISO images or, after you have run the check2updates script, then use the following: |
#!/bin/bash |
# |
# This is a simple script to complete the generation of a |
# set of CD's containing the current updates. |
# |
# It assumes that the ./check2updates script has been run, and that |
# the master RPM files contain all the latest stuff. |
# |
# usage: ./makecd [clean] |
# |
|
MY_DIR=`pwd` |
TMP_DIR="$HOME/tmp" |
|
# couple quick integrity checks |
if [ ! -e $MY_DIR/myRPMS ]; then |
echo "Could not find the \"myRPMS\" directory." |
exit 1 |
fi |
|
if [ ! -e $MY_DIR/myRPMSextra ]; then |
echo "Could not find the \"myRPMSextra\" directory." |
exit 1 |
fi |
|
if [ ! -e $MY_DIR/myCD.conf ]; then |
echo "Could not find the CD Configuration file." |
exit 1 |
fi |
|
if [ ! -e $MY_DIR/cd ]; then |
echo "Could not find the \"cd\" directory." |
exit 1 |
fi |
|
# first, get rid of the old stuff |
echo "Removing old stuff..." |
|
if [ "XXX$1" != "XXX" ]; then |
# clean up cache area files |
echo "Removing cache filesfrom $TMP_DIR." |
rm -rf $TMP_DIR/10.0 |
rm -rf $TMP_DIR/build |
rm -rf $TMP_DIR/.mkcd* |
rm -rf $TMP_DIR/.build_hdlist* |
rm -rf $MY_DIR/build |
fi |
|
# clean up from the last run |
rm -rf $MY_DIR/iso |
rm -f $MY_DIR/myCD.script |
rm -f $MY_DIR/progress.log |
|
# make sure CD base image is clean |
rm -rf $MY_DIR/cd/Boot |
rm -f $MY_DIR/cd/isolinux/boot.cat |
rm -f $MY_DIR/cd/pkg*.idx |
rm -f $MY_DIR/cd/Mandrake/base/compss |
rm -f $MY_DIR/cd/Mandrake/base/depslist.ordered |
rm -f $MY_DIR/cd/Mandrake/base/hdlist*.cz |
rm -f $MY_DIR/cd/Mandrake/base/provides |
rm -f $MY_DIR/cd/Mandrake/base/synth* |
rm -f $MY_DIR/cd/.rr_moved |
|
# remove any disk content files |
rm -f $MY_DIR/myRPMS/*.cz |
rm -f $MY_DIR/myRPMSextra/*.cz |
|
echo "Now making ISO images." |
mkcd -s $MY_DIR/myCD.conf --verbose 1 -p myCD.script -m 11 &> $MY_DIR/progress.log |
|
echo "Done, the ISOs are located at $MY_DIR/iso/10.0." |
echo "and, the verbose diagnostic information is in the file $MY_DIR/progress.log" |
exit 0 |
The following is a simple example, you should adjust it as required for your environment and security requirements. After setting up a NFS Server, you will be able to use the 'network' install for Manual Installations and for NFS Automated / Replay installs.
Step 1
On the designated server machine, make sure that NFS is installed and running. For this example, my server's name is 'fileserver.eastcott.net'.
Step 2
As root on 'fileserver':
a) create a directory using: mkdir /nfscd
b) change the permissions to 0755 using: chmod 755 /nfscd
c) change ownership of the directory to a regular user <user.group> using:
chown user.group /nfscd
Step 3
As the regular user who owns /nfscd: (Assumes that the CD-ROM is mounted as /mnt/cdrom.)
a) insert the MDK Install CD (1 of ...) into your CD-ROM, and mount it.
b) copy the CD-ROMs contents to the new directory using:
cp -a /mnt/cdrom /nfscd
c) un-mount the first disk, then insert and mount the second CD.
d) again, copy the files using:
cp -a /mnt/cdrom /nfscd
e) un-mount and remove the CD.
f) repeat if you have more disks.
Step 4
Rename the directory /nfscd/cdrom to /nfscd/cdrom10.0 using:
mv /nfscd/cdrom /nfscd/cdrom10.0
Step 5
As root:
a) modify your /etc/exports files to contain the the line:
/nfscd/cdrom10.0 *.eastcott.net(ro,root_squash)
|
If you the NFS server can not do a reverse name look up because the DNS server does not have an IP to name entry for your computer, then you may have to change the above line to use the IP form: |
/nfscd/cdrom10.0 192.168.5.0/255.255.255.0(ro,root_squash)
b) then update the NFS exports using: exportfs -r
Step 6
On a different computer:
a) test that the NFS volume can be mounted (probably as root) using:
mount -t nfs fileserver:/nfscd/cdrom10.0 /mnt/nfs
b) un-mount it.
Step 7
Create a test auto install disk (see Network Auto Install Diskette Set)
Adjust the syslinux.cfg file for your network, adjust the auto_inst.cfg file to your requirements. Then install the disk in a target computer, re-boot it and verify that you can do an install.
Problems that you may encounter include:
a) |
The install fails with an error message indicating it can not find the install files. This may be caused because the 'syslinux.cfg' file directory parameter is incorrect, you forgot to re-export the NFS volumes after changing the /etc/exports file. |
b) |
The install fails with an indication similar to Permission Denied. This is usually because the directory and file permissions are set incorrectly on NFS server. All directories in the export volume should have the permissions of a least 555, and all the distribution files should have permissions of at least 444. |
c) |
The install fails with an error similar to unable to execute install2. This is again a permissions problem. |
d) |
The install completes, but not all the packages were installed. This may be because you did not copy all the required CDs and retain the required directory hierarchy. |
|
The last three problems are usually solved by deleting the /nfscd directory and its contents, then repeating steps 2 through 5 again. |
This section is being provided because there were just too many variations for the 'intf' and 'netc' options as a result of their interactions. And providing isolated examples in each section made it difficult to see their relationship to one another.
|
For examples using DHCP, if the DHCP server does not provide all the necessary information, then just add the missing parts (to netc) yourself. |
Static IP:
Generally, this form is use on LANs and the information is provided by your system administrator :
'intf' => { |
'eth0' => { |
'DEVICE' => 'eth0', |
'BOOTPROTO' => 'static', |
'ONBOOT' => 'yes', |
'IPADDR' => '192.168.5.210', |
'NETMASK' => '255.255.255.0', |
'NETWORK' => '192.168.5.0', |
'BROADCAST' => '192.168.5.255', |
'MII_NOT_SUPPORTED' => 'yes' |
} |
}, |
|
'netc' => { |
'NETWORKING' => 'yes', |
'FORWARD_IPV4' => 'false', |
'HOSTNAME' => 'linux-dev.eastcott.net', |
'DOMAINNAME' => 'eastcott.net', |
'GATEWAY' => '192.168.5.254', |
'GATEWAYDEV' => 'eth0', |
'dnsServer' => '192.168.5.254' |
}, |
DHCP IP:
This minimal form is used when the DHCP server provides all the information that you require. Generally, the server dispenses IP information based on your cards ethernet hardware address and name resolution is provided by static DNS server tables:
'intf' => { |
'eth0' => { |
'DEVICE' => 'eth0', |
'BOOTPROTO' => 'dhcp', |
'ONBOOT' => 'yes' |
'MII_NOT_SUPPORTED' => 'yes' |
} |
}, |
|
'netc' => { |
'NETWORKING' => 'yes', |
'DHCP' => 1, |
'FORWARD_IPV4' => 'false', |
}, |
DHCP IP:
This is the next level, where the DHCP server needs you to supply a host name, typically so it can dynamically update a DNS server:
'intf' => { |
'eth0' => { |
'DEVICE' => 'eth0', |
'BOOTPROTO' => 'dhcp', |
'ONBOOT' => 'yes' |
'MII_NOT_SUPPORTED' => 'yes', |
'DHCP_HOSTNAME' => 'CS167266-A', |
} |
}, |
|
'netc' => { |
'NETWORKING' => 'yes', |
'DHCP' => 1, |
'FORWARD_IPV4' => 'false', |
}, |
Local LAN and Cable Access to Internet:
'intf' => { |
'eth0' => { |
'DEVICE' => 'eth0', |
'BOOTPROTO' => 'dhcp', |
'ONBOOT' => 'yes' |
'MII_NOT_SUPPORTED' => 'yes', |
'DHCP_HOSTNAME' => 'CS167266-A', |
}, |
|
'eth1' => { |
'DEVICE' => 'eth1', |
'BOOTPROTO' => 'static', |
'ONBOOT' => 'yes', |
'IPADDR' => '192.168.5.202', |
'NETMASK' => '255.255.255.0', |
'NETWORK' => '192.168.5.0', |
'BROADCAST' => '192.168.5.255', |
'MII_NOT_SUPPORTED' => 'yes', |
} |
}, |
|
'netc' => { |
'NETWORKING' => 'yes', |
'dhcp_client' => 'dhcpcd', |
'FORWARD_IPV4' => 'false', |
'HOSTNAME' => 'linux2.eastcott.net', |
'DOMAINNAME' => 'eastcott.net', |
'GATEWAYDEV' => 'eth0', |
'dnsServer' => '192.168.5.253', |
}, |
|
# Since I have an interface using DHCP and one using static (my internal world), |
# I do not want resolv.conf adjusted, nor ntp.conf, and nor have the domain name changed |
# Also, dhcpcd has a default 60 second timeout that I want to change to 15 seconds |
# |
'postInstall' => ' |
echo "PEERDNS=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0 |
echo "PEERNTPD=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0 |
echo "DOMAINNAME=eastcott.net" >> /etc/sysconfig/network |
echo "DHCP_TIMEOUT=15" >> /etc/sysconfig/network-scripts/ifcfg-eth0 |
' |
Dual Lan:
(multiple is just more intf definitions)
'intf' => { |
'eth0' => { |
'DEVICE' => 'eth0', |
'BOOTPROTO' => 'static', |
'ONBOOT' => 'yes' |
'IPADDR' => '192.168.1.2', |
'NETMASK' => '255.255.255.0', |
'NETWORK' => '192.168.1.0', |
'BROADCAST' => '192.168.1.255', |
'MII_NOT_SUPPORTED' => 'yes' |
}, |
|
'eth1' => { |
'DEVICE' => 'eth1', |
'BOOTPROTO' => 'static', |
'ONBOOT' => 'yes', |
'IPADDR' => '192.168.5.202', |
'NETMASK' => '255.255.255.0', |
'NETWORK' => '192.168.5.0', |
'BROADCAST' => '192.168.5.255', |
'MII_NOT_SUPPORTED' => 'yes' |
} |
}, |
|
'netc' => { |
'NETWORKING' => 'yes', |
'FORWARD_IPV4' => 'false', |
'HOSTNAME' => 'linux3.eastcott.net', |
'DOMAINNAME' => 'eastcott.net', |
'GATEWAY' => '192.168.5.253', |
'GATEWAYDEV' => 'eth1', |
'dnsServer' => '192.168.5.253', |
}, |
|
If this computer is acting as a bridge between the two networks, then you need to change FORWARD_IPV4 to true. |
As with all things, the Automated Installation facility has its problems. This section will attempt to identify them and illustrate, if possible, work a rounds for them.
These problems and issues are common to all releases of the current distributions' Version.
1. |
Missing RAID and LVM definitions. |
|
Unfortunately when the auto_inst.cfg file is generated, the RAID and LVM declarations are NOT. You will have to manually add them your self. |
2. |
Enabling passno, freq and toFormatCheck with partitions. |
|
To enable these features requires that you make a modification to the Stage2 perl scripts as follows: a) Uncompress the file using: gunzip Mandrake/mdkinst/usr/bin/perl-install/fsedit.pm.gz b) Adjust the lines (about 481) from: sub suggest_part {
...
foreach ('options', 'lv_name', 'encrypt_key') { $part->{$_} = $best->{$_} if $best->{$_}; } 1; }
|
|
to: sub suggest_part {
...
foreach ('options', 'lv_name', 'encrypt_key', 'passno', 'freq', 'toFormatCheck') { $part->{$_} = $best->{$_} if exists $best->{$_}; } 1; }
c) Compress the file using: gzip Mandrake/mdkinst/usr/bin/perl-install/fsedit.pm.gz
|
These ones are specific to the Community Release.
1. |
Usability Problems with replay*.img files. |
|
CD-ROM Installs: the replay_install.img's file syslinux.cfg has the automatic=method:disk on the append line twice, usable but not correct. Also, you can only install from the first CD. GRUB: the replay_install.img file is usable, although it has an empty syslinux.cfg file that is not used. Network: the replay_install.img file is usable, but the syslinux.cfg file it contains does not have any of the network information that it should. The replay_install_drivers.img file is usable, but it has an empty syslinux.cfg file. You can use these images, but you might want to correct them, before using, to ensure nothing odd occurs. Or you can use the procedures in Scratch Built Auto Install Diskette to to create your own.
|
|
You may also find that the floppy disk(s) that you generated during the manual install exhibit similar problems. |
|
|
|
|
These ones are specific to the Final Release.
|
|
|
|
These ones are here because cooker is where it all starts. Unfortunately, these issues are only valid at the time this document is released, and they may already be resolved by the time you read this.
1. |
Services missing from the auto_inst.cfg file. (Community Release) |
|
To get the 'services' => ... included in the generated configuration file (on floppy, in the images, or /root/drakx/auto_inst.cfg.pl), you have to click on the Configure button associated with Configure Services on the Summary screen during the initial GUI installation. Alternately, you can look in the directory /etc/rc.d/rc5.d and create the entry by examining the files listed with “S??<name of service>” where <name of service> also appears in the /etc/rc.d/init.d directory. |
2. |
Generated Replay / Automated Floppy have error. (Cooker after the Community Release) |
|
If you are using the
Grub Hard Disk method to auto install, you will find that the
generated floppy and the It contains: kernel /cooker/isolinux/alt0/vmlinuz ramdisk_size=128000 root=/dev/ram3 acpi=ht vga=788 automatic=method:disk kickstart=floppy automatic=met:disk,dis:hde,par:hde7,dir:/cooker,
and should be: kernel /cooker/isolinux/alt0/vmlinuz ramdisk_size=128000 root=/dev/ram3 acpi=ht vga=788 kickstart=floppy automatic=met:disk,dis:hde,par:hde7,dir:/cooker,
|
Version 1.1, March 2000
Copyright (C) 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you".
A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
A. |
Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. |
B. |
List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five). |
C. |
State on the Title page the name of the publisher of the Modified Version, as the publisher. |
D. |
Preserve all the copyright notices of the Document. |
E. |
Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. |
F. |
Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. |
G. |
Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. |
H. |
Include an unaltered copy of this License. |
I. |
Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. |
J. |
Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. |
K. |
In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. |
L. |
Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. |
M. |
Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version. |
N. |
Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section. |
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements."
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.