Jun 14, 2005

             onlsbc1, Scientific Linux CERN Release 305 (SL) のインストール
          		---  SL システム構築 #1
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               (http://www-online.kek.jp/~inoue/para-CAMAC/
                                   Work/SBC-Linux64.html)



                        高エネルギー加速器研究機構
                            素粒子原子核研究所
                         物理、オンライングループ
                                井上 栄二

        目的

	    onlsbc1 の2.5"IDEハードディスク#1上にScientific Linux CERN Release
	    305 (SL)をインストールする。 このシステムは Scientific Linux CERN
	    Release 305 (SL)を使った CC/NET用ディスクレスクライアントを構築する
	    ためのベースのシステムとして使用するためのものである。


        項目

        (1). SLC 3、Release 305 のインストール
        (2). インストール後の初期設定
          (2-1).  ユーザの登録
          (2-2).  grubメニューの修正
        (3). クライアント用カーネルの構築
          (3-1).  カーネルの設定
          (3-2).  カーネルの構築
        (4). SLC 3、Release 305 のインストール
        (5). インストール後の初期設定
          (5-1).  ユーザの登録
          (5-2).  grubメニューの修正
          (5-3).  パッケージの追加
        (6). クライアント用カーネルの構築(その2)
          (6-1).  カーネルの設定
          (6-2).  カーネルソースのコピー
          (6-3).  カーネル、およびinitrd の修正




  --------------------------------------------------------------------

 (1). SLC 3、Release 305 のインストール

	/dev/hda6パーティションにファイルシステムを作成する。

[root@onlsbc1 inoue]# /sbin/mke2fs -j /dev/hda6
mke2fs 1.32 (09-Nov-2002)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1224000 inodes, 2443880 blocks
122194 blocks (5.00%) reserved for the super user
First data block=0
75 block groups
32768 blocks per group, 32768 fragments per group
16320 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@onlsbc1 inoue]#

	Scientific Linux CERN 3 (SLC3) のインストーラの新しいバージョンのもの、		Release 304を入手し配置する。

[root@onlsbc1 mnt]# reboot

Broadcast message from root (pts/0) (Thu Jun  9 10:57:15 2005):

The system is going down for reboot NOW!
			:
			:

        ここでインストーラは起動する。

	注:
	  使用言語の問い合わせは無かった。

Keyboard Type
	What type of keyboard do you have ?
    <===  "jp106" を選択し "ok" を選択して enter を押す。

Installation Method
	What type of media contains the packages to be installed ?
    <===  "HTTP" を選択し "ok" を選択して enter を押す。

Configure TCP/IP
	Please enter the IP configuration for this machine. Each item should be
	entered as an IP address in dotted-decimal notation ( for example, 
	1.2.3.4).
    <===  以下の情報をセットし "ok" を選択して enter を押す。
                IP address:             130.87.***.*
                Netmask:                255.255.***.*
                Default gateway (IP):   130.87.***.*
                Primary nameserver:     130.87.***.*

HTTP Setup
	Please enter the following information:

	  o the name or IP number of your server
	  o the directory on that server containing Scientific Linux CERN for 
	    your architecture

    <===  以下の情報をセットし "ok" を選択して enter を押す。

          Web site name: linuxsoft.cern.ch
          SL directory:  /cern/slc305/i386/

SL
	Welcome to SL!
    <===  "ok" を選択して enter を押す。

Mouse Selection
	Which model mouse is attached to this computer ?
    <===  以下の情報をセットし "ok" を選択して enter を押す。
	Logitech - MouseMan Wheel (USB)
	[*] Emulate 3 Buttons ?

Installation Type
	What type of system would you like to install ?
    <===  "CERN Recommended Setup" を選択し "ok" を選択して enter を押す。

Disk Partitioning Setup
	Automatic Partitioning sets partitions based on the selected 
	installation type. You also can customize the partitions once they have 
	been created.

	The manual disk partitioning  tool, Disk Durid, allows you to create 
	partitions in an interactive environment. You can set the file system 
	types, mount points, partition size, and more.
    <===  "Disk Druid" を選択して Enter を押す。

Partitioning
    <===  "Device /dev/hda6" を選択し "Edit" を選択して Enter を押す。

    Add Partition
        <===  "File System Options" を選択して Enter を押す。

      File System Options
	Please choose how you would like to prepare the file system on this
	partition.
	<===  "Format as ext3" を選択し "OK" を選択して
                Enter を押す。
        <===  "マウントポイント: /" を選択し "OK" を選択して Enter を押す。

                参考: この時点で以下のように設定したことになる。
                Mount Point:            /
                Type:                  ext3
                Device:                /dev/hda6
                Size:                  9546 MB
        <===  "OK" を選択して Enter を押す。

Partitioning Warning
        The following warning exist with your requested partition scheme.

	You have not specified a swap partition. Although not strictly required
	in all cases, it will significantly improve performance for most 
	installations.

	Would you like to continue with your requested partitioning scheme?
        <===  "Yes" を選択して Enter を押す。

Format Warning
        The following pre-existing partitions have been selected to be formated,
	destroying all data.

	Select 'Yes' to continue and format these partitions, or 'No' to go back
	and change these settings.

	  /dev/hda6  ext3  /
        <===  "Yes" を選択して Enter を押す。
      
Boot Loader Configuration
	Which boot loader would you like to use ?
    <===  "Use GRUB Boot Loader" を選択し、"OK"を選択して Enter を押す。

Boot Loader Configuration
	A few system will need to pass special options to the kernel at boot 
	time for the system to function properly.  If you need to pass boot 
	options to the kernel, enter them now. If you don't need any or aren't
	sure, leave this blank.
    <===  ブランクのままにして "OK" を選択して Enter を押す。

	A boot loader password prevents users from passing arbitrary options to 
	the kernel. For highest security, we recommended setting a password, but
	this is not nesessary for more casual users.
    <===  GRUBパスワードを使用しないにして "OK" を選択して Enter を押す。

	The boot manager Red Hat uses can boot other operating systems as well.
	You need to tell me what partitions you would like to be able to boot
	and what label you want to use for each of them.
    <===  "Scientific Linux CERN /dev/hda6" を指定し "OK" を選択して Enter を
	  押す。

	Where do you want to install the boot loader ?
    <===  "/dev/hda6 First sector of boot partition" を指定し "OK" を選択して 
	  Enter を押す。

Network Configuration for eth0
    <===  以下の設定をし、"OK" を選択し Enter を押す。
	Network Device: eth0
	[*] Activate on boot
	IP Address  130.87.***.*
	Netmask	    255.255.***.*

Miscellaneous Network Settings
    <===  以下の設定をし、"OK" を選択し Enter を押す。
	Gateway:	130.87.***.*
	Primary DNS:	130.87.***.*
	Secondary DNS:	130.87.**.*
	Tertiary DNS:	130.87.**.*

Hostname Configuration
	If your system is part of a larger network where hostnames are assigned
	by DHCP, select automatically via DHCP. Otherwisw, select manually and 
	enter in a hostname for your system. If you do not, your system will be 
	known as 'localhost.'
    <===  "(*) manually onlsbc1.kek.jp" を設定をし、"OK" を選択し Enter を押す。

Firewall
	A firewall can help prevent unauthorized access to your computer from
	the outside world. Would you like to enable a firewall ?
    <===  "(*) enable firewall" を選択し、"OK" を選択し Enter を押す。

Language Support
	Choose additional languages that you would like to use on this system:
    <===  以下のように設定し、"OK" を選択し Enter を押す。
	[*] English (USA)
	[*] Japanese

Default Language
	Choose the default language for this system:
	"Japanese" を選択し、"OK" を選択し Enter を押す。

Time Zone Selection
	What time zone are you located in ?
    <===  "Asia/Tokyo"を選択して "OK" を選択して Enter を押す。

Root Password
	Pick a root password. You must type it twice to ensure you know what it 
	is and didn't make a mistake in typing. Remember that the root password
	is a critical part of system security !
	Password:           ********
	Password (confirm): ********

	ここでパッケージ情報の読み込みが始まる。

Package Group Selection
	Total install size: 6,003M
    <===  "Everything"を選択して "OK" を選択して Enter を押す。

Installation to begin
	A complete log of your installation will be in /root/install.log after
	rebooting your system. You may want to keep this file for later 
	reference.
    <===  "OK" を選択して Enter を押す。

	インストールが開始される。

	約4時間で終了した。

