home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2000 May
/
Chip_2000-05_cd2.bin
/
docu
/
ascii
/
suselxen
/
slxen-16.txt
< prev
next >
Wrap
Text File
|
2000-03-11
|
41KB
|
967 lines
Chapter 16
Special Features of SuSE Linux
16.1 Filesystem Hierarchy Standard (FHS) and Linux
Standard Base (LSB)
SuSE Linux strives as far as possible to conform to the filesystem-standard
(FSSTD) and to its successor, the Filesystem Hierarchy Standard (FHS, pack-
age fhs, series doc; see also http://www.pathname.com/fhs/).
For this reason it is sometimes necessary to move files or directories to their
"correct" places in the filesystem.
SuSE supports the Linux Standard Base project; current information on this
can be found at: http://www.linuxbase.org.
16.1.1 Example Environments for FTP and HTTP
For FTP
To make it easier to set up an FTP server, the package ftpdir package
includes an example environment. This is installed in /usr/local/ftp.
For HTTP
Apache is the standard web server in SuSE Linux; together with the instal-
lation of Apache some example documents are made available in /usr/
local/httpd. If you want to set up your own web server, it is rec-
ommended that you enter your own DocumentRoot in /etc/httpd/
httpd.conf.
16.1.2 teTeX ¡ TEX in SuSE Linux
teTeX is put together according to the TEX Directory Structure (TDS) (see
ftp://ftp.dante.de/tex-archive/tds/), without compromis-
ing the FHS.
16.2 Booting with the "initial ramdisk"
Describing the Problem
As soon as the Linux kernel has been booted and the root filesystem (/)
mounted, programs can be run and further kernel modules can be integrated,
providing additional functions.
377
16. Special Features of SuSE Linux
But to be able to mount the root filesystem in the first place, certain conditions
must be met. The kernel needs the corresponding drivers to be able to access
the device on which the root filesystem is located (especially SCSI drivers).
The kernel must also contain the code which is needed in order to be able to
read the filesystem(ext2, reiserfs, romfs etc.). It is also conceivable
that the root filesystem is already encrypted; in this case a password is needed
to mount the filesystem.
If you just take a look at the problem of SCSI drivers, then a number of dif-
ferent solutions are possible: the kernel could contain all imaginable drivers.
This might be a problem, because different drivers could conflict with each
other; also the kernel will become very large because of this. Another possi-
bility is to provide different kernels, each of one containing just one or a few
SCSI drivers. This method also has the problem that a large number of differ-
ent kernels are required. A problem which is then increased by the differently
optimized kernels (Pentium optimization, SMP).
The idea of loading the SCSI driver as a module leads to the general question
which is answered by the concept of an initial ramdisk: creating a way of
being able to perform userspace-programs even before the root filesystem is
mounted.
16.2.1 Concept of the Initial Ramdisk
The initial ramdisk (also called "initdisk" or "initrd") solves precisely the
problems described above. The Linux kernel provides an option of having
a small filesystem loaded to a RAM disk and running programs there before
the actual root filesystem is mounted. The loading of initrd taken over by
the boot loader (LILO, loadlin etc.); all these boot loaders only need BIOS
routines to load data from the boot medium. If the boot loader is able to load
the kernel, then it can also load the initial ramdisk. Special drivers are thus
not required.
16.2.2 The Order of the Booting Process with initrd
The bootloader loads the kernel and the initrd to memory and starts the
kernel, whereby the boot loader informs the kernel that an initrd exists
and where it is located in memory.
If the initrd was compressed (which is typically the case), then the kernel
de-compresses the initrd and mounts it as a temporary root filesystem. A
program called linuxrc is started on this in the initrd. This program can
now do all the things necessary to be able to mount the proper root filesys-
tem. As soon as linuxrc finishes, the (temporary) initrd is unmounted and
the boot process continues as normal, with the mounting of the proper root
filesystem. Mounting the initrd and running linuxrc can thus be seen as a
short interlude during a normal boot process.
If the initrd cannot be unmounted (which is normally to be regarded as
an error) then the kernel will try and re-mount initrd to the directory
/initrd. If the mount point /initrd does not exist, an error message will
be displayed. In such a case the system is fully functional, but the memory
occupied by initrd cannot be released at all, and is thus no longer available.
378
16.2. Booting with the "initial ramdisk"
linuxrc
These are the only requirements for the program linuxrc in the initrd;
it must have the special name linuxrc and it must be located in the root
directory of the initrd. Apart from this, it only needs to be executable by
the kernel. This means that linuxrc may be dynamically linked; in this case,
the "shared libraries" in /lib must be completely available in initrd.
linuxrc can also be a shell script. For this to work, a Shell must exist
in /bin. In short, initrd must contain a minimal Linux system, which
allows the program linuxrc to be carried out. When SuSE Linux is installed
a statically linked linuxrc is used, to be able to keep initrd as small as
possible (space on boot disks is very limited). linuxrc is carried out with
`root' permissions.
The Real Root Filesystem
As soon as linuxrc terminates, initrd is unmounted and discarded, the
boot process carries on as normal and the kernel mounts the real filesys-
tem. What is to be mounted as the root filesystem can be influenced by
linuxrc. It just needs to mount the /proc filesystem and write the value
of the real root filesystem in numerical form to /proc/sys/kernel/
real-root-dev.
16.2.3 Boot Loaders
Most boot loaders (above all, LILO, loadlin and syslinux) can handle
initrd. Individual boot loaders are given instructions on how to use
initrd as follows:
1. LILO
Enter the following line in /etc/lilo.conf:
initrd=/boot/initdisk.gz
The file /boot/initdisk.gz is the initial ramdisk. It can, (but
doesn't have to be) compressed.
2. loadlin.exe
call up with:
C:> loadlin <kernelimage> initrd=C:\loadlin\initdisk.gz <parameter>
3. syslinux
Enter the following line in syslinux.cfg:
append initrd=initdisk.gz <further parameters>
379
16. Special Features of SuSE Linux
16.2.4 Using initrd in SuSE
Installing the System
The initrd has already been used some time for the installation: here
the user can load modules in linuxrc and make the entries necessary for an
installation (above all, for the source medium). Linuxrc then starts YaST,
which carries out the installation. When YaST has finished, it tells linuxrc
where the root filesystem of the freshly installed system is located. linuxrc
writes this value to /proc, terminates, and the kernel continues booting into
the newly installed system.
For an installation of SuSE Linux you are thus, from the very beginning,
booting the system which is just being installed ¡ somehow, quite clever. A
real re-boot after installation only takes place if the kernel does not match with
the modules which were installed in the system. Since SuSE Linux only uses
a kernel for uni-processor systems, this will only happen if an SMP kernel
was installed in the system with the corresponding modules. For this reason,
an SMP kernel newly installed in the system must be re-booted, in order for
it to be able to use all modules.
Booting the Installed System
In the past YaST has provided more than 40 kernels for installing in the
system, whereby the only basic difference in the kernels was that each of them
contained a specific SCSI driver. This was necessary to be able to mount the
root filesystem after booting. Further drivers could then be loaded afterwards
as modules.
But because optimized kernels are now available, this concept is no longer
feasible ¡ by now, over 100 kernel-images were needed.
This is why an initrd is used now, even to start the system normally. The
way it is used is similar to that for an installation. The linuxrc used here,
however, is simply a shell script which just has the task of loading a given
module. Typically, this is just one single module, namely the very SCSI driver
which is needed to access the root filesystem.
Creating an initrd
An initrd is created by means of the script mk initrd. In SuSE Linux,
the modules to be loaded are specified by the variable INITRD MODULES
in /etc/rc.config. After installation this variable is automatically oc-
cupied by the correct values (the installation linuxrc knows which modules
were loaded). Here it should be mentioned that the modules were loaded in
exactly the same order in which they appear in INITRD MODULES. This is
especially important if a number of SCSI drivers are used, since otherwise the
names of the hard drives would change. Strictly speaking, it would be suffi-
cient just to load those drivers needed to access the root filesystem, because
the automatic loading of additional SCSI drivers may cause problems (how
should it be "triggered", if hard drives hang on the second SCSI adapter), we
load all SCSI drivers needed at the installation, by means of initrd.
380
16.2. Booting with the "initial ramdisk"
The current mk initrd checks if a SCSI driver is needed for the root filesys-
tem. If you run mk initrd on a system where / is to be found on EIDE
hard drives, an initrd is not needed, as the kernel used for SuSE Linux
already contains the EIDE driver. As there are more and more special EIDE
controllers coming onto the market, in the future it will probably be necessary
in such cases to use an initrd to boot the installed system.
Attention: because the loading of the initrd with the boot loader runs in
just the same way as loading the kernel itself (LILO notices in its map file
the location of the files), LILO must be re-installed after every change in
initrd! Thus after every mk initrd, a lilo is also necessary!
16.2.5 Possible Difficulties ¡ Self-Compiled Kernels
If you compile the kernel yourself, this can often lead to the following prob-
lems: out of habit the SCSI driver is hard-linked to the kernel, but the existing
initrd remains unchanged. When you boot, the following occurs: the ker-
nel already contains the SCSI driver, the hardware is detected. initrd how-
ever now tries to load the driver again as a module; with some SCSI drivers
(especially with the aic7xxx), this leads to the system blocking. Strictly
speaking, this is a kernel error (an already existing driver should not be al-
lowed to be loaded again as a module). ¡ The problem is already known from
another context, however (serial drivers).
There are several solutions to the problem; either configure the driver as a
module (then it will be correctly loaded in the initrd), or remove the
entry for initrd from the file /etc/lilo.conf. An equivalent to the
latter solution is to remove the variable INITRD MODULES and then run
mk initrd, which then realises that no initrd is needed.
16.2.6 Prospects
It is quite possible in the future that an initrd will be used for many more,
and much more sophisticated things than loading modules needed for access
to /.
* "High end" EIDE drivers
* Root file system on RAID software (linuxrc sets up the md devices)
* Root filesystem on the LVM
* Root filesystem is encrypted (linuxrc asks for the password)
* Root filesystem on a SCSI hard drive on a PCMCIA adapter.
Further Information
/usr/src/linux/Documentation/ramdisk.txt
/usr/src/linux/Documentation/initrd.txt
manpage for initrd (man 4 initrd).
381
16. Special Features of SuSE Linux
16.3 linuxrc
linuxrc is started during the boot up of the kernel, usually as a prelude to a
Linux system installation, before the "real" booting commences (the kernel
must first be properly configured, of course). This allows you to boot a small,
modularized kernel and to load the few drivers you may need as modules,
onto one floppy disk ¡ in an emergency even from a second disk (modules).
linuxrc is your assistant for loading all relevant hardware drivers. You can
also use linuxrc as a boot disk for an already installed system, for example,
as a rescue disk. You can even start a totally independent RAM disk based
rescue system, for example, if something serious should happen to your hard
disk or you have simply forgotten your `root' password. More about this
below, in Section 16.5 page 389.
Main Menu
After you have selected the language, screen and keyboard, you find yourself
in linuxrc's main menu (see Figure 2.3 page 26).
Start an installation with `Start installation / system'. Whether
you can go there directly depends mainly on your hardware.
If all components that are needed for installation have already been recog-
nized by the kernel, you do not need to load additional drivers. This mainly
applies to machines that only have (E)IDE adapters (and only (E)IDE hard
disks and CD-ROM as well).
If there is a SCSI adapter installed which is necessary for installation,1 you
have to load the corresponding SCSI module. The same applies if you want to
install via an existing network. Here, the appropriate module has to be loaded
first.
Furthermore, there are a lot of older CD-ROMs that are driven by proprietary
controllers and which, therefore, need their own kernel modules. If PCMCIA
devices are connected to a laptop, you need these modules as well.
System Information
IN `System information' (Figure 16.1 on the facing page) you can
check a number of other things, apart from kernel messages, such as the I/O-
addresses of PCI cards or the size of the main memory recognized by Linux.
......If you are not sure about your hardware, the boot messages might help
you.
You can check some system information in `System information'.
Here, you can check the used interrupts, I/O ports used, main memory and
recognized PCI devices as detected by Linux.
The next lines show how a hard disk and a CD-ROM connected to an (E)IDE
controller announce their start. In this case, you do not need to load additional
modules:
1 An adapter with only a scanner connected to it is not required at boot time.
382
16.3. linuxrc
Figure 16.1: System information
hda: ST32140A, 2015MB w/128kB Cache, LBA, CHS=1023/64/63
hdb: CD-ROM CDR-S1G, ATAPI CD-ROM drive
Partition check:
hda: hda1 hda2 hda3 < hda5 >
If you booted a kernel that already has a SCSI driver compiled in, you do
not need this SCSI driver as a module as well. Quite typical announcements
when loading SCSI adapters and connected devices might look like this:
scsi : 1 host.
Started kswapd v 1.4.2.2
scsi0 : target 0 accepting period 100ns offset 8 10.00MHz FAST SCSI-II
scsi0 : setting target 0 to period 100ns offset 8 10.00MHz FAST SCSI-II
Vendor: QUANTUM Model: VP32210 Rev: 81H8
Type: Direct-Access ANSI SCSI revision: 02
Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
scsi0 : target 2 accepting period 236ns offset 8 4.23MHz synchronous SCSI
scsi0 : setting target 2 to period 248ns offset 8 4.03MHz synchronous SCSI
Vendor: TOSHIBA Model: CD-ROM XM-3401TA Rev: 0283
Type: CD-ROM ANSI SCSI revision: 02
scsi : detected 1 SCSI disk total.
SCSI device sda: hdwr sector= 512 bytes. Sectors= 4308352 [2103 MB] [2.1 GB]
Partition check:
sda: sda1 sda2 sda3 sda4 < sda5 sda6 sda7 sda8 >
Loading Modules
You select which kinds of modules you need. If you booted via disk, the
corresponding data has to be read by linuxrc and displayed in a list.
If you have booted from CD or from DOS (via loadlin), these modules are
already set in linuxrc. This saves tedious loading, but it needs additional
memory. If your machine has less than 8 MB of RAM, you have to boot from
disk.
linuxrc offers you a list of available drivers. On the left, there is the name of
the module and, on the right, a short description of its usage.
383
16. Special Features of SuSE Linux
Figure 16.2: Load modules
For some components, there are a variety of drivers to choose from (even
newer alpha-code drivers).
Figure 16.3: Selection of SCSI drivers
Passing on Parameters
When you have found a suitable driver, move to it with the cursor and press
. Now there is a dialog box where you can add additional parameters
for this module. More on module parameters can be found in Section 14.3.4
page 339.
We would like to point out that, in contrast to the LILO prompt, parameters
for the same module have to be separated by blanks.
384
16.3. linuxrc
Figure 16.4: Entering parameters for a module to be loaded
In most cases, it is not necessary to specify the hardware in detail. Most
drivers find their components automatically. Most network cards and propri-
etary CD-ROM drives, however, need parameters. If in doubt, just try
.
Recognizing and initializing certain hardware can take some time. Switching
to virtual console #4 ( Alt + F4
) lets you watch the kernel messages while
loading. SCSI drivers need a while, as they have to wait for each device to
load.
If loading succeeded, the messages are displayed by linuxrc so you can verify
that everything ran smoothly. Otherwise, if it fails, the messages might give
you a hint as to why it failed.
Start Installation / System
Once you have set up hardware support via modules, you can switch to the
`Start installation / system' menu.
From here (Figure 16.5 on the following page) a number of procedures
can be started: `Start installation' (from this item an update is
also started), `Boot installed system' (the root partition must be
known), `Start rescue system' (refer to Section 16.5 page 389) und
`Start Live-CD'2
The item `Start live-CD' can be of great use if, for example, you
want to test, without actually installing to the hard drive, if the computer in
question, or the Notebook you might want to buy, is at all compatible with
SuSE Linux ¡ such a test ought to be possible in every modern PC shop,
without any trouble!!
2 This live CD ("Live filesystem") is only available for x86 architectures and must be bought
separately).
385
16. Special Features of SuSE Linux
Figure 16.5: the linuxrc `Start' menu
Figure 16.6: Selection of source media in linuxrc
For the installation (Figure 16.6) you can choose various sources for the
installation, and similarly for the rescue system (see Figure 16.6).
16.4 The SuSE Linux Help System
The help system is component-oriented, and can be viewed using any browser
(see Figure 1.1 page 6, or Figure 16.7 on the next page) ¡ even across a
network, if you wish.
The central component of the help system is located in the package suse-
hilf, series doc (Documentation). Depending on your requirements, you
may additionally install the following packages (for help on installation, see
Section 3.4.3 page 84). The critical parts are always installed along with the
standard installation, so don't panic;-)
386
16.4. The SuSE Linux Help System
Figure 16.7: Homepage of the help system (lynx)
package apache, series n: Apache, the local WWW server.
package sdb, series doc: Basic search functionality for the SDB.
package sdb de, series doc: The articles of the Support Database (SDB),
in German.
package susepak, series doc: For studying package descriptions. . .
package howtodeh, series doc: Howto documents, German.
package howtoenh, series doc: Howto documents, English Version (gen-
erally more up to date than the translations).
package ldp, series doc: Books, FAQs, etc. of the Linux Documentation
Project (LDP) in HTML.
package rman, series ap: Contains http-rman.
package inf2htm, series doc: This is for reading Texinfo documents (see
Section 1.4.3 page 5) with your web browser. The documents are con-
verted "on-the-fly".
package dochost, series n: A centralized document server. Please read
/usr/doc/packages/dochost/README.SuSE!
package htdig, series n: Creates an index for every WWW document
found on the local host or in the local network. Turns your host into a
mini web crawler.
The package dochost and the package htdig are not necessarily needed,
but they enhance the functionality of working with the help system.
16.4.1 Standalone and Server Configuration
In /etc/rc.config you should set the variables for a standalone machine
as listed in File contents 16.4.1 on the following page (preferably with YaST,
as explained in Section 3.6.11 page 101 and especially in page 406). This
implies that your machine is named helios.cosmos.com, otherwise you
will have to enter the name you assigned.
387
16. Special Features of SuSE Linux
START_INETD="yes"
START_HTTPD="yes"
DOC_SERVER="yes"
DOC_HOST="helios.cosmos.com"
DOC_ALLOW="LOCAL .cosmos.com"
File contents 16.4.1: /etc/rc.config for standalone and server systems
Please make sure that the HTTP server (apache) is started at boot up. The
web server is activated via START HTTPD (value: yes).
DOC SERVER assigns whether this host serves as document server. This
has to be set to yes if you want to access the documents on a standalone
machine. DOC HOST sets the name of the document server (in this example:
helios.cosmos.com). DOC ALLOW is for security reasons. Here you
may set hosts that are allowed to view the manpages. If you want to allow a
whole domain do not forget the `.' in front!
Please be aware that you need to run SuSEconfig after changing the
variables. If you make changes with YaST, SuSEconfig is launched
automatically.
Full-text search is available as soon as the indices for ht://Dig (package ht-
dig) have been created. At the moment these are approximately 70 MB in
size. There should be at least 200 MB of free space below /opt/www/
htdig. The program is initialized by entering:
earth: # suserundig
/usr/sbin/suserundig parses /opt/www/htdig/conf/susedig.
conf and creates index files. If you update the HTML documents you need
to re-run /usr/sbin/suserundig.
16.4.2 Client Configuration
You might not want to install all the help system on every machine in your
local network. On the client you just need to install the base package do-
chost, series n and set the variables in /etc/rc.config as listed in File
contents 16.4.2.
DOC_SERVER="no"
DOC_HOST="helios.cosmos.com"
DOC_ALLOW=""
File contents 16.4.2: /etc/rc.config for a client
This obviously only works if the documentation is installed on
helios.cosmos.com.
388
16.5. The SuSE Rescue System
16.4.3 Using the Help System
If the help system was installed as described above you can invoke it by typing
susehelp. You can also enter the following URL directly into your WWW
browser: http://localhost/doc/susehilf/index.html or
http://sonne.kosmos.all/doc/susehilf/index.html; he-
lios.cosmos.com will only work, of course, if your computer or the
document server has this name.
16.5 The SuSE Rescue System
Overview
SuSE Linux contains ¡ independent of the installation system ¡ a standalone
Linux-rescue system3 with which you can, in emergencies, reach all your
Linux partitions on the hard drives again "from the outside". The rescue sys-
tem consists of a careful selection of help programs,providing you with suffi-
cient tools to be able to remedy a large variety of problems with inaccessible
hard drives, misconfigured configuration files, etc.
The rescue system consists of a boot disk or a bootable CD and a "rescue" sys-
tem, which in SuSE Linux can be loaded from quite different media (floppy
disks, CD, from the network, even directly from the SuSE-FTP server).
Since you can re-create the boot disk at any time from the appropriate image
file on the CD, in /disks, this forms quite a secure fallback. Apart from the
boot disk, at the minimum only the file /disks/rescue is needed form
the CD, which contains the compressed image of a small root file system. If
you write this file with the Linux commands
earth: # /sbin/badblocks -v /dev/fd0 1440
earth: # dd if=/cdrom/disks/rescue of=/dev/fd0 bs=18k
or using the DOS command (assuming Q: is your CD-ROM in DOS):
Q:\dosutils> rawrite.exe
onto a second error-free "rescue-disk", you can also load the rescue system
from the boot disk and from this rescue disk; the rescue disk can also be
created with YaST (see Section 3.6.2 page 93). The rescue disk is currently
based on libc5; only in this way is it possible to store certain programs on the
floppy disk (an Editor, fdisk, e2fsck etc.) ¡ the glibc would be too large to
fit.
....Please bear in mind that you cannot mount the rescue disk by itself, because
it does not contain a filesystem, but a compressed image (the uncompressed
image would take up to 3.5 MB space, too large to fit on a floppy disk). If you
want to look at the rescue disk image, you have to decompress it in advance
and then mount it (your username must be `root'). Provided that your
Linux kernel supports the loop device, you can enter:
earth: # cp /cdrom/disks/rescue /root/rescue.gz
earth: # gunzip /root/rescue.gz
earth: # mount -t ext2 -o loop /root/rescue /mnt
3 to be precise, there are now two of these (more on this below) ¡ or even three, if you are
inclined to also regard the startable "live filesystem" as a rescue system; this Live-Filesystem
can be bought separately, at a small price
389
16. Special Features of SuSE Linux
Now you can have a look at the contents of the rescue disk in /mnt.
Always have some extra boot disks at hand! Creating such a disk does
not take long-much less time than searching for a disk in an emergency.
In such an emergency, you can be sure that your CD-ROM will not work
either (Murphy's law...)!
Launching the Rescue System
The rescue system, like a normal installation, is launched using the SuSE
boot disk or from the bootable CD 1. The individual steps:
1. Requirements: The floppy drive or CD-ROM must be bootable (if not,
you must run CMOS setup to modify the settings).
2. Launch the system with the SuSE boot disk or with CD 1. At the boot
prompt either enter yast1 or manual; for manual you have the option
of loading the necessary kernel modules independently.
3. Enter the language, keyboard, etc., as in the installation with linuxrc, until
you get to the main menu.
4. Now select `Installation/Start system'.
5. Insert the CD or the disk containing the compressed image of the rescue
system.
6. In the main menu select `Start installation / system'.
7. If you started with the boot disk, you should now insert the installation-
CD or the rescue disk with the compressed image of the rescue system.
Figure 16.8: Source media in linuxrc
8. In the menu `Start installation/system' select the item
`Start rescue system' (see Figure 16.5 page 386) and then
specify the desired source medium (Figure 16.8):
`CD-ROM': this is the "normal way". linuxrc will load a convenient
system (.../suse/images/rescue). In order to to do this, the
390
16.5. The SuSE Rescue System
computer must have at least 16 MB RAM (memory), 24 MB would
be preferable. ¡ the directory /cdrom is exported at the same time,
by the way; thus it is also possible to start the rescue system easily
and then to perform a network installation from this CD (you should
provide /etc/rc.config with the necessary values and then run
SuSEconfig; see Section 17.5 page 399 pp.).
`Network (NFS)': obtain the rescue system via NFS from the
network; for this, of course, you have to have the driver for your net-
work card already installed; refer also to the general hints in Sec-
tion 2.4.2 page 43.
`Network (FTP)': obtaining the rescue system via FTP from the
network; don't forget the network card driver!
`Hard drive': load the rescue system from the hard drive.
`Floppy Disk': Start the rescue system from the floppy disk, as
described above; this variation also works even if the computer only
has a small amount of RAM.
The rescue system is now decompressed, loaded onto a RAM floppy disk as
a new root filesystem, mounted and started. Now it is ready for use.
Working with the Rescue System
The rescue system provides three virtual consoles on keys Alt + F1 to Alt
+ F3
. Here `root' may log in without a password. Alt + F4 brings you
to the system console where you can view the kernel and syslog messages.
A shell and lots of other useful utilities (net tools) can be found in /bin. In
sbin you can find e2fsck which is very useful for checking and repairing
filesystems.
In sbin, there are some important binaries for system maintenance, such as
fdisk, mkfs, mkswap, mount, mount, init, shutdown, as well as ifconfig,
route, and netstat for maintaining the network.
An editor, vi, is located in /usr/bin. Also, tools like (grep, find, less, etc.)
and, most important of all, telnet, are available.
/mnt/usr/bin.
Example: Accessing Your Normal System
To mount a Linux system using the rescue system, you should use the mount
point /mnt. You can, of course, also use or create another directory.
As an example, let's assume that your normal system is put together according
to the /etc/fstab shown in the example file 16.5.1 on the next page.
Consider the following example: Assuming your system is configured ac-
cording to the /etc/fstab given in File contents 16.5.1 on the following
page, then you may mount it step by step to /mnt. Just execute the following
commands in order:
earth:/ # mount /dev/sdb3 /mnt
earth:/ # mount /dev/sdb6 /mnt/usr
391
16. Special Features of SuSE Linux
/dev/sdb5 swap swap defaults 0 0
/dev/sdb3 / ext2 defaults 1 1
/dev/sdb6 /usr ext2 defaults 1 2
File contents 16.5.1: Example /etc/fstab for system recovery
Now you can access your entire system and, e. g., correct mistakes in config-
uration files such as /etc/fstab, /etc/passwd, and /etc/inittab.
These files will now be located in /mnt/etc, of course, instead of /etc!
Every experienced Linux user will print out a hardcopy of the file /etc/
fstab and save the output of the command
earth: # fdisk -l /dev/<disk>
"in a safe place"; instead of <disk> you should insert, in order, the device
names of your hard drives, e.g. hda (see the list in Section D.1 page 469).
Even completely lost partitions can often be retrieved with the Linux fdisk,
simply by re-creating the partition, if you know exactly where the partitions
were located on the hard drive previously.
Example: Repairing Filesystems
Damaged filesystems are tricky problems for the rescue system. This could
happen after an unscheduled shutdown caused by power failure or a system
crash. Generally, filesystems cannot be repaired on a running system. If you
encounter really severe problems, you may not even be able to mount your
root filesystem and have the system boot end up in a "kernel panic".
Here, the only chance is to repair the system from the "outside" using a rescue
system.
The SuSE Linux rrescue system contains the utilities e2fsck and, for problem
diagnosis, dumpe2fs. These should cover most problems. In an emergency,
there normally are no manpages available. That is why we have included
them in this manual in Appendix E page 475.
Example:
If mounting a filesystem fails due to an invalid superblock, then e2fsck would
most probably fail too. If this were the case, your superblock may be cor-
rupted too. There are copies of the superblock located every 8192 blocks
(8193, 16385, . . . ). If your superblock got corrupted, you can try one of the
copies instead. This is accomplished by entering the command:
earth: # e2fsck -f -b 8193 /dev/damaged partition
The -f option forces the filesystem check and overrides e2fsck's error so that
¡ since the superblock copy is intact ¡ everything is fine.
16.6 Hints on Special Software Packages
16.6.1 package cron
The cron tables are now located in /var/cron/tabs (and not, as pre-
viously, in /var/lib/cron). /etc/crontab serves as a system wide
392
16.7. Keyboard Layout
cron table. You need to enter the name of the user who should run the com-
mand directly after the timetable (see File contents 16.6.1, here `root' is
entered); package-specific tables, located in /etc/cron.d have the same
format ¡ see manpage for cron (man 8 cron).
1-59/5 * * * * root test -x /usr/sbin/atrun && /usr/sbin/atrun
File contents 16.6.1: Example of an entry in /etc/crontab
/etc/crontab can not be processed with crontab -e but must be
loaded directly into an editor, modified, and then saved.
A number of packages install shell scripts to the directories /etc/cron.
hourly, /etc/cron.daily, /etc/cron.weekly and /etc/
cron.monthly, whose instructions are controlled by /usr/lib/cron/
run-crons. /usr/lib/cron/run-crons is run every 15 minutes
from the main table (/etc/contrab); this guarantees that processes which
may possibly have been neglected can be .... re-done in time ..... rechtzeitig
nachgeholt werden. You should not be surprised if, shortly after booting
the user `nobody' turns up in the process tables and is highly active; this
probably means that `nobody' is just updating the locate database (see
Section 17.6 page 409).
16.6.2 package curses
On the CD you will find the package ncurses. The corresponding libraries
are named libncurses.so.<xx>. This means that some Makefiles have
to be adapted to link ncurses. Packages of your own should be linked with
the command -lncurses, and never with -lcurses. For those who want
to use curses anyway, try:
-I/usr/include/termcap -I/usr/include/curses
-L/usr/lib/termcap -L/usr/lib/curses
16.6.3 Manpages
For some GNU applications (e. g., tar) the manpages are no longer main-
tained. They have been replaced by info files. Info (info) is GNU's hyper-
text system. Typing info info gives you a starting help in using info.
info can be launched via emacs -f info or on its own: info. The
programs tkinfo and xinfo are easy to use, or you can access the help
system: 16.4 page 386.
16.7 Keyboard Layout
In order to standardize the keyboard mapping of programs, changes were
made to the following files:
393
16. Special Features of SuSE Linux
/usr/lib/X11/Xmodmap
/etc/inputrc
/etc/skel/.exrc
/etc/skel/.less
/etc/skel/.lesskey
/etc/csh.cshrc
/etc/termcap
/usr/lib/terminfo/x/xterm
/usr/lib/X11/app-defaults/XTerm
/usr/share/emacs/20.5/site-lisp/term/*.el
/usr/lib/joerc
These changes only affect applications that make use of terminfo entries
or whose configuration files are changed directly (vi, less, etc.). Other,
non-SuSE applications should be adjusted to these defaults.
394