home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd2.bin / docu / ascii / suselxen / slxen-16.txt < prev    next >
Text File  |  2000-03-11  |  41KB  |  967 lines

  1.                                                                          Chapter 16
  2.             Special Features of SuSE Linux
  3.  
  4. 16.1 Filesystem Hierarchy Standard (FHS) and Linux
  5.         Standard Base (LSB)
  6. SuSE Linux strives as far as possible to conform to the filesystem-standard
  7. (FSSTD) and to its successor, the Filesystem Hierarchy Standard (FHS, pack-
  8. age fhs, series doc; see also http://www.pathname.com/fhs/).
  9. For this reason it is sometimes necessary to move files or directories to their
  10. "correct" places in the filesystem.
  11. SuSE supports the Linux Standard Base project; current information on this
  12. can be found at: http://www.linuxbase.org.
  13.  
  14. 16.1.1 Example Environments for FTP and HTTP
  15.  
  16. For FTP
  17. To make it easier to set up an FTP server, the package ftpdir package
  18. includes an example environment. This is installed in /usr/local/ftp.
  19.  
  20. For HTTP
  21. Apache is the standard web server in SuSE Linux; together with the instal-
  22. lation of Apache some example documents are made available in /usr/
  23. local/httpd. If you want to set up your own web server, it is rec-
  24. ommended that you enter your own DocumentRoot in /etc/httpd/
  25. httpd.conf.
  26.  
  27. 16.1.2 teTeX ¡ TEX in SuSE Linux
  28. teTeX is put together according to the TEX Directory Structure (TDS) (see
  29. ftp://ftp.dante.de/tex-archive/tds/), without compromis-
  30. ing the FHS.
  31.  
  32. 16.2 Booting with the "initial ramdisk"
  33.  
  34. Describing the Problem
  35. As soon as the Linux kernel has been booted and the root filesystem (/)
  36. mounted, programs can be run and further kernel modules can be integrated,
  37. providing additional functions.
  38.  
  39.                                                                                    377
  40.  
  41.  
  42.  
  43. 16. Special Features of SuSE Linux
  44.  
  45.                 But to be able to mount the root filesystem in the first place, certain conditions
  46.                 must be met. The kernel needs the corresponding drivers to be able to access
  47.                 the device on which the root filesystem is located (especially SCSI drivers).
  48.                 The kernel must also contain the code which is needed in order to be able to
  49.                 read the filesystem(ext2, reiserfs, romfs etc.). It is also conceivable
  50.                 that the root filesystem is already encrypted; in this case a password is needed
  51.                 to mount the filesystem.
  52.                 If you just take a look at the problem of SCSI drivers, then a number of dif-
  53.                 ferent solutions are possible: the kernel could contain all imaginable drivers.
  54.                 This might be a problem, because different drivers could conflict with each
  55.                 other; also the kernel will become very large because of this. Another possi-
  56.                 bility is to provide different kernels, each of one containing just one or a few
  57.                 SCSI drivers. This method also has the problem that a large number of differ-
  58.                 ent kernels are required. A problem which is then increased by the differently
  59.                 optimized kernels (Pentium optimization, SMP).
  60.                 The idea of loading the SCSI driver as a module leads to the general question
  61.                 which is answered by the concept of an initial ramdisk: creating a way of
  62.                 being able to perform userspace-programs even before the root filesystem is
  63.                 mounted.
  64.  
  65.                 16.2.1 Concept of the Initial Ramdisk
  66.                 The initial ramdisk (also called "initdisk" or "initrd") solves precisely the
  67.                 problems described above. The Linux kernel provides an option of having
  68.                 a small filesystem loaded to a RAM disk and running programs there before
  69.                 the actual root filesystem is mounted. The loading of initrd taken over by
  70.                 the boot loader (LILO, loadlin etc.); all these boot loaders only need BIOS
  71.                 routines to load data from the boot medium. If the boot loader is able to load
  72.                 the kernel, then it can also load the initial ramdisk. Special drivers are thus
  73.                 not required.
  74.  
  75.                 16.2.2 The Order of the Booting Process with initrd
  76.                 The bootloader loads the kernel and the initrd to memory and starts the
  77.                 kernel, whereby the boot loader informs the kernel that an initrd exists
  78.                 and where it is located in memory.
  79.                 If the initrd was compressed (which is typically the case), then the kernel
  80.                 de-compresses the initrd and mounts it as a temporary root filesystem. A
  81.                 program called linuxrc is started on this in the initrd. This program can
  82.                 now do all the things necessary to be able to mount the proper root filesys-
  83.                 tem. As soon as linuxrc finishes, the (temporary) initrd is unmounted and
  84.                 the boot process continues as normal, with the mounting of the proper root
  85.                 filesystem. Mounting the initrd and running linuxrc can thus be seen as a
  86.                 short interlude during a normal boot process.
  87.                 If the initrd cannot be unmounted (which is normally to be regarded as
  88.                 an error) then the kernel will try and re-mount initrd to the directory
  89.                 /initrd. If the mount point /initrd does not exist, an error message will
  90.                 be displayed. In such a case the system is fully functional, but the memory
  91.                 occupied by initrd cannot be released at all, and is thus no longer available.
  92.  
  93. 378
  94.  
  95.  
  96.  
  97.                                                    16.2. Booting with the "initial ramdisk"
  98.  
  99. linuxrc
  100.  
  101. These are the only requirements for the program linuxrc in the initrd;
  102. it must have the special name linuxrc and it must be located in the root
  103. directory of the initrd. Apart from this, it only needs to be executable by
  104. the kernel. This means that linuxrc may be dynamically linked; in this case,
  105. the "shared libraries" in /lib must be completely available in initrd.
  106. linuxrc can also be a shell script. For this to work, a  Shell must exist
  107. in /bin. In short, initrd must contain a minimal Linux system, which
  108. allows the program linuxrc to be carried out. When SuSE Linux is installed
  109. a statically linked linuxrc is used, to be able to keep initrd as small as
  110. possible (space on boot disks is very limited). linuxrc is carried out with
  111. `root' permissions.
  112.  
  113. The Real Root Filesystem
  114.  
  115. As soon as linuxrc terminates, initrd is unmounted and discarded, the
  116. boot process carries on as normal and the kernel mounts the real filesys-
  117. tem. What is to be mounted as the root filesystem can be influenced by
  118. linuxrc. It just needs to mount the /proc filesystem and write the value
  119. of the real root filesystem in numerical form to /proc/sys/kernel/
  120. real-root-dev.
  121.  
  122. 16.2.3 Boot Loaders
  123.  
  124. Most boot loaders (above all, LILO, loadlin and syslinux) can handle
  125. initrd. Individual boot loaders are given instructions on how to use
  126. initrd as follows:
  127.  
  128. 1. LILO
  129.     Enter the following line in /etc/lilo.conf:
  130.  
  131.  
  132.   initrd=/boot/initdisk.gz
  133.  
  134.  
  135.  
  136.    The file /boot/initdisk.gz is the initial ramdisk. It can, (but
  137.    doesn't have to be) compressed.
  138. 2. loadlin.exe
  139.     call up with:
  140. C:> loadlin <kernelimage> initrd=C:\loadlin\initdisk.gz <parameter>
  141. 3. syslinux
  142.     Enter the following line in syslinux.cfg:
  143.  
  144.  
  145.   append initrd=initdisk.gz <further parameters>
  146.  
  147.  
  148.  
  149.  
  150.                                                                                        379
  151.  
  152.  
  153.  
  154. 16. Special Features of SuSE Linux
  155.  
  156.                 16.2.4 Using initrd in SuSE
  157.  
  158.                 Installing the System
  159.                 The initrd has already been used some time for the installation: here
  160.                 the user can load modules in linuxrc and make the entries necessary for an
  161.                 installation (above all, for the source medium). Linuxrc then starts YaST,
  162.                 which carries out the installation. When YaST has finished, it tells linuxrc
  163.                 where the root filesystem of the freshly installed system is located. linuxrc
  164.                 writes this value to /proc, terminates, and the kernel continues booting into
  165.                 the newly installed system.
  166.                 For an installation of SuSE Linux you are thus, from the very beginning,
  167.                 booting the system which is just being installed ¡ somehow, quite clever. A
  168.                 real re-boot after installation only takes place if the kernel does not match with
  169.                 the modules which were installed in the system. Since SuSE Linux only uses
  170.                 a kernel for uni-processor systems, this will only happen if an SMP kernel
  171.                 was installed in the system with the corresponding modules. For this reason,
  172.                 an SMP kernel newly installed in the system must be re-booted, in order for
  173.                 it to be able to use all modules.
  174.  
  175.                 Booting the Installed System
  176.                 In the past YaST has provided more than 40 kernels for installing in the
  177.                 system, whereby the only basic difference in the kernels was that each of them
  178.                 contained a specific SCSI driver. This was necessary to be able to mount the
  179.                 root filesystem after booting. Further drivers could then be loaded afterwards
  180.                 as modules.
  181.                 But because optimized kernels are now available, this concept is no longer
  182.                 feasible ¡ by now, over 100 kernel-images were needed.
  183.                 This is why an initrd is used now, even to start the system normally. The
  184.                 way it is used is similar to that for an installation. The linuxrc used here,
  185.                 however, is simply a shell script which just has the task of loading a given
  186.                 module. Typically, this is just one single module, namely the very SCSI driver
  187.                 which is needed to access the root filesystem.
  188.  
  189.                 Creating an initrd
  190.                 An initrd is created by means of the script mk initrd. In SuSE Linux,
  191.                 the modules to be loaded are specified by the variable INITRD MODULES
  192.                 in /etc/rc.config. After installation this variable is automatically oc-
  193.                 cupied by the correct values (the installation linuxrc knows which modules
  194.                 were loaded). Here it should be mentioned that the modules were loaded in
  195.                 exactly the same order in which they appear in INITRD MODULES. This is
  196.                 especially important if a number of SCSI drivers are used, since otherwise the
  197.                 names of the hard drives would change. Strictly speaking, it would be suffi-
  198.                 cient just to load those drivers needed to access the root filesystem, because
  199.                 the automatic loading of additional SCSI drivers may cause problems (how
  200.                 should it be "triggered", if hard drives hang on the second SCSI adapter), we
  201.                 load all SCSI drivers needed at the installation, by means of initrd.
  202.  
  203. 380
  204.  
  205.  
  206.  
  207.                                                        16.2. Booting with the "initial ramdisk"
  208.  
  209. The current mk initrd checks if a SCSI driver is needed for the root filesys-
  210. tem. If you run mk initrd on a system where / is to be found on EIDE
  211. hard drives, an initrd is not needed, as the kernel used for SuSE Linux
  212. already contains the EIDE driver. As there are more and more special EIDE
  213. controllers coming onto the market, in the future it will probably be necessary
  214. in such cases to use an initrd to boot the installed system.
  215. Attention: because the loading of the initrd with the boot loader runs in
  216. just the same way as loading the kernel itself (LILO notices in its map file
  217. the location of the files), LILO must be re-installed after every change in
  218. initrd! Thus after every mk initrd, a lilo is also necessary!
  219.  
  220.  
  221. 16.2.5 Possible Difficulties ¡ Self-Compiled Kernels
  222.  
  223. If you compile the kernel yourself, this can often lead to the following prob-
  224. lems: out of habit the SCSI driver is hard-linked to the kernel, but the existing
  225. initrd remains unchanged. When you boot, the following occurs: the ker-
  226. nel already contains the SCSI driver, the hardware is detected. initrd how-
  227. ever now tries to load the driver again as a module; with some SCSI drivers
  228. (especially with the aic7xxx), this leads to the system blocking. Strictly
  229. speaking, this is a kernel error (an already existing driver should not be al-
  230. lowed to be loaded again as a module). ¡ The problem is already known from
  231. another context, however (serial drivers).
  232. There are several solutions to the problem; either configure the driver as a
  233. module (then it will be correctly loaded in the initrd), or remove the
  234. entry for initrd from the file /etc/lilo.conf. An equivalent to the
  235. latter solution is to remove the variable INITRD MODULES and then run
  236. mk initrd, which then realises that no initrd is needed.
  237.  
  238.  
  239. 16.2.6 Prospects
  240.  
  241. It is quite possible in the future that an initrd will be used for many more,
  242. and much more sophisticated things than loading modules needed for access
  243. to /.
  244.  
  245.  * "High end" EIDE drivers
  246.  * Root file system on RAID software (linuxrc sets up the md devices)
  247.  * Root filesystem on the LVM
  248.  * Root filesystem is encrypted (linuxrc asks for the password)
  249.  * Root filesystem on a SCSI hard drive on a PCMCIA adapter.
  250.  
  251. Further Information
  252.  
  253. /usr/src/linux/Documentation/ramdisk.txt
  254. /usr/src/linux/Documentation/initrd.txt
  255. manpage for initrd (man 4 initrd).
  256.  
  257.                                                                                            381
  258.  
  259.  
  260.  
  261. 16. Special Features of SuSE Linux
  262.  
  263.                 16.3 linuxrc
  264.                 linuxrc is started during the boot up of the kernel, usually as a prelude to a
  265.                 Linux system installation, before the "real" booting commences (the kernel
  266.                 must first be properly configured, of course). This allows you to boot a small,
  267.                 modularized kernel and to load the few drivers you may need as modules,
  268.                 onto one floppy disk ¡ in an emergency even from a second disk (modules).
  269.                 linuxrc is your assistant for loading all relevant hardware drivers. You can
  270.                 also use linuxrc as a boot disk for an already installed system, for example,
  271.                 as a rescue disk. You can even start a totally independent RAM disk based
  272.                 rescue system, for example, if something serious should happen to your hard
  273.                 disk or you have simply forgotten your `root' password. More about this
  274.                 below, in Section 16.5 page 389.
  275.  
  276.                 Main Menu
  277.  
  278.                 After you have selected the language, screen and keyboard, you find yourself
  279.                 in linuxrc's main menu (see Figure 2.3 page 26).
  280.                 Start an installation with `Start installation / system'. Whether
  281.                 you can go there directly depends mainly on your hardware.
  282.                 If all components that are needed for installation have already been recog-
  283.                 nized by the kernel, you do not need to load additional drivers. This mainly
  284.                 applies to machines that only have (E)IDE adapters (and only (E)IDE hard
  285.                 disks and CD-ROM as well).
  286.                 If there is a SCSI adapter installed which is necessary for installation,1 you
  287.                 have to load the corresponding SCSI module. The same applies if you want to
  288.                 install via an existing network. Here, the appropriate module has to be loaded
  289.                 first.
  290.                 Furthermore, there are a lot of older CD-ROMs that are driven by proprietary
  291.                 controllers and which, therefore, need their own kernel modules. If PCMCIA
  292.                 devices are connected to a laptop, you need these modules as well.
  293.  
  294.                 System Information
  295.  
  296.                 IN `System information' (Figure 16.1 on the facing page) you can
  297.                 check a number of other things, apart from kernel messages, such as the I/O-
  298.                 addresses of PCI cards or the size of the main memory recognized by Linux.
  299.                 ......If you are not sure about your hardware, the boot messages might help
  300.                 you.
  301.                 You can check some system information in `System information'.
  302.                 Here, you can check the used interrupts, I/O ports used, main memory and
  303.                 recognized PCI devices as detected by Linux.
  304.                 The next lines show how a hard disk and a CD-ROM connected to an (E)IDE
  305.                 controller announce their start. In this case, you do not need to load additional
  306.                 modules:
  307.                 1 An adapter with only a scanner connected to it is not required at boot time.
  308.  
  309. 382
  310.  
  311.  
  312.  
  313.                                                                                      16.3. linuxrc
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.                        Figure 16.1: System information
  330.  
  331.  
  332. hda: ST32140A, 2015MB w/128kB Cache, LBA, CHS=1023/64/63
  333. hdb: CD-ROM CDR-S1G, ATAPI CD-ROM drive
  334. Partition check:
  335.  hda: hda1 hda2 hda3 < hda5 >
  336.  
  337. If you booted a kernel that already has a SCSI driver compiled in, you do
  338. not need this SCSI driver as a module as well. Quite typical announcements
  339. when loading SCSI adapters and connected devices might look like this:
  340.  
  341. scsi : 1 host.
  342. Started kswapd v 1.4.2.2
  343. scsi0 : target 0 accepting period 100ns offset 8 10.00MHz FAST SCSI-II
  344. scsi0 : setting target 0 to period 100ns offset 8 10.00MHz FAST SCSI-II
  345.   Vendor: QUANTUM        Model: VP32210                 Rev: 81H8
  346.   Type:     Direct-Access                               ANSI SCSI revision: 02
  347. Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
  348. scsi0 : target 2 accepting period 236ns offset 8 4.23MHz synchronous SCSI
  349. scsi0 : setting target 2 to period 248ns offset 8 4.03MHz synchronous SCSI
  350.   Vendor: TOSHIBA        Model: CD-ROM XM-3401TA Rev: 0283
  351.   Type:     CD-ROM                                      ANSI SCSI revision: 02
  352. scsi : detected 1 SCSI disk total.
  353. SCSI device sda: hdwr sector= 512 bytes. Sectors= 4308352 [2103 MB] [2.1 GB]
  354. Partition check:
  355.  sda: sda1 sda2 sda3 sda4 < sda5 sda6 sda7 sda8 >
  356.  
  357. Loading Modules
  358. You select which kinds of modules you need. If you booted via disk, the
  359. corresponding data has to be read by linuxrc and displayed in a list.
  360. If you have booted from CD or from DOS (via loadlin), these modules are
  361. already set in linuxrc. This saves tedious loading, but it needs additional
  362. memory. If your machine has less than 8 MB of RAM, you have to boot from
  363. disk.
  364. linuxrc offers you a list of available drivers. On the left, there is the name of
  365. the module and, on the right, a short description of its usage.
  366.  
  367.                                                                                               383
  368.  
  369.  
  370.  
  371. 16. Special Features of SuSE Linux
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.                                          Figure 16.2: Load modules
  389.  
  390.  
  391.                 For some components, there are a variety of drivers to choose from (even
  392.                 newer alpha-code drivers).
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.                                   Figure 16.3: Selection of SCSI drivers
  410.  
  411.  
  412.                 Passing on Parameters
  413.  
  414.                 When you have found a suitable driver, move to it with the cursor and press
  415.                    
  416.                      . Now there is a dialog box where you can add additional parameters
  417.                 for this module. More on module parameters can be found in Section 14.3.4
  418.                 page 339.
  419.                 We would like to point out that, in contrast to the LILO prompt, parameters
  420.                 for the same module have to be separated by blanks.
  421.  
  422. 384
  423.  
  424.  
  425.  
  426.                                                                                                  16.3. linuxrc
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.            Figure 16.4: Entering parameters for a module to be loaded
  444.  
  445.  
  446. In most cases, it is not necessary to specify the hardware in detail. Most
  447. drivers find their components automatically. Most network cards and propri-
  448.                                                                                        
  449. etary CD-ROM drives, however, need parameters. If in doubt, just try      
  450.                                                                                           .
  451. Recognizing and initializing certain hardware can take some time. Switching
  452.                                  
  453. to virtual console #4 ( Alt  +  F4  
  454.                                         ) lets you watch the kernel messages while
  455. loading. SCSI drivers need a while, as they have to wait for each device to
  456. load.
  457. If loading succeeded, the messages are displayed by linuxrc so you can verify
  458. that everything ran smoothly. Otherwise, if it fails, the messages might give
  459. you a hint as to why it failed.
  460.  
  461. Start Installation / System
  462.  
  463. Once you have set up hardware support via modules, you can switch to the
  464. `Start installation / system' menu.
  465. From here (Figure 16.5 on the following page) a number of procedures
  466. can be started: `Start installation' (from this item an update is
  467. also started), `Boot installed system' (the root partition must be
  468. known), `Start rescue system' (refer to Section 16.5 page 389) und
  469. `Start Live-CD'2
  470.  
  471.  The item `Start live-CD' can be of great use if, for example, you
  472.  want to test, without actually installing to the hard drive, if the computer in
  473.  question, or the Notebook you might want to buy, is at all compatible with
  474.  SuSE Linux ¡ such a test ought to be possible in every modern PC shop,
  475.  without any trouble!!
  476.  
  477.  
  478. 2 This live CD ("Live filesystem") is only available for x86 architectures and must be bought
  479. separately).
  480.  
  481.                                                                                                           385
  482.  
  483.  
  484.  
  485. 16. Special Features of SuSE Linux
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.                                   Figure 16.5: the linuxrc `Start' menu
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.                               Figure 16.6: Selection of source media in linuxrc
  519.  
  520.                 For the installation (Figure 16.6) you can choose various sources for the
  521.                 installation, and similarly for the rescue system (see Figure 16.6).
  522.  
  523.                 16.4 The SuSE Linux Help System
  524.                 The help system is component-oriented, and can be viewed using any browser
  525.                 (see Figure 1.1 page 6, or Figure 16.7 on the next page) ¡ even across a
  526.                 network, if you wish.
  527.                 The central component of the help system is located in the package suse-
  528.                 hilf, series doc (Documentation). Depending on your requirements, you
  529.                 may additionally install the following packages (for help on installation, see
  530.                 Section 3.4.3 page 84). The critical parts are always installed along with the
  531.                 standard installation, so don't panic;-)
  532.  
  533. 386
  534.  
  535.  
  536.  
  537.                                                           16.4. The SuSE Linux Help System
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.              Figure 16.7: Homepage of the help system (lynx)
  554.  
  555.  
  556. package apache, series n: Apache, the local WWW server.
  557. package sdb, series doc: Basic search functionality for the SDB.
  558. package sdb de, series doc: The articles of the Support Database (SDB),
  559.    in German.
  560. package susepak, series doc: For studying package descriptions. . .
  561. package howtodeh, series doc: Howto documents, German.
  562. package howtoenh, series doc: Howto documents, English Version (gen-
  563.    erally more up to date than the translations).
  564. package ldp, series doc: Books, FAQs, etc. of the Linux Documentation
  565.    Project (LDP) in HTML.
  566. package rman, series ap: Contains http-rman.
  567. package inf2htm, series doc: This is for reading Texinfo documents (see
  568.    Section 1.4.3 page 5) with your web browser. The documents are con-
  569.    verted "on-the-fly".
  570. package dochost, series n: A centralized document server. Please read
  571.    /usr/doc/packages/dochost/README.SuSE!
  572. package htdig, series n: Creates an index for every WWW document
  573.    found on the local host or in the local network. Turns your host into a
  574.    mini web crawler.
  575.  
  576. The package dochost and the package htdig are not necessarily needed,
  577. but they enhance the functionality of working with the help system.
  578.  
  579. 16.4.1 Standalone and Server Configuration
  580. In /etc/rc.config you should set the variables for a standalone machine
  581. as listed in File contents 16.4.1 on the following page (preferably with YaST,
  582. as explained in Section 3.6.11 page 101 and especially in page 406). This
  583. implies that your machine is named helios.cosmos.com, otherwise you
  584. will have to enter the name you assigned.
  585.  
  586.                                                                                       387
  587.  
  588.  
  589.  
  590. 16. Special Features of SuSE Linux
  591.  
  592.  
  593.                   START_INETD="yes"
  594.                   START_HTTPD="yes"
  595.                   DOC_SERVER="yes"
  596.                   DOC_HOST="helios.cosmos.com"
  597.                   DOC_ALLOW="LOCAL .cosmos.com"
  598.  
  599.                 File contents 16.4.1: /etc/rc.config for standalone and server systems
  600.  
  601.  
  602.                 Please make sure that the HTTP server (apache) is started at boot up. The
  603.                 web server is activated via START HTTPD (value: yes).
  604.                 DOC SERVER assigns whether this host serves as document server. This
  605.                 has to be set to yes if you want to access the documents on a standalone
  606.                 machine. DOC HOST sets the name of the document server (in this example:
  607.                 helios.cosmos.com). DOC ALLOW is for security reasons. Here you
  608.                 may set hosts that are allowed to view the manpages. If you want to allow a
  609.                 whole domain do not forget the `.' in front!
  610.  
  611.                  Please be aware that you need to run SuSEconfig after changing the
  612.                  variables. If you make changes with YaST, SuSEconfig is launched
  613.                  automatically.
  614.  
  615.                 Full-text search is available as soon as the indices for ht://Dig (package ht-
  616.                 dig) have been created. At the moment these are approximately 70 MB in
  617.                 size. There should be at least 200 MB of free space below /opt/www/
  618.                 htdig. The program is initialized by entering:
  619.                    earth:  # suserundig
  620.                 /usr/sbin/suserundig parses /opt/www/htdig/conf/susedig.
  621.                 conf and creates index files. If you update the HTML documents you need
  622.                 to re-run /usr/sbin/suserundig.
  623.  
  624.                 16.4.2 Client Configuration
  625.  
  626.                 You might not want to install all the help system on every machine in your
  627.                 local network. On the client you just need to install the base package do-
  628.                 chost, series n and set the variables in /etc/rc.config as listed in File
  629.                 contents 16.4.2.
  630.  
  631.  
  632.                   DOC_SERVER="no"
  633.                   DOC_HOST="helios.cosmos.com"
  634.                   DOC_ALLOW=""
  635.  
  636.  
  637.                            File contents 16.4.2: /etc/rc.config for a client
  638.  
  639.                 This obviously only works if the documentation is installed on
  640.                 helios.cosmos.com.
  641.  
  642. 388
  643.  
  644.  
  645.  
  646.                                                                              16.5. The SuSE Rescue System
  647.  
  648. 16.4.3 Using the Help System
  649. If the help system was installed as described above you can invoke it by typing
  650. susehelp. You can also enter the following URL directly into your WWW
  651. browser:        http://localhost/doc/susehilf/index.html or
  652. http://sonne.kosmos.all/doc/susehilf/index.html; he-
  653. lios.cosmos.com will only work, of course, if your computer or the
  654. document server has this name.
  655.  
  656. 16.5 The SuSE Rescue System
  657.  
  658. Overview
  659. SuSE Linux contains ¡ independent of the installation system ¡ a standalone
  660. Linux-rescue system3 with which you can, in emergencies, reach all your
  661. Linux partitions on the hard drives again "from the outside". The rescue sys-
  662. tem consists of a careful selection of help programs,providing you with suffi-
  663. cient tools to be able to remedy a large variety of problems with inaccessible
  664. hard drives, misconfigured configuration files, etc.
  665. The rescue system consists of a boot disk or a bootable CD and a "rescue" sys-
  666. tem, which in SuSE Linux can be loaded from quite different media (floppy
  667. disks, CD, from the network, even directly from the SuSE-FTP server).
  668. Since you can re-create the boot disk at any time from the appropriate image
  669. file on the CD, in /disks, this forms quite a secure fallback. Apart from the
  670. boot disk, at the minimum only the file /disks/rescue is needed form
  671. the CD, which contains the compressed image of a small root file system. If
  672. you write this file with the Linux commands
  673.    earth: # /sbin/badblocks -v /dev/fd0 1440
  674.    earth: # dd if=/cdrom/disks/rescue of=/dev/fd0 bs=18k
  675. or using the DOS command (assuming Q: is your CD-ROM in DOS):
  676.         Q:\dosutils> rawrite.exe
  677. onto a second error-free "rescue-disk", you can also load the rescue system
  678. from the boot disk and from this rescue disk; the rescue disk can also be
  679. created with YaST (see Section 3.6.2 page 93). The rescue disk is currently
  680. based on libc5; only in this way is it possible to store certain programs on the
  681. floppy disk (an  Editor, fdisk, e2fsck etc.) ¡ the glibc would be too large to
  682. fit.
  683. ....Please bear in mind that you cannot mount the rescue disk by itself, because
  684. it does not contain a filesystem, but a compressed image (the uncompressed
  685. image would take up to 3.5 MB space, too large to fit on a floppy disk). If you
  686. want to look at the rescue disk image, you have to decompress it in advance
  687. and then mount it (your username must be `root'). Provided that your
  688. Linux kernel supports the loop device, you can enter:
  689.         earth: # cp /cdrom/disks/rescue /root/rescue.gz
  690.         earth: # gunzip /root/rescue.gz
  691.         earth: # mount -t ext2 -o loop /root/rescue /mnt
  692. 3 to be precise, there are now two of these (more on this below) ¡ or even three, if you are
  693. inclined to also regard the startable "live filesystem" as a rescue system; this Live-Filesystem
  694. can be bought separately, at a small price
  695.  
  696.                                                                                                      389
  697.  
  698.  
  699.  
  700. 16. Special Features of SuSE Linux
  701.  
  702.                 Now you can have a look at the contents of the rescue disk in /mnt.
  703.  
  704.                  Always have some extra boot disks at hand! Creating such a disk does
  705.                  not take long-much less time than searching for a disk in an emergency.
  706.                  In such an emergency, you can be sure that your CD-ROM will not work
  707.                  either (Murphy's law...)!
  708.  
  709.                 Launching the Rescue System
  710.                 The rescue system, like a normal installation, is launched using the SuSE
  711.                 boot disk or from the bootable CD 1. The individual steps:
  712.                  1. Requirements: The floppy drive or CD-ROM must be bootable (if not,
  713.                     you must run CMOS setup to modify the settings).
  714.                  2. Launch the system with the SuSE boot disk or with CD 1. At the boot
  715.                     prompt either enter yast1 or manual; for manual you have the option
  716.                     of loading the necessary kernel modules independently.
  717.                  3. Enter the language, keyboard, etc., as in the installation with linuxrc, until
  718.                     you get to the main menu.
  719.                  4. Now select `Installation/Start system'.
  720.                  5. Insert the CD or the disk containing the compressed image of the rescue
  721.                     system.
  722.                  6. In the main menu select `Start installation / system'.
  723.                  7. If you started with the boot disk, you should now insert the installation-
  724.                     CD or the rescue disk with the compressed image of the rescue system.
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.                                       Figure 16.8: Source media in linuxrc
  741.  
  742.                  8. In the menu `Start installation/system' select the item
  743.                     `Start rescue system' (see Figure 16.5 page 386) and then
  744.                     specify the desired source medium (Figure 16.8):
  745.                     `CD-ROM': this is the "normal way". linuxrc will load a convenient
  746.                        system (.../suse/images/rescue). In order to to do this, the
  747.  
  748. 390
  749.  
  750.  
  751.  
  752.                                                                 16.5. The SuSE Rescue System
  753.  
  754.        computer must have at least 16 MB RAM (memory), 24 MB would
  755.        be preferable. ¡ the directory /cdrom is exported at the same time,
  756.        by the way; thus it is also possible to start the rescue system easily
  757.        and then to perform a network installation from this CD (you should
  758.        provide /etc/rc.config with the necessary values and then run
  759.        SuSEconfig; see Section 17.5 page 399 pp.).
  760.    `Network (NFS)': obtain the rescue system via NFS from the
  761.        network; for this, of course, you have to have the driver for your net-
  762.        work card already installed; refer also to the general hints in Sec-
  763.        tion 2.4.2 page 43.
  764.    `Network (FTP)': obtaining the rescue system via FTP from the
  765.        network; don't forget the network card driver!
  766.    `Hard drive': load the rescue system from the hard drive.
  767.    `Floppy Disk': Start the rescue system from the floppy disk, as
  768.        described above; this variation also works even if the computer only
  769.        has a small amount of RAM.
  770.  
  771. The rescue system is now decompressed, loaded onto a RAM floppy disk as
  772. a new root filesystem, mounted and started. Now it is ready for use.
  773.  
  774. Working with the Rescue System
  775.                                                                       
  776. The rescue system provides three virtual consoles on keys  Alt  +  F1  to  Alt  
  777.                                                                 
  778. +  F3  
  779.       . Here `root' may log in without a password.  Alt  +  F4  brings you
  780. to the system console where you can view the kernel and syslog messages.
  781. A shell and lots of other useful utilities (net tools) can be found in /bin. In
  782. sbin you can find e2fsck which is very useful for checking and repairing
  783. filesystems.
  784. In sbin, there are some important binaries for system maintenance, such as
  785. fdisk, mkfs, mkswap, mount, mount, init, shutdown, as well as ifconfig,
  786. route, and netstat for maintaining the network.
  787. An editor, vi, is located in /usr/bin. Also, tools like (grep, find, less, etc.)
  788. and, most important of all, telnet, are available.
  789. /mnt/usr/bin.
  790.  
  791. Example: Accessing Your Normal System
  792. To mount a Linux system using the rescue system, you should use the mount
  793. point /mnt. You can, of course, also use or create another directory.
  794. As an example, let's assume that your normal system is put together according
  795. to the /etc/fstab shown in the example file 16.5.1 on the next page.
  796. Consider the following example: Assuming your system is configured ac-
  797. cording to the /etc/fstab given in File contents 16.5.1 on the following
  798. page, then you may mount it step by step to /mnt. Just execute the following
  799. commands in order:
  800.    earth:/ # mount /dev/sdb3 /mnt
  801.       earth:/ # mount /dev/sdb6 /mnt/usr
  802.                                                                                         391
  803.  
  804.  
  805.  
  806. 16. Special Features of SuSE Linux
  807.  
  808.  
  809.                   /dev/sdb5             swap             swap             defaults       0    0
  810.                   /dev/sdb3             /                ext2             defaults       1    1
  811.                   /dev/sdb6             /usr             ext2             defaults       1    2
  812.  
  813.                      File contents 16.5.1: Example /etc/fstab for system recovery
  814.  
  815.                 Now you can access your entire system and, e. g., correct mistakes in config-
  816.                 uration files such as /etc/fstab, /etc/passwd, and /etc/inittab.
  817.                 These files will now be located in /mnt/etc, of course, instead of /etc!
  818.                 Every experienced Linux user will print out a hardcopy of the file /etc/
  819.                 fstab and save the output of the command
  820.                    earth: # fdisk -l /dev/<disk>
  821.                 "in a safe place"; instead of <disk> you should insert, in order, the device
  822.                 names of your hard drives, e.g. hda (see the list in Section D.1 page 469).
  823.                 Even completely lost partitions can often be retrieved with the Linux fdisk,
  824.                 simply by re-creating the partition, if you know exactly where the partitions
  825.                 were located on the hard drive previously.
  826.  
  827.                 Example: Repairing Filesystems
  828.                 Damaged filesystems are tricky problems for the rescue system. This could
  829.                 happen after an unscheduled shutdown caused by power failure or a system
  830.                 crash. Generally, filesystems cannot be repaired on a running system. If you
  831.                 encounter really severe problems, you may not even be able to mount your
  832.                 root filesystem and have the system boot end up in a "kernel panic".
  833.                 Here, the only chance is to repair the system from the "outside" using a rescue
  834.                 system.
  835.                 The SuSE Linux rrescue system contains the utilities e2fsck and, for problem
  836.                 diagnosis, dumpe2fs. These should cover most problems. In an emergency,
  837.                 there normally are no manpages available. That is why we have included
  838.                 them in this manual in Appendix E page 475.
  839.                 Example:
  840.                 If mounting a filesystem fails due to an invalid superblock, then e2fsck would
  841.                 most probably fail too. If this were the case, your superblock may be cor-
  842.                 rupted too. There are copies of the superblock located every 8192 blocks
  843.                 (8193, 16385, . . . ). If your superblock got corrupted, you can try one of the
  844.                 copies instead. This is accomplished by entering the command:
  845.                    earth: # e2fsck -f -b 8193 /dev/damaged partition
  846.                 The -f option forces the filesystem check and overrides e2fsck's error so that
  847.                 ¡ since the superblock copy is intact ¡ everything is fine.
  848.  
  849.                 16.6 Hints on Special Software Packages
  850.  
  851.                 16.6.1 package cron
  852.                 The cron tables are now located in /var/cron/tabs (and not, as pre-
  853.                 viously, in /var/lib/cron). /etc/crontab serves as a system wide
  854.  
  855. 392
  856.  
  857.  
  858.  
  859.                                                                        16.7. Keyboard Layout
  860.  
  861. cron table. You need to enter the name of the user who should run the com-
  862. mand directly after the timetable (see File contents 16.6.1, here `root' is
  863. entered); package-specific tables, located in /etc/cron.d have the same
  864. format ¡ see manpage for cron (man 8 cron).
  865.  
  866.  
  867.   1-59/5 * * * * root test -x /usr/sbin/atrun && /usr/sbin/atrun
  868.  
  869.  
  870.        File contents 16.6.1: Example of an entry in /etc/crontab
  871.  
  872. /etc/crontab can not be processed with crontab -e but must be
  873. loaded directly into an editor, modified, and then saved.
  874. A number of packages install shell scripts to the directories /etc/cron.
  875. hourly, /etc/cron.daily, /etc/cron.weekly and /etc/
  876. cron.monthly, whose instructions are controlled by /usr/lib/cron/
  877. run-crons. /usr/lib/cron/run-crons is run every 15 minutes
  878. from the main table (/etc/contrab); this guarantees that processes which
  879. may possibly have been neglected can be .... re-done in time ..... rechtzeitig
  880. nachgeholt werden. You should not be surprised if, shortly after booting
  881. the user `nobody' turns up in the process tables and is highly active; this
  882. probably means that `nobody' is just updating the locate database (see
  883. Section 17.6 page 409).
  884.  
  885. 16.6.2 package curses
  886.  
  887. On the CD you will find the package ncurses. The corresponding libraries
  888. are named libncurses.so.<xx>. This means that some Makefiles have
  889. to be adapted to link ncurses. Packages of your own should be linked with
  890. the command -lncurses, and never with -lcurses. For those who want
  891. to use curses anyway, try:
  892.   -I/usr/include/termcap -I/usr/include/curses
  893.   -L/usr/lib/termcap -L/usr/lib/curses
  894.  
  895. 16.6.3 Manpages
  896.  
  897. For some GNU applications (e. g., tar) the manpages are no longer main-
  898. tained. They have been replaced by info files. Info (info) is GNU's hyper-
  899. text system. Typing info info gives you a starting help in using info.
  900. info can be launched via emacs -f info or on its own: info. The
  901. programs tkinfo and xinfo are easy to use, or you can access the help
  902. system: 16.4 page 386.
  903.  
  904.  
  905. 16.7 Keyboard Layout
  906.  
  907. In order to standardize the keyboard mapping of programs, changes were
  908. made to the following files:
  909.  
  910.                                                                                         393
  911.  
  912.  
  913.  
  914. 16. Special Features of SuSE Linux
  915.  
  916.                 /usr/lib/X11/Xmodmap
  917.                 /etc/inputrc
  918.                 /etc/skel/.exrc
  919.                 /etc/skel/.less
  920.                 /etc/skel/.lesskey
  921.                 /etc/csh.cshrc
  922.                 /etc/termcap
  923.                 /usr/lib/terminfo/x/xterm
  924.                 /usr/lib/X11/app-defaults/XTerm
  925.                 /usr/share/emacs/20.5/site-lisp/term/*.el
  926.                 /usr/lib/joerc
  927.                 These changes only affect applications that make use of terminfo entries
  928.                 or whose configuration files are changed directly (vi, less, etc.). Other,
  929.                 non-SuSE applications should be adjusted to these defaults.
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963. 394
  964.  
  965.  
  966.  
  967.