Thanks to all who contributed to the clarification of this issue.

I thought I would summarise the situation as I understand it.

1. The gentoo distribution has partially moved to a named runlevel
scheme. Currently there are some places where the runlevel names
are used, and others where the numeric runlevel is required.

2. The /etc/inittab still specifies the default runlevel as a number,
and also includes a table that maps the traditional numbers to
directory names in /etc/runlevels.

3. The default runlevel specified in /etc/inittab can be overridden
at boot time by specifying a runlevel directory name. This is at
least indicated in the 'Initscripts' document, but I havn't gotten
it to work yet. My boot hangs when I try to run the second entry
in my grub.conf file:
  default 0
  timeout 30
  splashimage=(hd0,4)/grub/splash.xpm.gz
  
  # Gentoo partition on HDA
  
  title=Gentoo Linux 2.6.10-r6
  root (hd0,4)
  kernel /kernel-2.6.10-gentoo-r6 root=/dev/ram0 init=/linuxrc ramdisk=8192 
real_root=/dev/hda7
  initrd /initrd-2.6.10-gentoo-r6
  
  # Gentoo partition on HDA
  
  title=Gentoo Linux 2.6.10-r6 (Runlevel 5)
  root (hd0,4)
  kernel /kernel-2.6.10-gentoo-r6 root=/dev/ram0 init=/linuxrc ramdisk=8192 
real_root=/dev/hda7 softlevel=fullxdm
  initrd /initrd-2.6.10-gentoo-r6
  
Anyone have any idea what is going wrong? I am guessing that the
genkernel/ramdisk boot sequence relies on a bootstrapping runlevel
on the ramdisk which is hijacked by the 'softlevel' directive
before init is let loose on the real system disk...

4. There is some confusion as to the correct way to change runlevel
in a gentoo system. Some people have suggested the command
        /sbin/rc <directoryname>
whereas the online manual indicates the traditional
        telinit <runlevel>
I have experimented with both, and it appears that the latter works
best, and is indeed a superset of the former, as init invokes /sbin/rc
as directed for the nominated runlevel by a line in /etc/inittab, eg
in my inittab runlevel 5 maps to /etc/runlevels/fullxdm:
        l5:5:wait:/sbin/rc fullxdm

After boot the situation is reported as:
    gentoo:/home2/digbyt> who -r
         run-level 3  Mar 29 13:52                   last=S
If I then run 'telinit 5' my graphical environment comes up normally
and the system reports its current operating mode as
    gentoo:/home2/digbyt> who -r
         run-level 5  Mar 29 13:29                   last=3
If, on the other hand, after booting I run the command '/sbin/rc fullxdm'
the scripts are executed correctly, but the system reports:
        gentoo:/home2/digbyt> who -r
         run-level 3  Mar 29 13:52                   last=S

Thus by invoking the command '/sbin/rc' (which presumably is undocumented
because it is intended for internal use by init) you are bypassing
init's normal logging of runlevel changes in /var/log/wtmp, and any
other housekeeping that is intended to accompany a runlevel change.

Thus my advice would be to follow the instructions given in the
gentoo online manual for init:
    "A  runlevel is a software configuration of the system which allows only
     a selected group of processes to exist.  The processes spawned by  init
     for each of these runlevels are defined in the /etc/inittab file.  Init
     can be in one of eight runlevels: 0-6 and S  or  s.   The  runlevel  is
     changed  by having a privileged user run telinit, which sends appropri-
     ate signals to init, telling it which runlevel to change to."

If the runlevel to directory name mapping in /etc/inittab is maintained
rationally, then the directory names can be ignored except when specifying
runlevels at boot time.

The method of changing of runlevels seems to an omission from
the 'Initscripts' section of the handbook. It would be nice if
these notes could be used as the basis for an update to the
documentation to clarify things for others.

Regards,
DigbyT
-- 
Digby R. S. Tarvin                                             [EMAIL PROTECTED]
http://www.digbyt.com
--
gentoo-user@gentoo.org mailing list

Reply via email to