Video Card Configuration
	Select the video card and video RAM for your system.
	Video Card:	Silicon Motion Lynx (generic
	Video RAM:	4096
    <===  "OK" を選択して Enter を押す。

Monitor Configuration
	Select the monitor for your system. Use the 'Default'
	buttom to reset to the probed values.
	Monitor:	L465
	Hsync Rate:	24-81
	Vsync Rate:	49-76
    <===  "OK" を選択して Enter を押す。

X Customization
	Select the color depth and video mode you want
	to use for your system.
	Color Depth:	True Color (24 Bit)
	Resolution:	1024x768
	Default Login:	(*) Graphical
    <===  "OK" を選択して Enter を押す。

Complete
	Congratulations, your SL installation is complete.

	Remove any installation media (diskettes or CD-ROMs) used during
	the installation process and press (Enter) to reboot your system.

	For information on Errata (updates and bug fixes), 
	and on automatic system updates visit:
	     http://cern.ch/linux/updates/

	For infomation on using and configuring the system, visit:
	     http://cern.ch/linux/scientific/docs/
	For support information, visit:
	     http://cern.ch/linux/support/
    <===  "OK" を選択して Enter を押す。

	インストールは正常に終了した。

          注.
           Scientific Linux CERN のインストーラは、起動用フロッピーディスク
	      作成を行わないので、必要ならば後で自分で作成すること。

	"OK" を押すとインストーラは再起動する。

        2.5"IDEハードディスク#1 の MBR にインストールしてある Fedora Core 1 の
        grub が起動する。 この時点では、今回インストールした Scientific Linux 
        CERN 3 (SLC3) 用の起動項目がメニュー上に用意されていない。 "c"キーを押
        してインタラクティブモードにする。 grubコマンドのプロンプトが表示された
        ら、以下のように入力して Scientific Linux を立ち上げる。

grub> root (hd0,5)
 Filesystem type is ext2fs, partition type 0x83
grub> kernel /boot/vmlinuz-2.4.21-32.0.1.EL.cern ro root=/dev/hda6
   [Linux-bzImage, setup=0x1400, size=0x13b31c]
grub> initrd /boot/initrd-2.4.21-32.0.1.EL.cern.img
   [Linux-initrd @ 0x12fb7000, 0x2880e bytes]
grub> boot

		:
		:

ようこそ
	システムが使用できるようになるまで、もう少しステップがあります。 Red Hat
	セットアップエージェントで、基本的な設定をいくつかご案内していきます。
	右下の隅にあるボタン「次へ」をクリックして続けてください。

Open AFS
        This is the OpenAFS configuration Window.
        There are many AFS cells that you might want to bind to.

        Some of most common AFS cells are

        Cell Name       Lab Site
        ==========      ==========
        anl.gov         Argonne
        cern.ch         CERN
        desy.de         DESY
        fnal.gov        Fermilab

        AFS Cell:       cern.ch
        v  Start AFS on startup

        Please Note:
        If you have firewall turned on, AFS might not work properly.
        You may need either turn your firewall off, or poke the appropriate 
        holes.
    <===  AFS Cell に "cern.ch"と入力し、"「次へ」"ボタンをマウスでクリック
          する。

日付と時刻
        システム用に日付と時刻を設定して下さい。

        ネットワークタイムプロトコル
          ネットワークタイムプロトコルを使うとリモートタイムサーバと時間を同期
          させることができます。

          v  ネットワークタイムプロトコルを有効にする。


          サーバー: ntp02.local.kek.jp
    <===  上記のように指定し、"「次へ」"ボタンをマウスでクリックする。

CERN customization(s)
        For CERN system (or systems being installed on CERN site) we provide a 
        predefined setup (AFS/Kerberos/time servers etc) customized to fulfill
        a specific set of requirements.

        You should select this default if your machine is at CERN

	● No, I will do setup myself
		●  Enable automatic system updates
    <===  上記のように指定し、"「次へ」"ボタンをマウスでクリックする。

セットアップを終了
        システムが設定され使用できる状態になりました。右下隅にあるボタン「次へ」
        をクリックして続けてください。
    <===  "「次へ」"ボタンをマウスでクリックする。

        設定が完了して、Scientific Linux CERN のシステムが立ち上がった。
        画面には xdmがログインプロンプトを表示した。
        root のアカウントでログインする。 ok.  正常にログインできた。


 (2). インストール後の初期設定

   (2-1).  ユーザの登録

        私のアカウントを作成する。

        # useradd inoue
        # vigr

        注:
          Scientific Linux CERN のディフォルトの設定では、su で root になって
          もプロンプトはユーザアカウントの時と同じなので紛らわしい。

        
   (2-2).  grubメニューの修正

	Fedora Core 3 の grub.confファイルに Scientific Linux CERN 3 起動用の
	メニューを追加する。

[onlsbc1] / > whoami
root
[onlsbc1] / > df -k
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/hda6              9621848   6191360   2941712  68% /
none                    150868         0    150868   0% /dev/shm
AFS                    9000000         0   9000000   0% /afs
[onlsbc1] / > mount -t ext3 /dev/hda1 /mnt
[onlsbc1] / > df -k
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/hda6              9621848   6191360   2941712  68% /
none                    150868         0    150868   0% /dev/shm
AFS                    9000000         0   9000000   0% /afs
/dev/hda1              3020140   1632376   1234348  57% /mnt
[onlsbc1] / > 
[onlsbc1] / > cd /mnt
[onlsbc1] /mnt > 
[onlsbc1] /mnt > cat etc/issue
Fedora Core release 3 (Heidelberg)
Kernel \r on an \m

[onlsbc1] /mnt > 

[onlsbc1] /mnt/boot/grub > pwd
/mnt/boot/grub
[onlsbc1] /mnt/boot/grub > ls -l
合計 280
-rw-r--r--    1 root     root           82 12月 27 16:57 device.map
-rw-r--r--    1 root     root         7956 12月 27 16:57 e2fs_stage1_5
-rw-r--r--    1 root     root         7684 12月 27 16:57 fat_stage1_5
-rw-r--r--    1 root     root         6996 12月 27 16:57 ffs_stage1_5
-rw-------    1 root     root         1525  5月 11 14:46 grub.conf
-rw-r--r--    1 root     root         7028 12月 27 16:57 iso9660_stage1_5
-rw-r--r--    1 root     root         8448 12月 27 16:57 jfs_stage1_5
lrwxrwxrwx    1 root     root           11 12月 27 16:57 menu.lst -> ./grub.conf
-rw-r--r--    1 root     root         7188 12月 27 16:57 minix_stage1_5
-rw-r--r--    1 root     root         9428 12月 27 16:57 reiserfs_stage1_5
-rw-r--r--    1 root     root         3194 10月 27  2004 splash.xpm.gz
-rw-r--r--    1 root     root          512 12月 27 16:57 stage1
-rw-r--r--    1 root     root       103816 12月 27 16:57 stage2
-rw-r--r--    1 root     root         7272 12月 27 16:57 ufs2_stage1_5
-rw-r--r--    1 root     root         6612 12月 27 16:57 vstafs_stage1_5
-rw-r--r--    1 root     root         9308 12月 27 16:57 xfs_stage1_5
[onlsbc1] /mnt/boot/grub > 

[onlsbc1] /mnt/boot/grub > vi grub.conf
				:
#
title Full: Scientific Linux CERN 3、Release 305 (SLC3) (2.4.21-32.0.1.EL.cern)
        root (hd0,5)
        kernel /boot/vmlinuz-2.4.21-32.0.1.EL.cern ro root=/dev/hda6
        initrd /boot/initrd-2.4.21-32.0.1.EL.cern.img
#
				:
"grub.conf" 44L, 1751C 書込み                                 
[onlsbc1] /mnt/boot/grub > 

	ここで一旦リブートしてみる。

[onlsbc1] /mnt/boot/grub > reboot

Broadcast message from root (pts/2) (Thu Jun  9 17:00:05 2005):

The system is going down for reboot NOW!
			:
			:

	パワーオンの後に表示される grub のメニューに Scientific Linux CERN 3,
	Release 305 起動用のメニューが表示された。 このメニューを選択すると正常
	にシステムを起動できた。

	これで、ディスクレス・クライアント用のカーネル再構築の準備ができた。


 (3). クライアント用カーネルの構築

	ディスクレス・クライアント用のカーネルを再構築する。

	クライアントマシン onlsbc1 の 2.5"IDEハードディスク#2 上にインストールし
	た Scientific Linux のシステムはフルインストールしたので、カーネルソース
	はすでにインストールされている。

[onlsbc1] / > whoami
root
[onlsbc1] / > yum list installed | grep kernel
kernel-debuginfo-0-2.4.21 100% |=========================| 110 kB    00:01
kernel-debuginfo-0-2.4.21 100% |=========================| 129 kB    00:01
kernel-debuginfo-0-2.4.21 100% |=========================|  56 kB    00:00
kernel-utils-debuginfo-1- 100% |=========================| 5.5 kB    00:00
kernel                              i686   2.4.21-32.0.1.EL.cern    db
kernel-doc                          i386   2.4.21-32.0.1.EL.cern    db
kernel-module-bcm5700-2.4.21-32.0.1.EL.cerni686   7.1.22-1.cern            db

kernel-module-bcm5700-2.4.21-32.0.1.EL.cernsmpi686   7.1.22-1.cern            db

kernel-module-openafs-2.4.21-32.0.1.EL.cerni686   1.2.11-15.12.SL          db

kernel-module-openafs-2.4.21-32.0.1.EL.cernsmpi686   1.2.11-15.12.SL          db

kernel-module-xfs-2.4.21-32.0.1.EL.cerni686   1:1.3.3-1.SL             db

kernel-module-xfs-2.4.21-32.0.1.EL.cernsmpi686   1:1.3.3-1.SL             db

kernel-pcmcia-cs                    i386   1:3.1.31-13              db
kernel-smp                          i686   2.4.21-32.0.1.EL.cern    db
kernel-source                       i386   2.4.21-32.0.1.EL.cern    db
kernel-utils                        i386   1:2.4-8.37.12.cern.1     db
openafs-kernel-source               i386   1.2.11-15.12.SL          db
[onlsbc1] / >

[onlsbc1] / > ls -l /usr/src
合計 12
lrwxr-xr-x    1 root     root           27  6月  9 14:22 linux-2.4 -> linux-2.4.
21-32.0.1.EL.cern
drwxr-xr-x   18 root     root         4096  6月  9 14:21 linux-2.4.21-32.0.1.EL.
cern
drwxr-xr-x    3 root     root         4096  6月  9 15:17 openafs-kernel-1.2.11
drwxr-xr-x    7 root     root         4096  6月  9 13:42 redhat
[onlsbc1] / >

	このカーネルソースを使って、ディスクレスクライアント用のカーネルを再構築
	する。

[onlsbc1] /usr/src/linux-2.4 > pwd
/usr/src/linux-2.4
[onlsbc1] /usr/src/linux-2.4 > ls -la
合計 1168
drwxr-xr-x   18 root     root         4096  6月  9 14:21 .
drwxr-xr-x    5 root     root         4096  6月  9 15:17 ..
-rw-r--r--    1 root     root         5939  5月 26 19:06 .depend
-rw-r--r--    1 root     root       273076  5月 26 19:06 .hdepend
-rw-r--r--    1 root     root        18691  8月  3  2002 COPYING
-rw-r--r--    1 root     root        29940  5月 26 19:05 COPYING.modules
-rw-r--r--    1 root     root        80764  5月 26 18:51 CREDITS
drwxr-xr-x   32 root     root         4096  6月  9 14:19 Documentation
-rw-r--r--    1 root     root        45704  5月 26 18:51 MAINTAINERS
-rw-r--r--    1 root     root        20978  5月 26 19:05 Makefile
-rw-r--r--    1 root     root        14239  8月  3  2002 README
-rw-r--r--    1 root     root         2818  6月 13  2003 REPORTING-BUGS
-rw-r--r--    1 root     root         9528  5月 26 18:51 Rules.make
drwxr-xr-x   19 root     root         4096  6月  9 14:20 arch
drwxr-xr-x    2 root     root         4096  6月  9 14:20 configs
drwxr-xr-x    2 root     root         4096  6月  9 14:20 crypto
drwxr-xr-x   46 root     root         4096  6月  9 14:20 drivers
drwxr-xr-x   48 root     root         4096  6月  9 14:20 fs
drwxr-xr-x   27 root     root         4096  6月  9 14:21 include
drwxr-xr-x    2 root     root         4096  6月  9 14:21 init
drwxr-xr-x    2 root     root         4096  6月  9 14:21 ipc
drwxr-xr-x    3 root     root         4096  6月  9 14:21 kdb
drwxr-xr-x    2 root     root         4096  6月  9 14:21 kernel
drwxr-xr-x    4 root     root         4096  6月  9 14:21 lib
drwxr-xr-x    2 root     root         4096  6月  9 14:21 mm
drwxr-xr-x   32 root     root         4096  6月  9 14:21 net
drwxr-xr-x    2 root     root         4096  6月  9 14:21 save
drwxr-xr-x    4 root     root         4096  6月  9 14:21 scripts
-rw-r--r--    1 root     root       585360  5月 26 19:07 tmp_include_depends
[onlsbc1] /usr/src/linux-2.4 >

[onlsbc1] /usr/src/linux-2.4 > cat README
        Linux kernel release 2.4.xx

These are the release notes for Linux version 2.4.  Read them carefully,
as they tell you what this is all about, explain how to install the
kernel, and what to do if something goes wrong.

WHAT IS LINUX?

  Linux is a Unix clone written from scratch by Linus Torvalds with
  assistance from a loosely-knit team of hackers across the Net.
  It aims towards POSIX compliance.

  It has all the features you would expect in a modern fully-fledged
  Unix, including true multitasking, virtual memory, shared libraries,
  demand loading, shared copy-on-write executables, proper memory
  management and TCP/IP networking.

  It is distributed under the GNU General Public License - see the
  accompanying COPYING file for more details.

ON WHAT HARDWARE DOES IT RUN?

  Linux was first developed for 386/486-based PCs.  These days it also
  runs on ARMs, DEC Alphas, SUN Sparcs, M68000 machines (like Atari and
  Amiga), MIPS and PowerPC, and others.

DOCUMENTATION:

 - There is a lot of documentation available both in electronic form on
   the Internet and in books, both Linux-specific and pertaining to
   general UNIX questions.  I'd recommend looking into the documentation
   subdirectories on any Linux FTP site for the LDP (Linux Documentation
   Project) books.  This README is not meant to be documentation on the
   system: there are much better sources available.

 - There are various README files in the Documentation/ subdirectory:
   these typically contain kernel-specific installation notes for some
   drivers for example. See ./Documentation/00-INDEX for a list of what
   is contained in each file.  Please read the Changes file, as it
   contains information about the problems, which may result by upgrading
   your kernel.

 - The Documentation/DocBook/ subdirectory contains several guides for
   kernel developers and users.  These guides can be rendered in a
   number of formats:  PostScript (.ps), PDF, and HTML, among others.
   After installation, "make psdocs", "make pdfdocs", or "make htmldocs"
   will render the documentation in the requested format.

INSTALLING the kernel:

 - If you install the full sources, put the kernel tarball in a
   directory where you have permissions (eg. your home directory) and
   unpack it:

                gzip -cd linux-2.4.XX.tar.gz | tar xvf -

   Replace "XX" with the version number of the latest kernel.

   Do NOT use the /usr/src/linux area! This area has a (usually
   incomplete) set of kernel headers that are used by the library header
   files.  They should match the library, and not get messed up by
   whatever the kernel-du-jour happens to be.

 - You can also upgrade between 2.4.xx releases by patching.  Patches are
   distributed in the traditional gzip and the new bzip2 format.  To
   install by patching, get all the newer patch files, enter the
   directory in which you unpacked the kernel source and execute:

                gzip -cd patchXX.gz | patch -p0

   or
                bzip2 -dc patchXX.bz2 | patch -p0

   (repeat xx for all versions bigger than the version of your current
   source tree, _in_order_) and you should be ok.  You may want to remove
   the backup files (xxx~ or xxx.orig), and make sure that there are no
   failed patches (xxx# or xxx.rej). If there are, either you or me has
   made a mistake.

   Alternatively, the script patch-kernel can be used to automate this
   process.  It determines the current kernel version and applies any
   patches found.

                linux/scripts/patch-kernel linux

   The first argument in the command above is the location of the
   kernel source.  Patches are applied from the current directory, but
   an alternative directory can be specified as the second argument.

 - Make sure you have no stale .o files and dependencies lying around:

                cd linux
                make mrproper

   You should now have the sources correctly installed.

SOFTWARE REQUIREMENTS

   Compiling and running the 2.4.xx kernels requires up-to-date
   versions of various software packages.  Consult
   ./Documentation/Changes for the minimum version numbers required
   and how to get updates for these packages.  Beware that using
   excessively old versions of these packages can cause indirect
   errors that are very difficult to track down, so don't assume that
   you can just update packages when obvious problems arise during
   build or operation.

CONFIGURING the kernel:

 - Do a "make config" to configure the basic kernel.  "make config" needs
   bash to work: it will search for bash in $BASH, /bin/bash and /bin/sh
   (in that order), so one of those must be correct for it to work.

   Do not skip this step even if you are only upgrading one minor
   version.  New configuration options are added in each release, and
   odd problems will turn up if the configuration files are not set up
   as expected.  If you want to carry your existing configuration to a
   new version with minimal work, use "make oldconfig", which will
   only ask you for the answers to new questions.

 - Alternate configuration commands are:
        "make menuconfig"  Text based color menus, radiolists & dialogs.
        "make xconfig"     X windows based configuration tool.
        "make oldconfig"   Default all questions based on the contents of
                           your existing ./.config file.

        NOTES on "make config":
        - having unnecessary drivers will make the kernel bigger, and can
          under some circumstances lead to problems: probing for a
          nonexistent controller card may confuse your other controllers
        - compiling the kernel with "Processor type" set higher than 386
          will result in a kernel that does NOT work on a 386.  The
          kernel will detect this on bootup, and give up.
        - A kernel with math-emulation compiled in will still use the
          coprocessor if one is present: the math emulation will just
          never get used in that case.  The kernel will be slightly larger,
          but will work on different machines regardless of whether they
          have a math coprocessor or not.
        - the "kernel hacking" configuration details usually result in a
          bigger or slower kernel (or both), and can even make the kernel
          less stable by configuring some routines to actively try to
          break bad code to find kernel problems (kmalloc()).  Thus you
          should probably answer 'n' to the questions for
          "development", "experimental", or "debugging" features.

 - Check the top Makefile for further site-dependent configuration
   (default SVGA mode etc).

 - Finally, do a "make dep" to set up all the dependencies correctly.

COMPILING the kernel:

 - Make sure you have gcc 2.95.3 available.  gcc 2.91.66 (egcs-1.1.2) may
   also work but is not as safe, and *gcc 2.7.2.3 is no longer supported*.
   Also remember to upgrade your binutils package (for as/ld/nm and company)
   if necessary. For more information, refer to ./Documentation/Changes.

   Please note that you can still run a.out user programs with this kernel.

 - Do a "make bzImage" to create a compressed kernel image.  If you want
   to make a boot disk (without root filesystem or LILO), insert a floppy
   in your A: drive, and do a "make bzdisk".  It is also possible to do
   "make install" if you have lilo installed to suit the kernel makefiles,
   but you may want to check your particular lilo setup first.

   To do the actual install you have to be root, but none of the normal
   build should require that. Don't take the name of root in vain.

 - In the unlikely event that your system cannot boot bzImage kernels you
   can still compile your kernel as zImage. However, since zImage support
   will be removed at some point in the future in favor of bzImage we
   encourage people having problems with booting bzImage kernels to report
   these, with detailed hardware configuration information, to the
   linux-kernel mailing list and to H. Peter Anvin .

 - If you configured any of the parts of the kernel as `modules', you
   will have to do "make modules" followed by "make modules_install".
   Read Documentation/modules.txt for more information.  For example,
   an explanation of how to use the modules is included there.

 - Keep a backup kernel handy in case something goes wrong.  This is
   especially true for the development releases, since each new release
   contains new code which has not been debugged.  Make sure you keep a
   backup of the modules corresponding to that kernel, as well.  If you
   are installing a new kernel with the same version number as your
   working kernel, make a backup of your modules directory before you
   do a "make modules_install".

 - In order to boot your new kernel, you'll need to copy the kernel
   image (found in .../linux/arch/i386/boot/bzImage after compilation)
   to the place where your regular bootable kernel is found.

   For some, this is on a floppy disk, in which case you can copy the
   kernel bzImage file to /dev/fd0 to make a bootable floppy.

   If you boot Linux from the hard drive, chances are you use LILO which
   uses the kernel image as specified in the file /etc/lilo.conf.  The
   kernel image file is usually /vmlinuz, /boot/vmlinuz, /bzImage or
   /boot/bzImage.  To use the new kernel, save a copy of the old image
   and copy the new image over the old one.  Then, you MUST RERUN LILO
   to update the loading map!! If you don't, you won't be able to boot
   the new kernel image.

   Reinstalling LILO is usually a matter of running /sbin/lilo.
   You may wish to edit /etc/lilo.conf to specify an entry for your
   old kernel image (say, /vmlinux.old) in case the new one does not
   work.  See the LILO docs for more information.

   After reinstalling LILO, you should be all set.  Shutdown the system,
   reboot, and enjoy!

   If you ever need to change the default root device, video mode,
   ramdisk size, etc.  in the kernel image, use the 'rdev' program (or
   alternatively the LILO boot options when appropriate).  No need to
   recompile the kernel to change these parameters.

 - Reboot with the new kernel and enjoy.

IF SOMETHING GOES WRONG:

 - If you have problems that seem to be due to kernel bugs, please check
   the file MAINTAINERS to see if there is a particular person associated
   with the part of the kernel that you are having trouble with. If there
   isn't anyone listed there, then the second best thing is to mail
   them to me (torvalds@transmeta.com), and possibly to any other
   relevant mailing-list or to the newsgroup.  The mailing-lists are
   useful especially for SCSI and networking problems, as I can't test
   either of those personally anyway.

 - In all bug-reports, *please* tell what kernel you are talking about,
   how to duplicate the problem, and what your setup is (use your common
   sense).  If the problem is new, tell me so, and if the problem is
   old, please try to tell me when you first noticed it.

 - If the bug results in a message like

        unable to handle kernel paging request at address C0000010
        Oops: 0002
        EIP:   0010:XXXXXXXX
        eax: xxxxxxxx   ebx: xxxxxxxx   ecx: xxxxxxxx   edx: xxxxxxxx
        esi: xxxxxxxx   edi: xxxxxxxx   ebp: xxxxxxxx
        ds: xxxx  es: xxxx  fs: xxxx  gs: xxxx
        Pid: xx, process nr: xx
        xx xx xx xx xx xx xx xx xx xx

   or similar kernel debugging information on your screen or in your
   system log, please duplicate it *exactly*.  The dump may look
   incomprehensible to you, but it does contain information that may
   help debugging the problem.  The text above the dump is also
   important: it tells something about why the kernel dumped code (in
   the above example it's due to a bad kernel pointer). More information
   on making sense of the dump is in Documentation/oops-tracing.txt

 - You can use the "ksymoops" program to make sense of the dump.  This
   utility can be downloaded from
   ftp://ftp..kernel.org/pub/linux/utils/kernel/ksymoops.
   Alternately you can do the dump lookup by hand:

 - In debugging dumps like the above, it helps enormously if you can
   look up what the EIP value means.  The hex value as such doesn't help
   me or anybody else very much: it will depend on your particular
   kernel setup.  What you should do is take the hex value from the EIP
   line (ignore the "0010:"), and look it up in the kernel namelist to
   see which kernel function contains the offending address.

   To find out the kernel function name, you'll need to find the system
   binary associated with the kernel that exhibited the symptom.  This is
   the file 'linux/vmlinux'.  To extract the namelist and match it against
   the EIP from the kernel crash, do:

                nm vmlinux | sort | less

   This will give you a list of kernel addresses sorted in ascending
   order, from which it is simple to find the function that contains the
   offending address.  Note that the address given by the kernel
   debugging messages will not necessarily match exactly with the
   function addresses (in fact, that is very unlikely), so you can't
   just 'grep' the list: the list will, however, give you the starting
   point of each kernel function, so by looking for the function that
   has a starting address lower than the one you are searching for but
   is followed by a function with a higher address you will find the one
   you want.  In fact, it may be a good idea to include a bit of
   "context" in your problem report, giving a few lines around the
   interesting one.

   If you for some reason cannot do the above (you have a pre-compiled
   kernel image or similar), telling me as much about your setup as
   possible will help.

 - Alternately, you can use gdb on a running kernel. (read-only; i.e. you
   cannot change values or set break points.) To do this, first compile the
   kernel with -g; edit arch/i386/Makefile appropriately, then do a "make
   clean". You'll also need to enable CONFIG_PROC_FS (via "make config").

   After you've rebooted with the new kernel, do "gdb vmlinux /proc/kcore".
   You can now use all the usual gdb commands. The command to look up the
   point where your system crashed is "l *0xXXXXXXXX". (Replace the XXXes
   with the EIP value.)

   gdb'ing a non-running kernel currently fails because gdb (wrongly)
   disregards the starting offset for which the kernel is compiled.

[onlsbc1] /usr/src/linux-2.4 >

[onlsbc1] /usr/src/linux-2.4 > whoami
root
[onlsbc1] /usr/src/linux-2.4 >
[onlsbc1] /usr/src/linux-2.4 > pwd
/usr/src/linux-2.4
[onlsbc1] /usr/src/linux-2.4 > ls
COPYING          Makefile        configs  init    mm
COPYING.modules  README          crypto   ipc     net
CREDITS          REPORTING-BUGS  drivers  kdb     save
Documentation    Rules.make      fs       kernel  scripts
MAINTAINERS      arch            include  lib     tmp_include_depends
[onlsbc1] /usr/src/linux-2.4 >
[onlsbc1] /usr/src/linux-2.4 > make mrproper
make[1]: 入ります ディレクトリ `/usr/src/linux-2.4.21-32.0.1.EL.cern/arch/i386/b
oot'
rm -f tools/build
rm -f setup bootsect zImage compressed/vmlinux.out
rm -f bsetup bbootsect bzImage compressed/bvmlinux.out
make[2]: 入ります ディレクトリ `/usr/src/linux-2.4.21-32.0.1.EL.cern/arch/i386/b
oot/compressed'
rm -f vmlinux bvmlinux _tmp_*
make[2]: 出ます ディレクトリ `/usr/src/linux-2.4.21-32.0.1.EL.cern/arch/i386/boo
t/compressed'
make[1]: 出ます ディレクトリ `/usr/src/linux-2.4.21-32.0.1.EL.cern/arch/i386/boo
t'
find . \( -name '*.[oas]' -o -name core -o -name '.*.flags' \) -type f -print \
| grep -v lxdialog/ | xargs rm -f
rm -f kernel/ksyms.lst include/linux/compile.h vmlinux System.map .tmp* scripts/
mkconfigs kernel/configs.c kernel/configs.o drivers/char/consolemap_deftbl.c dri
vers/video/promcon_tbl.c drivers/char/conmakehash drivers/char/drm/*-mod.c drive
rs/pci/devlist.h drivers/pci/classlist.h drivers/pci/gen-devlist drivers/zorro/d
evlist.h drivers/zorro/gen-devlist drivers/sound/bin2hex drivers/sound/hex2hex d
rivers/atm/fore200e_mkfirm drivers/atm/{pca,sba}*{.bin,.bin1,.bin2} drivers/scsi
/aic7xxx/aicasm/aicasm drivers/scsi/aic7xxx/aicasm/aicasm_gram.c drivers/scsi/ai
c7xxx/aicasm/aicasm_gram.h drivers/scsi/aic7xxx/aicasm/aicasm_macro_gram.c drive
rs/scsi/aic7xxx/aicasm/aicasm_macro_gram.h drivers/scsi/aic7xxx/aicasm/aicasm_ma
cro_scan.c drivers/scsi/aic7xxx/aicasm/aicasm_scan.c drivers/scsi/aic7xxx/aicasm
/aicdb.h drivers/scsi/aic7xxx/aicasm/y.tab.h drivers/scsi/53c700_d.h net/khttpd/
make_times_h net/khttpd/times.h submenu*
rm -rf modules
make -C Documentation/DocBook clean
make[1]: 入ります ディレクトリ `/usr/src/linux-2.4.21-32.0.1.EL.cern/Documentati
on/DocBook'
rm -f core *~
rm -f wanbook.sgml z8530book.sgml mcabook.sgml videobook.sgml kernel-api.sgml pa
rportbook.sgml kernel-hacking.sgml kernel-locking.sgml via-audio.sgml mousedrive
rs.sgml sis900.sgml deviceiobook.sgml procfs-guide.sgml tulip-user.sgml journal-
api.sgml libata.sgml
rm -f  wanbook.dvi  z8530book.dvi  mcabook.dvi  videobook.dvi  kernel-api.dvi  p
arportbook.dvi  kernel-hacking.dvi  kernel-locking.dvi  via-audio.dvi  mousedriv
ers.dvi  sis900.dvi  deviceiobook.dvi  procfs-guide.dvi  tulip-user.dvi  journal
-api.dvi  libata.dvi  wanbook.aux  z8530book.aux  mcabook.aux  videobook.aux  ke
rnel-api.aux  parportbook.aux  kernel-hacking.aux  kernel-locking.aux  via-audio
.aux  mousedrivers.aux  sis900.aux  deviceiobook.aux  procfs-guide.aux  tulip-us
er.aux  journal-api.aux  libata.aux  wanbook.tex  z8530book.tex  mcabook.tex  vi
deobook.tex  kernel-api.tex  parportbook.tex  kernel-hacking.tex  kernel-locking
.tex  via-audio.tex  mousedrivers.tex  sis900.tex  deviceiobook.tex  procfs-guid
e.tex  tulip-user.tex  journal-api.tex  libata.tex  wanbook.log  z8530book.log
mcabook.log  videobook.log  kernel-api.log  parportbook.log  kernel-hacking.log
 kernel-locking.log  via-audio.log  mousedrivers.log  sis900.log  deviceiobook.l
og  procfs-guide.log  tulip-user.log  journal-api.log  libata.log  wanbook.out
z8530book.out  mcabook.out  videobook.out  kernel-api.out  parportbook.out  kern
el-hacking.out  kernel-locking.out  via-audio.out  mousedrivers.out  sis900.out
 deviceiobook.out  procfs-guide.out  tulip-user.out  journal-api.out  libata.out
rm -f  parport-share.png  parport-multi.png  parport-structure.png  parport-shar
e.eps  parport-multi.eps  parport-structure.eps
rm -f procfs_example.sgml
make[1]: 出ます ディレクトリ `/usr/src/linux-2.4.21-32.0.1.EL.cern/Documentation
/DocBook'
find . \( -size 0 -o -name .depend \) -type f -print | xargs rm -f
rm -f include/linux/autoconf.h include/linux/version.h tmp* drivers/net/hamradio
/soundmodem/sm_tbl_{afsk1200,afsk2666,fsk9600}.h drivers/net/hamradio/soundmodem
/sm_tbl_{hapn4800,psk4800}.h drivers/net/hamradio/soundmodem/sm_tbl_{afsk2400_7,
afsk2400_8}.h drivers/net/hamradio/soundmodem/gentbl drivers/sound/*_boot.h driv
ers/sound/.*.boot drivers/sound/msndinit.c drivers/sound/msndperm.c drivers/soun
d/pndsperm.c drivers/sound/pndspini.c drivers/atm/fore200e_*_fw.c drivers/atm/.f
ore200e_*.fw .version .config* config.in config.old scripts/tkparse scripts/kcon
fig.tk scripts/kconfig.tmp scripts/lxdialog/*.o scripts/lxdialog/lxdialog .menuc
onfig.log include/asm kdb/gen-kdb_cmds.c .hdepend scripts/mkdep scripts/split-in
clude scripts/docproc /usr/src/linux-2.4.21-32.0.1.EL.cern/include/linux/modvers
ions.h scripts/mkconfigs kernel/configs.c kernel/configs.o kernel.spec
rm -rf include/config /usr/src/linux-2.4.21-32.0.1.EL.cern/include/linux/modules
make -C Documentation/DocBook mrproper
make[1]: 入ります ディレクトリ `/usr/src/linux-2.4.21-32.0.1.EL.cern/Documentati
on/DocBook'
rm -f core *~
rm -f wanbook.sgml z8530book.sgml mcabook.sgml videobook.sgml kernel-api.sgml pa
rportbook.sgml kernel-hacking.sgml kernel-locking.sgml via-audio.sgml mousedrive
rs.sgml sis900.sgml deviceiobook.sgml procfs-guide.sgml tulip-user.sgml journal-
api.sgml libata.sgml
rm -f  wanbook.dvi  z8530book.dvi  mcabook.dvi  videobook.dvi  kernel-api.dvi  p
arportbook.dvi  kernel-hacking.dvi  kernel-locking.dvi  via-audio.dvi  mousedriv
ers.dvi  sis900.dvi  deviceiobook.dvi  procfs-guide.dvi  tulip-user.dvi  journal
-api.dvi  libata.dvi  wanbook.aux  z8530book.aux  mcabook.aux  videobook.aux  ke
rnel-api.aux  parportbook.aux  kernel-hacking.aux  kernel-locking.aux  via-audio
.aux  mousedrivers.aux  sis900.aux  deviceiobook.aux  procfs-guide.aux  tulip-us
er.aux  journal-api.aux  libata.aux  wanbook.tex  z8530book.tex  mcabook.tex  vi
deobook.tex  kernel-api.tex  parportbook.tex  kernel-hacking.tex  kernel-locking
.tex  via-audio.tex  mousedrivers.tex  sis900.tex  deviceiobook.tex  procfs-guid
e.tex  tulip-user.tex  journal-api.tex  libata.tex  wanbook.log  z8530book.log
mcabook.log  videobook.log  kernel-api.log  parportbook.log  kernel-hacking.log
 kernel-locking.log  via-audio.log  mousedrivers.log  sis900.log  deviceiobook.l
og  procfs-guide.log  tulip-user.log  journal-api.log  libata.log  wanbook.out
z8530book.out  mcabook.out  videobook.out  kernel-api.out  parportbook.out  kern
el-hacking.out  kernel-locking.out  via-audio.out  mousedrivers.out  sis900.out
 deviceiobook.out  procfs-guide.out  tulip-user.out  journal-api.out  libata.out
rm -f  parport-share.png  parport-multi.png  parport-structure.png  parport-shar
e.eps  parport-multi.eps  parport-structure.eps
rm -f procfs_example.sgml
rm -f  wanbook.ps  z8530book.ps  mcabook.ps  videobook.ps  kernel-api.ps  parpor
tbook.ps  kernel-hacking.ps  kernel-locking.ps  via-audio.ps  mousedrivers.ps  s
is900.ps  deviceiobook.ps  procfs-guide.ps  tulip-user.ps  journal-api.ps  libat
a.ps  wanbook.pdf  z8530book.pdf  mcabook.pdf  videobook.pdf  kernel-api.pdf  pa
rportbook.pdf  kernel-hacking.pdf  kernel-locking.pdf  via-audio.pdf  mousedrive
rs.pdf  sis900.pdf  deviceiobook.pdf  procfs-guide.pdf  tulip-user.pdf  journal-
api.pdf  libata.pdf
rm -f -r  wanbook  z8530book  mcabook  videobook  kernel-api  parportbook  kerne
l-hacking  kernel-locking  via-audio  mousedrivers  sis900  deviceiobook  procfs
-guide  tulip-user  journal-api  libata
rm -f .depend
rm -f /usr/src/linux-2.4.21-32.0.1.EL.cern/scripts/mkdep-docbook
rm -rf DBTOHTML_OUTPUT*
make[1]: 出ます ディレクトリ `/usr/src/linux-2.4.21-32.0.1.EL.cern/Documentation
/DocBook'
[onlsbc1] /usr/src/linux-2.4 >

[onlsbc1] /usr/src/linux-2.4 > ls -l /boot
合計 10876
lrwxrwxrwx    1 root     root           32  6月  9 16:10 System.map -> System.ma
p-2.4.21-32.0.1.EL.cern
-rw-r--r--    1 root     root       588925  5月 26 19:58 System.map-2.4.21-32.0.
1.EL.cern
-rw-r--r--    1 root     root       616462  5月 26 19:43 System.map-2.4.21-32.0.
1.EL.cernsmp
-rw-r--r--    1 root     root         5824 10月 26  2003 boot.b
-rw-r--r--    1 root     root          612 10月 26  2003 chain.b
-rw-r--r--    1 root     root        48843  5月 26 19:58 config-2.4.21-32.0.1.EL
.cern
-rw-r--r--    1 root     root        48958  5月 26 19:43 config-2.4.21-32.0.1.EL
.cernsmp
drwxr-xr-x    2 root     root         4096  6月  9 15:49 grub
-rw-r--r--    1 root     root       165902  6月  9 15:36 initrd-2.4.21-32.0.1.EL
.cern.img
-rw-r--r--    1 root     root       167317  6月  9 15:36 initrd-2.4.21-32.0.1.EL
.cernsmp.img
-rw-r--r--    1 root     root          543  6月  9 11:43 kernel.h
-rw-r--r--    1 root     root         9223  6月  9  2004 message
-rw-r--r--    1 root     root         9223  6月  9  2004 message.ja
-rw-r--r--    1 root     root          640 10月 26  2003 os2_d.b
-rwxr-xr-x    1 root     root      3032596  5月 26 19:58 vmlinux-2.4.21-32.0.1.E
L.cern
-rwxr-xr-x    1 root     root      3667668  5月 26 19:43 vmlinux-2.4.21-32.0.1.E
L.cernsmp
-rw-r--r--    1 root     root      1296668  5月 26 19:58 vmlinuz-2.4.21-32.0.1.E
L.cern
-rw-r--r--    1 root     root      1408875  5月 26 19:43 vmlinuz-2.4.21-32.0.1.E
L.cernsmp
[onlsbc1] /usr/src/linux-2.4 >
[onlsbc1] /usr/src/linux-2.4 > pwd
/usr/src/linux-2.4
[onlsbc1] /usr/src/linux-2.4 >
[onlsbc1] /usr/src/linux-2.4 > cp /boot/config-2.4.21-32.0.1.EL.cern .config
[onlsbc1] /usr/src/linux-2.4 >
[onlsbc1] /usr/src/linux-2.4 > ls -la
合計 360
drwxr-xr-x   18 root     root         4096  6月 10 09:37 .
drwxr-xr-x    5 root     root         4096  6月  9 15:17 ..
-rw-r--r--    1 root     root        48843  6月 10 09:37 .config
-rw-r--r--    1 root     root        18691  8月  3  2002 COPYING
-rw-r--r--    1 root     root        29940  5月 26 19:05 COPYING.modules
-rw-r--r--    1 root     root        80764  5月 26 18:51 CREDITS
drwxr-xr-x   32 root     root         4096  6月  9 14:19 Documentation
-rw-r--r--    1 root     root        45704  5月 26 18:51 MAINTAINERS
-rw-r--r--    1 root     root        20978  5月 26 19:05 Makefile
-rw-r--r--    1 root     root        14239  8月  3  2002 README
-rw-r--r--    1 root     root         2818  6月 13  2003 REPORTING-BUGS
-rw-r--r--    1 root     root         9528  5月 26 18:51 Rules.make
drwxr-xr-x   19 root     root         4096  6月  9 14:20 arch
drwxr-xr-x    2 root     root         4096  6月  9 14:20 configs
drwxr-xr-x    2 root     root         4096  6月 10 09:34 crypto
drwxr-xr-x   46 root     root         4096  6月 10 09:34 drivers
drwxr-xr-x   48 root     root         4096  6月 10 09:34 fs
drwxr-xr-x   27 root     root         4096  6月 10 09:34 include
drwxr-xr-x    2 root     root         4096  6月  9 14:21 init
drwxr-xr-x    2 root     root         4096  6月 10 09:34 ipc
drwxr-xr-x    3 root     root         4096  6月 10 09:34 kdb
drwxr-xr-x    2 root     root         4096  6月 10 09:34 kernel
drwxr-xr-x    4 root     root         4096  6月 10 09:34 lib
drwxr-xr-x    2 root     root         4096  6月 10 09:34 mm
drwxr-xr-x   32 root     root         4096  6月 10 09:34 net
drwxr-xr-x    2 root     root         4096  6月  9 14:21 save
drwxr-xr-x    4 root     root         4096  6月 10 09:34 scripts
[onlsbc1] /usr/src/linux-2.4 >


   (3-1).  カーネルの設定

        ディスクレスクライアント用のカーネルとして少なくとも設定すべきパラメータ
	は以下のとおりである。

	・「Code maturity level options」
             →「Prompt for development and/or incomplete code/drivers」( Y )

	・「Block devices」
	     →「Loopback device support」( Y )

	・「Block devices」
	     →「Network block device support」( Y )

	・「Networking options」
	     → 「Unix domain sockets」( Y )

	・「Networking options」
	     →「IP: kernel level autoconfiguration」( Y )

	・「Networking options」
	     →「IP: kernel level autoconfiguration」
	        → 「BOOTP support」( Y )
		   注. bootpを使う場合

	・「Networking options」
	     →「IP: kernel level autoconfiguration」
	        → 「RARP support」( Y )

	・「Network device support」
	     →「Ethernet(10 or 100Mbit)」
                →「EtherExpressPro/100 support」( Y )  
		   注. クライアントのNICのドライバ

        ・「Filesystems」
             →「Network File Systems」
                →「NFS filesystem support」( Y )

	・「Filesystems」
	     →「Network File Systems」
	        →「Root file system on NFS」 ( Y )

        ・「Filesystems」
             →「Network File Systems」
                → 「NFS server support」
                   → 「Provide NFSv3 server support」 ( Y )

	参考.
     	   必ずしも必要ではないが、クライアントからNFSでスワッ プを使いたい
	   場合には、パッチを当てる必要がある。 "Swapping via NFS for Linux"
	   からパッチを入手して、カーネルソースのディレクトリでパッチを当てる。

	参考記事:
           http://www.linuxforum.com/linux-network-boot/x542.htmlの
           "8.3. Swapping over NFS"

	# gunzip -c /usr/src/linux-2.2.14-nfs-swap.diff.gz |  patch -p1 -l -s

	   さらに、

	「Code maturity level options」
	    →「Prompt for development and/or incomplete code/drivers」 ( Y )

	「Networking options」
	    →「Swapping via network sockets (EXPERIMENTAL)」 ( Y )

	「Filesystems/Network File Systems」
	    →「Swapping via NFS (EXPERIMENTAL)」 ( Y )

	   のカーネル・パラメータを設定する。

	注.
           このパッチの入手先は以下のサイトである。
           Swapping via NFS for Linux:  http://nfs-swap.dot-heine.de/

	ここでは、NFSスワップは使わないで構築する。

	注.
	 サーバ側のマシンを使ってクライアント用のカーネルを構築する場合には、
	 ここで、サーバ用の .configファイルをセーブしておくこと。

	  # cp .config .config-server

	 今回はクライアントマシンを使ってクライアント用のカーネルを構築するので
	 .configファイルの扱いは気にする必要はない。

無用なトラブルを避けるために、クライアント用のカーネルではモジュールは 使わないで、全てカーネル内に収める。
再構築したカーネルを /bootディレクトリにコピーする。 [onlsbc1] /usr/src/linux-2.4 > pwd /usr/src/linux-2.4 [onlsbc1] /usr/src/linux-2.4 > ls -l /usr/src/linux-2.4/arch/i386/boot 合計 1628 -rw-r--r-- 1 root root 2833 8月 6 2001 Makefile -rwxr-xr-x 1 root root 512 6月 10 11:56 bbootsect -rw-r--r-- 1 root root 2448 6月 10 11:56 bbootsect.o -rw-r--r-- 1 root root 8727 6月 10 11:56 bbootsect.s -rw-r--r-- 1 root root 10623 11月 10 2001 bootsect.S -rwxr-xr-x 1 root root 4943 6月 10 11:56 bsetup -rw-r--r-- 1 root root 13868 6月 10 11:56 bsetup.o -rw-r--r-- 1 root root 53439 6月 10 11:56 bsetup.s -rw-r--r-- 1 root root 1451954 6月 10 11:57 bzImage drwxr-xr-x 2 root root 4096 6月 10 11:57 compressed -rw-r--r-- 1 root root 974 9月 15 2001 install.sh -rw-r--r-- 1 root root 29207 5月 26 18:51 setup.S drwxr-xr-x 2 root root 4096 6月 10 11:57 tools -rw-r--r-- 1 root root 39057 5月 26 18:51 video.S [onlsbc1] /usr/src/linux-2.4 > [onlsbc1] /usr/src/linux-2.4 > cp /usr/src/linux-2.4/arch/i386/boot/bzImage /boo t/vmlinuz-2.4.21-32.0.1.EL.cerncustom [onlsbc1] /usr/src/linux-2.4 > [onlsbc1] /usr/src/linux-2.4 > cp System.map /boot/System.map-2.4.21-32.0.1.EL.c erncustom [onlsbc1] /usr/src/linux-2.4 > initrd イメージを再構成する。 (4). SLC 3、Release 305 のインストール 最小構成のシステムをインストールする。 [onlsbc1] /home/inoue > whoami root [onlsbc1] /home/inoue > [onlsbc1] /home/inoue > /sbin/fdisk -l /dev/hda Disk /dev/hda: 100.0 GB, 100030242816 bytes 255 heads, 63 sectors/track, 12161 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス ブート 始点 終点 ブロック ID システム /dev/hda1 * 1 382 3068383+ 83 Linux /dev/hda2 383 1599 9775552+ 83 Linux /dev/hda3 1600 1965 2939895 83 Linux /dev/hda4 1966 12161 81899370 5 拡張領域 /dev/hda5 1966 2331 2939863+ 83 Linux /dev/hda6 2332 3548 9775521 83 Linux [onlsbc1] /home/inoue > [onlsbc1] /home/inoue > df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda6 9621848 6296096 2836976 69% / none 150868 0 150868 0% /dev/shm AFS 9000000 0 9000000 0% /afs [onlsbc1] /home/inoue > /dev/hda7 パーティションを作成して、そこに最小構成の Scientific Linux CERN 3 Release 305 をインストールする。 [onlsbc1] /home/inoue > /sbin/fdisk /dev/hda このディスクのシリンダ数は 12161 に設定されています。 間違いではないのですが、1024 を超えているため、以下の場合 に問題を生じうる事を確認しましょう: 1) ブート時に実行するソフトウェア (例. バージョンが古い LILO) 2) 別の OS のブートやパーティション作成ソフト (例. DOS FDISK, OS/2 FDISK) コマンド (m でヘルプ): m コマンドの動作 a ブート可能フラグをつける b bsd ディスクラベルを編集する c dos 互換フラグをつける d 領域を削除する l 既知の領域タイプをリスト表示する m このメニューを表示する n 新たに領域を作成する o 新たに空の DOS 領域テーブルを作成する p 領域テーブルを表示する q 変更を保存せずに終了する s 空の Sun ディスクラベルを作成する t 領域のシステム ID を変更する u 表示/項目ユニットを変更する v 領域テーブルを照合する w テーブルをディスクに書き込み、終了する x 特別な機能 (エキスパート専用) コマンド (m でヘルプ): p Disk /dev/hda: 100.0 GB, 100030242816 bytes 255 heads, 63 sectors/track, 12161 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス ブート 始点 終点 ブロック ID システム /dev/hda1 * 1 382 3068383+ 83 Linux /dev/hda2 383 1599 9775552+ 83 Linux /dev/hda3 1600 1965 2939895 83 Linux /dev/hda4 1966 12161 81899370 5 拡張領域 /dev/hda5 1966 2331 2939863+ 83 Linux /dev/hda6 2332 3548 9775521 83 Linux コマンド (m でヘルプ): n 最初 シリンダ (3549-12161, 初期値 3549): 初期値 3549 を使います 終点 シリンダ または +サイズ または +サイズM または +サイズK (3549-12161, 初期値 12161): +2000M コマンド (m でヘルプ): p Disk /dev/hda: 100.0 GB, 100030242816 bytes 255 heads, 63 sectors/track, 12161 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス ブート 始点 終点 ブロック ID システム /dev/hda1 * 1 382 3068383+ 83 Linux /dev/hda2 383 1599 9775552+ 83 Linux /dev/hda3 1600 1965 2939895 83 Linux /dev/hda4 1966 12161 81899370 5 拡張領域 /dev/hda5 1966 2331 2939863+ 83 Linux /dev/hda6 2332 3548 9775521 83 Linux /dev/hda7 3549 3792 1959898+ 83 Linux コマンド (m でヘルプ): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 警告: 領域テーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソース がビジー状態です。 カーネルはまだ古いテーブルを使っています。 新しいテーブルは次回リブート時に使えるようになるでしょう。 ディスクを同期させます。 [onlsbc1] /home/inoue > リブートする。 [onlsbc1] /home/inoue > reboot Broadcast message from root (pts/0) (Fri Jun 10 17:08:47 2005): The system is going down for reboot NOW! : : /dev/hda7パーティションにファイルシステムを作成する。 [onlsbc1] /home/inoue > /sbin/mke2fs -j /dev/hda7 mke2fs 1.32 (09-Nov-2002) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 245280 inodes, 489974 blocks 24498 blocks (5.00%) reserved for the super user First data block=0 15 block groups 32768 blocks per group, 32768 fragments per group 16352 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 27 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [onlsbc1] /home/inoue > Scientific Linux CERN 3 (SLC3) のインストーラの新しいバージョンのものを 入手し配置する。 [onlsbc1] /mnt > reboot Broadcast message from root (pts/0) (Mon Jun 13 08:45:58 2005): The system is going down for reboot NOW! : : ここでインストーラは起動する。 注:   使用言語の問い合わせは無かった。 Keyboard Type What type of keyboard do you have ? <=== "jp106" を選択し "ok" を選択して enter を押す。 Installation Method What type of media contains the packages to be installed ? <=== "HTTP" を選択し "ok" を選択して enter を押す。 Configure TCP/IP Please enter the IP configuration for this machine. Each item should be entered as an IP address in dotted-decimal notation ( for example, 1.2.3.4). <=== 以下の情報をセットし "ok" を選択して enter を押す。 IP address: 130.87.***.* Netmask: 255.255.***.* Default gateway (IP): 130.87.***.* Primary nameserver: 130.87.***.* HTTP Setup Please enter the following information: o the name or IP number of your server o the directory on that server containing Scientific Linux CERN for your architecture <=== 以下の情報をセットし "ok" を選択して enter を押す。 Web site name: linuxsoft.cern.ch SL directory: /cern/slc305/i386/ SL Welcome to SL! <=== "ok" を選択して enter を押す。 Mouse Selection Which model mouse is attached to this computer ? <=== 以下の情報をセットし "ok" を選択して enter を押す。 Logitech - MouseMan Wheel (USB) [*] Emulate 3 Buttons ? Installation Type What type of system would you like to install ? <=== "Custom" を選択し "ok" を選択して enter を押す。 Disk Partitioning Setup Automatic Partitioning sets partitions based on the selected installation type. You also can customize the partitions once they have been created. The manual disk partitioning tool, Disk Durid, allows you to create partitions in an interactive environment. You can set the file system types, mount points, partition size, and more. <=== "Disk Druid" を選択して Enter を押す。 Partitioning <=== "Device /dev/hda7" を選択し "Edit" を選択して Enter を押す。 Add Partition <=== "File System Options" を選択して Enter を押す。 File System Options Please choose how you would like to prepare the file system on this partition. <=== "Format as ext3" を選択し "OK" を選択して Enter を押す。 <=== "マウントポイント: /" を選択し "OK" を選択して Enter を押す。 参考: この時点で以下のように設定したことになる。 Mount Point: / Type: ext3 Device: /dev/hda7 Size: 1913 MB <=== "OK" を選択して Enter を押す。 Partitioning Warning The following warning exist with your requested partition scheme. You have not specified a swap partition. Although not strictly required in all cases, it will significantly improve performance for most installations. Would you like to continue with your requested partitioning scheme? <=== "Yes" を選択して Enter を押す。 Format Warning The following pre-existing partitions have been selected to be formated, destroying all data. Select 'Yes' to continue and format these partitions, or 'No' to go back and change these settings. /dev/hda7 ext3 / <=== "Yes" を選択して Enter を押す。 Boot Loader Configuration Which boot loader would you like to use ? <=== "Use GRUB Boot Loader" を選択し、"OK"を選択して Enter を押す。 Boot Loader Configuration A few system will need to pass special options to the kernel at boot time for the system to function properly. If you need to pass boot options to the kernel, enter them now. If you don't need any or aren't sure, leave this blank. <=== ブランクのままにして "OK" を選択して Enter を押す。 A boot loader password prevents users from passing arbitrary options to the kernel. For highest security, we recommended setting a password, but this is not nesessary for more casual users. <=== GRUBパスワードを使用しないにして "OK" を選択して Enter を押す。 The boot manager Red Hat uses can boot other operating systems as well. You need to tell me what partitions you would like to be able to boot and what label you want to use for each of them. <=== "Scientific Linux CERN /dev/hda7" を指定し "OK" を選択して Enter を 押す。 Where do you want to install the boot loader ? <=== "/dev/hda7 First sector of boot partition" を指定し "OK" を選択して Enter を押す。 Network Configuration for eth0 <=== 以下の設定をし、"OK" を選択し Enter を押す。 Network Device: eth0 [*] Activate on boot IP Address 130.87.***.* Netmask 255.255.***.* Miscellaneous Network Settings <=== 以下の設定をし、"OK" を選択し Enter を押す。 Gateway: 130.87.***.* Primary DNS: 130.87.***.* Secondary DNS: 130.87.**.* Tertiary DNS: 130.87.**.* Hostname Configuration If your system is part of a larger network where hostnames are assigned by DHCP, select automatically via DHCP. Otherwisw, select manually and enter in a hostname for your system. If you do not, your system will be known as 'localhost.' <=== "(*) manually onlsbc1.kek.jp" を設定をし、"OK" を選択し Enter を押す。 Firewall A firewall can help prevent unauthorized access to your computer from the outside world. Would you like to enable a firewall ? <=== "(*) enable firewall" を選択し、"OK" を選択し Enter を押す。 Language Support Choose additional languages that you would like to use on this system: <=== 以下のように設定し、"OK" を選択し Enter を押す。 [*] English (USA) [*] Japanese Default Language Choose the default language for this system: "Japanese" を選択し、"OK" を選択し Enter を押す。 Time Zone Selection What time zone are you located in ? <=== "Asia/Tokyo"を選択して "OK" を選択して Enter を押す。 Root Password Pick a root password. You must type it twice to ensure you know what it is and didn't make a mistake in typing. Remember that the root password is a critical part of system security ! Password: ******** Password (confirm): ******** ここでパッケージ情報の読み込みが始まる。 Package Group Selection Total install size: 697M <=== 何も選択しないで "OK" を選択して Enter を押す。 Installation to begin A complete log of your installation will be in /root/install.log after rebooting your system. You may want to keep this file for later reference. <=== "OK" を選択して Enter を押す。 インストールが開始される。 約40分で終了した。 Complete Congratulations, your SL installation is complete. Remove any installation media (diskettes or CD-ROMs) used during the installation process and press (Enter) to reboot your system. For information on Errata (updates and bug fixes), and on automatic system updates visit: http://cern.ch/linux/updates/ For infomation on using and configuring the system, visit: http://cern.ch/linux/scientific/docs/ For support information, visit: http://cern.ch/linux/support/ <=== "OK" を選択して Enter を押す。 インストールは正常に終了した。   注.    Scientific Linux CERN のインストーラは、起動用フロッピーディスク 作成を行わないので、必要ならば後で自分で作成すること。 "OK" を押すとインストーラは再起動する。 2.5"IDEハードディスク#2 の MBR にインストールしてある Fedora Core 3 の grub が起動する。 この時点では、今回インストールした Scientific Linux CERN 3 (SLC3) 用の起動項目がメニュー上に用意されていない。 "c"キーを押 してインタラクティブモードにする。 grubコマンドのプロンプトが表示された ら、以下のように入力して Scientific Linux を立ち上げる。 grub> root (hd0,6) Filesystem type is ext2fs, partition type 0x83 grub> kernel /boot/vmlinuz-2.4.21-32.0.1.EL.cern ro root=/dev/hda7 [Linux-bzImage, setup=0x1400, size=0x13b31c] grub> initrd /boot/initrd-2.4.21-32.0.1.EL.cern.img [Linux-initrd @ 0x12fb7000, 0x2880e bytes] grub> boot : : Scientific Linux CERN のシステムが立ち上がった。 root のアカウントでログ インする。  onlsun4[35]% ssh root@onlsbc1 Scientific Linux CERN Release 3.0.5 (SL) root@onlsbc1's password: [root@onlsbc1 root]# [root@onlsbc1 root]# df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda7 1929068 722704 1108372 40% / none 150868 0 150868 0% /dev/shm [root@onlsbc1 root]# ok. 正常にログインできた。 (5). インストール後の初期設定 ユーザのアカウントを登録する。 (5-1). ユーザの登録 toyoのアカウントを作成する。 [root@onlsbc1 root]# useradd toyo [root@onlsbc1 root]# [root@onlsbc1 root]# ls -l /etc/shadow -r-------- 1 root root 877 6月 13 10:10 /etc/shadow [root@onlsbc1 root]# [root@onlsbc1 root]# chmod u+w /etc/shadow [root@onlsbc1 root]# vi /etc/shadow : : [root@onlsbc1 root]# chmod u-w /etc/shadow [root@onlsbc1 root]# ls -l /etc/shadow -r-------- 1 root root 909 6月 13 10:11 /etc/shadow [root@onlsbc1 root]# toyo のアカウントでログインしてみる。 onlsun4[36]% ssh toyo@onlsbc1 Scientific Linux CERN Release 3.0.5 (SL) toyo@onlsbc1's password: [toyo@onlsbc1 toyo]$ ls -la 合計 32 drwx------ 2 toyo toyo 4096 6月 13 10:10 . drwxr-xr-x 3 root root 4096 6月 13 10:10 .. -rw-r--r-- 1 toyo toyo 24 6月 13 10:10 .bash_logout -rw-r--r-- 1 toyo toyo 191 6月 13 10:10 .bash_profile -rw-r--r-- 1 toyo toyo 124 6月 13 10:10 .bashrc -rw-r--r-- 1 toyo toyo 5542 6月 13 10:10 .canna -rw-r--r-- 1 toyo toyo 120 6月 13 10:10 .gtkrc [toyo@onlsbc1 toyo]$ [toyo@onlsbc1 toyo]$ df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda7 1929068 722752 1108324 40% / none 150868 0 150868 0% /dev/shm [toyo@onlsbc1 toyo]$ ok. 正常にログインできた。 (5-2). grubメニューの修正 Fedora Core 3 の grub.confファイルに Scientific Linux CERN 3 起動用の メニューを追加する。 [root@onlsbc1 toyo]# df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda7 1929068 722752 1108324 40% / none 150868 0 150868 0% /dev/shm [root@onlsbc1 toyo]# [root@onlsbc1 toyo]# mount -t ext3 /dev/hda1 /mnt [root@onlsbc1 toyo]# [root@onlsbc1 toyo]# df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda7 1929068 722752 1108324 40% / none 150868 0 150868 0% /dev/shm /dev/hda1 3020140 1632376 1234348 57% /mnt [root@onlsbc1 toyo]# [root@onlsbc1 toyo]# cd /mnt [root@onlsbc1 mnt]# cat etc/issue Fedora Core release 3 (Heidelberg) Kernel \r on an \m [root@onlsbc1 mnt]# [root@onlsbc1 grub]# pwd /mnt/boot/grub [root@onlsbc1 grub]# ls -l 合計 276 -rw-r--r-- 1 root root 82 12月 27 16:57 device.map -rw-r--r-- 1 root root 7956 12月 27 16:57 e2fs_stage1_5 -rw-r--r-- 1 root root 7684 12月 27 16:57 fat_stage1_5 -rw-r--r-- 1 root root 6996 12月 27 16:57 ffs_stage1_5 -rw------- 1 root root 1751 6月 9 16:58 grub.conf -rw-r--r-- 1 root root 7028 12月 27 16:57 iso9660_stage1_5 -rw-r--r-- 1 root root 8448 12月 27 16:57 jfs_stage1_5 lrwxrwxrwx 1 root root 11 12月 27 16:57 menu.lst -> ./grub.conf -rw-r--r-- 1 root root 7188 12月 27 16:57 minix_stage1_5 -rw-r--r-- 1 root root 9428 12月 27 16:57 reiserfs_stage1_5 -rw-r--r-- 1 root root 3194 10月 27 2004 splash.xpm.gz -rw-r--r-- 1 root root 512 12月 27 16:57 stage1 -rw-r--r-- 1 root root 103816 12月 27 16:57 stage2 -rw-r--r-- 1 root root 7272 12月 27 16:57 ufs2_stage1_5 -rw-r--r-- 1 root root 6612 12月 27 16:57 vstafs_stage1_5 -rw-r--r-- 1 root root 9308 12月 27 16:57 xfs_stage1_5 [root@onlsbc1 grub]# [root@onlsbc1 grub]# vi grub.conf : # title Minimum: Scientific Linux CERN 3、Release 305 (SLC3) (2.4.21-32.0.1.EL.cer n) root (hd0,6) kernel /boot/vmlinuz-2.4.21-32.0.1.EL.cern ro root=/dev/hda7 initrd /boot/initrd-2.4.21-32.0.1.EL.cern.img # : "grub.conf" 49L, 1980C written [root@onlsbc1 grub]# ここで一旦リブートしてみる。 [root@onlsbc1 grub]# reboot Broadcast message from root (pts/0) (Mon Jun 13 10:20:54 2005): The system is going down for reboot NOW! : : パワーオンの後に表示される grub のメニューに Minimum: Scientific Linux CERN 3, Release 305 起動用のメニューが表示された。 このメニューを選択す ると正常にシステムを起動できた。 これで、ディスクレス・クライアント用のカーネル再構築の準備ができた。 (5-3). パッケージの追加 クライアント用カーネルの再構築に必要なパッケージを追加インストールする。 クライアントマシン onlsbc1 の 2.5"IDEハードディスク#2 上の /dev/hda7パー ティションにインストールした Scientific Linux のシステムは、最小構成の システムをインストールしたので、カーネルソース等はインストールされていな い。 ここで追加インストールする。 [root@onlsbc1 toyo]# yum list installed | grep kernel openafs-kernel-source-0-1 100% |=========================| 8.9 kB 00:00 kernel-debuginfo-0-2.4.21 100% |=========================| 110 kB 00:01 kernel-debuginfo-0-2.4.21 100% |=========================| 129 kB 00:01 kernel-debuginfo-0-2.4.21 100% |=========================| 56 kB 00:00 kernel-utils-debuginfo-1- 100% |=========================| 5.5 kB 00:00 kernel i686 2.4.21-32.0.1.EL.cern db kernel-pcmcia-cs i386 1:3.1.31-13 db kernel-utils i386 1:2.4-8.37.12.cern.1 db [root@onlsbc1 toyo]# [root@onlsbc1 toyo]# which gcc /usr/bin/which: no gcc in (/usr/kerberos/sbin:/usr/kerberos/bin:/bin:/usr/bin:/u sr/local/bin:/usr/X11R6/bin:/home/toyo/bin) [root@onlsbc1 toyo]# [root@onlsbc1 toyo]# yum list installed | grep gcc libgcc i386 3.2.3-52 db [root@onlsbc1 toyo]# gcc をインストールする。 [root@onlsbc1 toyo]# yum install gcc Gathering header information file(s) from server(s) Server: SLC3 extras packages Server: SLC3 os packages Server: SLC3 updates packages Finding updated packages Downloading needed headers Resolving dependencies ...Dependencies resolved I will do the following: [install: gcc 3.2.3-52.i386] I will install/upgrade these to satisfy the dependencies: [deps: glibc-devel 2.3.2-95.33.i386] [deps: glibc-kernheaders 2.4-8.34.1.i386] [deps: glibc-headers 2.3.2-95.33.i386] [deps: cpp 3.2.3-52.i386] Is this ok [y/N]: y Downloading Packages Getting gcc-3.2.3-52.i386.rpm gcc-3.2.3-52.i386.rpm 100% |=========================| 4.4 MB 00:21 Getting glibc-devel-2.3.2-95.33.i386.rpm glibc-devel-2.3.2-95.33.i 100% |=========================| 1.9 MB 00:10 Getting glibc-kernheaders-2.4-8.34.1.i386.rpm glibc-kernheaders-2.4-8.3 100% |=========================| 822 kB 00:05 Getting glibc-headers-2.3.2-95.33.i386.rpm glibc-headers-2.3.2-95.33 100% |=========================| 518 kB 00:02 Getting cpp-3.2.3-52.i386.rpm cpp-3.2.3-52.i386.rpm 100% |=========================| 245 kB 00:01 Running test transaction: Test transaction complete, Success! cpp 100 % done 1/5 glibc-kernheaders 100 % done 2/5 glibc-headers 100 % done 3/5 glibc-devel 100 % done 4/5 gcc 100 % done 5/5 Installed: gcc 3.2.3-52.i386 Dep Installed: glibc-devel 2.3.2-95.33.i386 glibc-kernheaders 2.4-8.34.1.i386 g libc-headers 2.3.2-95.33.i386 cpp 3.2.3-52.i386 Transaction(s) Complete [root@onlsbc1 toyo]# [root@onlsbc1 toyo]# which gcc /usr/bin/gcc [root@onlsbc1 toyo]# [root@onlsbc1 toyo]# gcc -v /usr/lib/gcc-lib/i386-redhat-linux/3.2.3/specs から spec を読み込み中 コンフィグオプション: ../configure --prefix=/usr --mandir=/usr/share/man --infod ir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --w ith-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux スレッドモデル: posix gcc バージョン 3.2.3 20030502 (Red Hat Linux 3.2.3-52) [root@onlsbc1 toyo]# カーネルソースをインストールする。 [root@onlsbc1 toyo]# ls -l /usr/src 合計 0 [root@onlsbc1 toyo]# [root@onlsbc1 toyo]# yum install kernel-source Gathering header information file(s) from server(s) Server: SLC3 extras packages Server: SLC3 os packages Server: SLC3 updates packages Finding updated packages Downloading needed headers Resolving dependencies Dependencies resolved I will do the following: [install: kernel-source 2.4.21-32.0.1.EL.cern.i386] Is this ok [y/N]: y Downloading Packages Getting kernel-source-2.4.21-32.0.1.EL.cern.i386.rpm kernel-source-2.4.21-32.0 100% |=========================| 42 MB 03:14 Running test transaction: Test transaction complete, Success! kernel-source 100 % done 1/1 Installed: kernel-source 2.4.21-32.0.1.EL.cern.i386 Transaction(s) Complete [root@onlsbc1 toyo]# [root@onlsbc1 toyo]# ls -l /usr/src 合計 4 lrwxrwxrwx 1 root root 27 6月 13 11:17 linux-2.4 -> linux-2.4. 21-32.0.1.EL.cern drwxr-xr-x 18 root root 4096 6月 13 11:16 linux-2.4.21-32.0.1.EL. cern [root@onlsbc1 toyo]# [root@onlsbc1 toyo]# ls -laL /usr/src/linux-2.4 合計 1168 drwxr-xr-x 18 root root 4096 6月 13 11:16 . drwxr-xr-x 3 root root 4096 6月 13 11:17 .. -rw-r--r-- 1 root root 5939 5月 26 19:06 .depend -rw-r--r-- 1 root root 273076 5月 26 19:06 .hdepend -rw-r--r-- 1 root root 18691 8月 3 2002 COPYING -rw-r--r-- 1 root root 29940 5月 26 19:05 COPYING.modules -rw-r--r-- 1 root root 80764 5月 26 18:51 CREDITS drwxr-xr-x 32 root root 4096 6月 13 11:15 Documentation -rw-r--r-- 1 root root 45704 5月 26 18:51 MAINTAINERS -rw-r--r-- 1 root root 20978 5月 26 19:05 Makefile -rw-r--r-- 1 root root 14239 8月 3 2002 README -rw-r--r-- 1 root root 2818 6月 13 2003 REPORTING-BUGS -rw-r--r-- 1 root root 9528 5月 26 18:51 Rules.make drwxr-xr-x 19 root root 4096 6月 13 11:16 arch drwxr-xr-x 2 root root 4096 6月 13 11:16 configs drwxr-xr-x 2 root root 4096 6月 13 11:16 crypto drwxr-xr-x 46 root root 4096 6月 13 11:16 drivers drwxr-xr-x 48 root root 4096 6月 13 11:16 fs drwxr-xr-x 27 root root 4096 6月 13 11:16 include drwxr-xr-x 2 root root 4096 6月 13 11:16 init drwxr-xr-x 2 root root 4096 6月 13 11:16 ipc drwxr-xr-x 3 root root 4096 6月 13 11:16 kdb drwxr-xr-x 2 root root 4096 6月 13 11:16 kernel drwxr-xr-x 4 root root 4096 6月 13 11:16 lib drwxr-xr-x 2 root root 4096 6月 13 11:16 mm drwxr-xr-x 32 root root 4096 6月 13 11:16 net drwxr-xr-x 2 root root 4096 6月 13 11:16 save drwxr-xr-x 4 root root 4096 6月 13 11:16 scripts -rw-r--r-- 1 root root 585360 5月 26 19:07 tmp_include_depends [root@onlsbc1 toyo]# (6). クライアント用カーネルの構築(その2) ディスクレスシステムのクライアント用カーネルは、/dev/hda6パーティション にフルインストールしたシステム上で再構築した、カーネルを使用することに する。 そして、クライアント用のルートファイルシステムには、/dev/hda7 パーティションに最小構成でインストールしたシステムを利用することにする。 [root@onlsbc1 boot]# df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda7 1929068 1030280 800796 57% / none 150868 0 150868 0% /dev/shm [root@onlsbc1 boot]# [root@onlsbc1 boot]# mount -t ext3 /dev/hda6 /mnt [root@onlsbc1 boot]# [root@onlsbc1 boot]# df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda7 1929068 1030280 800796 57% / none 150868 0 150868 0% /dev/shm /dev/hda6 9621848 6298064 2835008 69% /mnt [root@onlsbc1 boot]# [root@onlsbc1 boot]# pwd /boot [root@onlsbc1 boot]# ls -l 合計 5068 lrwxrwxrwx 1 root root 32 6月 13 09:54 System.map -> System.ma p-2.4.21-32.0.1.EL.cern -rw-r--r-- 1 root root 588925 5月 26 19:58 System.map-2.4.21-32.0. 1.EL.cern -rw-r--r-- 1 root root 48843 5月 26 19:58 config-2.4.21-32.0.1.EL .cern drwxr-xr-x 2 root root 4096 6月 13 09:38 grub -rw-r--r-- 1 root root 164971 6月 13 09:18 initrd-2.4.21-32.0.1.EL .cern.img -rw-r--r-- 1 root root 543 6月 13 09:18 kernel.h -rw-r--r-- 1 root root 9223 6月 9 2004 message -rw-r--r-- 1 root root 9223 6月 9 2004 message.ja -rwxr-xr-x 1 root root 3032596 5月 26 19:58 vmlinux-2.4.21-32.0.1.E L.cern -rw-r--r-- 1 root root 1296668 5月 26 19:58 vmlinuz-2.4.21-32.0.1.E L.cern [root@onlsbc1 boot]# [root@onlsbc1 boot]# ls -lL /mnt/usr/src/linux-2.4/arch/i386/boot 合計 1628 -rw-r--r-- 1 root root 2833 8月 6 2001 Makefile -rwxr-xr-x 1 root root 512 6月 10 11:56 bbootsect -rw-r--r-- 1 root root 2448 6月 10 11:56 bbootsect.o -rw-r--r-- 1 root root 8727 6月 10 11:56 bbootsect.s -rw-r--r-- 1 root root 10623 11月 10 2001 bootsect.S -rwxr-xr-x 1 root root 4943 6月 10 11:56 bsetup -rw-r--r-- 1 root root 13868 6月 10 11:56 bsetup.o -rw-r--r-- 1 root root 53439 6月 10 11:56 bsetup.s -rw-r--r-- 1 root root 1451954 6月 10 11:57 bzImage drwxr-xr-x 2 root root 4096 6月 10 11:57 compressed -rw-r--r-- 1 root root 974 9月 15 2001 install.sh -rw-r--r-- 1 root root 29207 5月 26 18:51 setup.S drwxr-xr-x 2 root root 4096 6月 10 11:57 tools -rw-r--r-- 1 root root 39057 5月 26 18:51 video.S [root@onlsbc1 boot]# [root@onlsbc1 boot]# mv vmlinuz-2.4.21-32.0.1.EL.cern vmlinuz-2.4.21-32.0.1.EL.c ern-org [root@onlsbc1 boot]# [root@onlsbc1 boot]# cp /mnt/usr/src/linux-2.4/arch/i386/boot/bzImage vmlinuz-2. 4.21-32.0.1.EL.cern-DKL [root@onlsbc1 boot]# [root@onlsbc1 boot]# ln -s vmlinuz-2.4.21-32.0.1.EL.cern-DKL vmlinuz-2.4.21-32.0 .1.EL.cern [root@onlsbc1 boot]# [root@onlsbc1 boot]# ls /mnt/boot System.map initrd-2.4.21-32.0.1.EL.cernsmp.img System.map-2.4.21-32.0.1.EL.cern kernel.h System.map-2.4.21-32.0.1.EL.cerncustom message System.map-2.4.21-32.0.1.EL.cernsmp message.ja boot.b os2_d.b chain.b vmlinux-2.4.21-32.0.1.EL.cern config-2.4.21-32.0.1.EL.cern vmlinux-2.4.21-32.0.1.EL.cernsmp config-2.4.21-32.0.1.EL.cernsmp vmlinuz-2.4.21-32.0.1.EL.cern grub vmlinuz-2.4.21-32.0.1.EL.cerncustom initrd-2.4.21-32.0.1.EL.cern.img vmlinuz-2.4.21-32.0.1.EL.cernsmp initrd-2.4.21-32.0.1.EL.cerncustom.img [root@onlsbc1 boot]# pwd /boot [root@onlsbc1 boot]# ls System.map message System.map-2.4.21-32.0.1.EL.cern message.ja config-2.4.21-32.0.1.EL.cern vmlinux-2.4.21-32.0.1.EL.cern grub vmlinuz-2.4.21-32.0.1.EL.cern initrd-2.4.21-32.0.1.EL.cern.img vmlinuz-2.4.21-32.0.1.EL.cern-DKL kernel.h vmlinuz-2.4.21-32.0.1.EL.cern-org [root@onlsbc1 boot]# [root@onlsbc1 boot]# cp /mnt/boot/initrd-2.4.21-32.0.1.EL.cerncustom.img initrd- 2.4.21-32.0.1.EL.cern-DKL.img [root@onlsbc1 boot]# [root@onlsbc1 boot]# mv initrd-2.4.21-32.0.1.EL.cern.img initrd-2.4.21-32.0.1.EL.cern.img-org [root@onlsbc1 boot]# [root@onlsbc1 boot]# ln -s initrd-2.4.21-32.0.1.EL.cern-DKL.img initrd-2.4.21-32 .0.1.EL.cern.img [root@onlsbc1 boot]# [root@onlsbc1 boot]# vi grub/grub.conf : # title Minimum: Scientific Linux CERN 3、Release 305 (SLC3) (2.4.21-32.0.1.EL.cer n) root (hd0,6) kernel /boot/vmlinuz-2.4.21-32.0.1.EL.cern ro root=/dev/hda7 initrd /boot/initrd-2.4.21-32.0.1.EL.cern.img # : [root@onlsbc1 boot]# [root@onlsbc1 boot]# ls -l 合計 6660 lrwxrwxrwx 1 root root 32 6月 13 09:54 System.map -> System.ma p-2.4.21-32.0.1.EL.cern -rw-r--r-- 1 root root 588925 5月 26 19:58 System.map-2.4.21-32.0. 1.EL.cern -rw-r--r-- 1 root root 48843 5月 26 19:58 config-2.4.21-32.0.1.EL .cern drwxr-xr-x 2 root root 4096 6月 13 09:38 grub -rw-r--r-- 1 root root 164081 6月 13 16:49 initrd-2.4.21-32.0.1.EL .cern-DKL.img lrwxrwxrwx 1 root root 36 6月 13 16:55 initrd-2.4.21-32.0.1.EL .cern.img -> initrd-2.4.21-32.0.1.EL.cern-DKL.img -rw-r--r-- 1 root root 164971 6月 13 09:18 initrd-2.4.21-32.0.1.EL .cern.img-org -rw-r--r-- 1 root root 543 6月 13 09:18 kernel.h -rw-r--r-- 1 root root 9223 6月 9 2004 message -rw-r--r-- 1 root root 9223 6月 9 2004 message.ja -rwxr-xr-x 1 root root 3032596 5月 26 19:58 vmlinux-2.4.21-32.0.1.E L.cern lrwxrwxrwx 1 root root 33 6月 13 14:07 vmlinuz-2.4.21-32.0.1.E L.cern -> vmlinuz-2.4.21-32.0.1.EL.cern-DKL -rw-r--r-- 1 root root 1451954 6月 13 14:06 vmlinuz-2.4.21-32.0.1.E L.cern-DKL -rw-r--r-- 1 root root 1296668 5月 26 19:58 vmlinuz-2.4.21-32.0.1.E L.cern-org [root@onlsbc1 boot]# [root@onlsbc1 modules]# df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda7 1929068 1032056 799020 57% / none 150868 0 150868 0% /dev/shm /dev/hda6 9621848 6331120 2801952 70% /mnt [root@onlsbc1 modules]# [root@onlsbc1 modules]# pwd /lib/modules [root@onlsbc1 modules]# [root@onlsbc1 modules]# ls -l 合計 4 drwxr-xr-x 3 root root 4096 6月 13 09:18 2.4.21-32.0.1.EL.cern [root@onlsbc1 modules]# [root@onlsbc1 modules]# ls -l /mnt/lib/modules 合計 12 drwxr-xr-x 3 root root 4096 6月 9 11:44 2.4.21-32.0.1.EL.cern drwxr-xr-x 4 root root 4096 6月 13 14:46 2.4.21-32.0.1.EL.cerncu stom drwxr-xr-x 3 root root 4096 6月 9 11:46 2.4.21-32.0.1.EL.cernsm p [root@onlsbc1 modules]# [root@onlsbc1 modules]# cp -pRd /mnt/lib/modules/2.4.21-32.0.1.EL.cerncustom . [root@onlsbc1 modules]# [root@onlsbc1 modules]# ls -l 合計 8 drwxr-xr-x 3 root root 4096 6月 13 09:18 2.4.21-32.0.1.EL.cern drwxr-xr-x 4 root root 4096 6月 13 14:46 2.4.21-32.0.1.EL.cerncu stom [root@onlsbc1 modules]# リブートしてみる。 [root@onlsbc1 boot]# reboot Broadcast message from root (pts/0) (Mon Jun 13 17:15:10 2005): The system is going down for reboot NOW! : : ok. 正常に起動できた。  これで、ディスクレス・クライアント用の機能を持ったカーネルを構築できた。 (6-2). カーネルソースのコピー 最小構成の Scientific Linux のシステムにインストールしてあるカーネルソー スのディレクトリ下を全て削除する。 その後、フルインストールシステムの /usr/src下のファイルを全て、最小構成システムの /usr/src 下にコピーする。 [root@onlsbc1 src]# df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda7 1929068 1067344 763732 59% / none 150692 0 150692 0% /dev/shm [root@onlsbc1 src]# [root@onlsbc1 src]# pwd /usr/src [root@onlsbc1 src]# [root@onlsbc1 src]# ls -l 合計 4 lrwxrwxrwx 1 root root 27 6月 13 11:17 linux-2.4 -> linux-2.4. 21-32.0.1.EL.cern drwxr-xr-x 18 root root 4096 6月 13 13:46 linux-2.4.21-32.0.1.EL. cern [root@onlsbc1 src]# [root@onlsbc1 src]# rm -rf * [root@onlsbc1 src]# [root@onlsbc1 src]# ls -l 合計 0 [root@onlsbc1 src]# [root@onlsbc1 src]# mount -t ext3 /dev/hda6 /mnt [root@onlsbc1 src]# [root@onlsbc1 src]# df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda7 1929068 855112 975964 47% / none 150692 0 150692 0% /dev/shm /dev/hda6 9621848 6334512 2798560 70% /mnt [root@onlsbc1 src]# [root@onlsbc1 src]# ls -l /mnt/usr/src 合計 12 lrwxr-xr-x 1 root root 27 6月 9 14:22 linux-2.4 -> linux-2.4. 21-32.0.1.EL.cern drwxr-xr-x 18 root root 4096 6月 10 17:09 linux-2.4.21-32.0.1.EL. cern drwxr-xr-x 3 root root 4096 6月 9 15:17 openafs-kernel-1.2.11 drwxr-xr-x 7 root root 4096 6月 9 13:42 redhat [root@onlsbc1 src]# [root@onlsbc1 src]# cp -pRd /mnt/usr/src/* . [root@onlsbc1 src]# [root@onlsbc1 src]# ls -l 合計 12 lrwxrwxrwx 1 root root 27 6月 14 10:45 linux-2.4 -> linux-2.4. 21-32.0.1.EL.cern drwxr-xr-x 18 root root 4096 6月 10 17:09 linux-2.4.21-32.0.1.EL. cern drwxr-xr-x 3 root root 4096 6月 9 15:17 openafs-kernel-1.2.11 drwxr-xr-x 7 root root 4096 6月 9 13:42 redhat [root@onlsbc1 src]# [root@onlsbc1 src]# df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda7 1929068 1171280 659796 64% / none 150692 0 150692 0% /dev/shm /dev/hda6 9621848 6334512 2798560 70% /mnt [root@onlsbc1 src]# [root@onlsbc1 src]# umount /mnt [root@onlsbc1 src]# (6-3). カーネル、およびinitrd の修正 nfsrootデバイスを作成し、カーネルにその旨を認識させる。 NFSサーバ上のファイルシステムをルートデバイスとして使用するように設定を 変更する。 参考. "man initrd" より抜粋。 --->>> 参照開始 : また、 /linuxrc を用いる事によっても通常時ルートファイルシステムデバ イ ス を変更することができる。 /linuxrc を用いて、通常時ルートデバイスを変 更するためには、 /proc がマウントされていなければならない。 /proc が マ ウントされた後、 /linuxrc 実行時に proc ファイル /proc/sys/kernel/real- root-dev, /proc/sys/kernel/nfs-root-name, /proc/sys/kernel/nfs-root- addrs に書き込む事によって通常時ルートデバイスを変更する。 / (NFS では ない)物理的なルートデバイスの場合、 /linuxrc によって新しいルートファイ ル システムのデバイス番号が /proc/sys/kernel/real-root-dev に書き込まれ る事によって、ルートデバイスが変更される。 NFS ルートファイルシステムの 場合、 /linuxrc によって NFS の設定が /proc/sys/kernel/nfs-root-name と /proc/sys/kernel/nfs-root-addrs に書き込まれ、 さ ら に /proc/sys/ker- nel/real-root-dev に(疑似 NFS デバイスナンバーである) 0xff を書き込むこ とによってルートデバイスが変更される。例えば、次のシェルコマンドライ ン は通常時ルートデバイスを /dev/hdb1 に変更するはずである。 echo 0x365 >/proc/sys/kernel/real-root-dev ま た、NFS の場合、次のようなシェルコマンドラインはローカルネットワーク の 193.8.232.2 という IP アドレスを持つ NFS サーバの /var/nfsroot NFS ディレクトリを 193.8.232.7 という IP を持つ idefix という名前のシステム の通常時ルートデバイスとしてマウントするように変更するはずである。 echo /var/nfsroot >/proc/sys/kernel/nfs-root-name echo 193.8.232.2:193.8.232.7::255.255.255.0:idefix \ >/proc/sys/kernel/nfs-root-addrs echo 255 >/proc/sys/kernel/real-root-dev : <<<--- 参照終了 上で行った作業、 #echo 0x0100 > /proc/sys/kernel/real-root-dev echo 255 > /proc/sys/kernel/real-root-dev はルートデバイスの指定をRAMディスクからNFSディスクへの変更である。 [root@onlsbc1 boot]# ls -l /dev/ram0 brw-rw---- 1 root disk 1, 0 9月 3 2004 /dev/ram0 [root@onlsbc1 boot]# [root@onlsbc1 boot]# ls -l /dev/nfsroot brw-r--r-- 1 root root 0, 255 6月 14 13:54 /dev/nfsroot [root@onlsbc1 boot]# 続いて、サーバ側の設定を行う。 ---xxxx