TQ's BLOG

日志项目集成

Posted by TQ on 十月 11th, 2009

日志项目集成:

项目说明:多台Web服务用用LVS进行负载均衡,并且多台Web服务器的apache日志由独立一台日志服务器来记录到syslog日志中。(这里主要介绍如何使用syslog日志服务远程管理apache日志)

 

LVS:Linux Virtual Server Linux虚拟服务器

 

Web服务器

 

Web服务器

 

Web服务器

 

Web服务器

 

syslog日志服务器

 

用户访问网页

 

Web服务器 负载均衡

 

日志都存到syslog日志服务器

 

| logger

∵apache本身有一套日志系统,记录在/var/log/httpd/中。现在想用独立的一台syslog日志服务器记录apache日志信息。

∴用“管道”:| logger

 

 

在各台Web服务器设置:

上加-r参数,开启远程日志管理。

[root@vm5: ~]#vim /etc/sysconfig/syslog

—————————————————–前略———————————————————–

SYSLOGD_OPTIONS=”-m 0 -r -x“    注:-mMAC -r:开启远程日志      -x:不DNS

—————————————————–后略———————————————————–

 

apache的配置文件/etc/httpd/conf/httpd.conf中,增加| logger

[root@vm5: ~]#vim /etc/httpd/conf/httpd.conf

—————————————————–前略———————————————————–

# For a single logfile with access, agent, and referer information

# (Combined Logfile Format), use the following directive:

#

CustomLog logs/access_log combined

CustomLog “| logger -p info” combined

—————————————————–后略———————————————————–

此时,就可以在独立的syslog日志服务器上,查看到各台Web服务器的日志了!!!

日志管理

Posted by TQ on 十月 11th, 2009

日志服务:syslog

分为:kernel logger 内核日志;

system logger 系统日志。

[root@vm5: ~]#service syslog restart

Shutting down kernel logger: [ OK ]

Shutting down system logger: [ OK ]

Starting system logger: [ OK ]

Starting kernel logger: [ OK ]

查看内核日志用dmesg命令。

[root@vm5: ~]#dmesg

Linux version 2.6.18-8.el5 (brewbuilder@ls20-bc2-14.build.redhat.com) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Fri Jan 26 14:15:21 EST 2007

BIOS-provided physical RAM map:

BIOS-e820: 0000000000000000 – 000000000009f800 (usable)

BIOS-e820: 000000000009f800 – 00000000000a0000 (reserved)

BIOS-e820: 00000000000ca000 – 00000000000cc000 (reserved)

BIOS-e820: 00000000000dc000 – 0000000000100000 (reserved)

BIOS-e820: 0000000000100000 – 000000000fef0000 (usable)

BIOS-e820: 000000000fef0000 – 000000000feff000 (ACPI data)

BIOS-e820: 000000000feff000 – 000000000ff00000 (ACPI NVS)

BIOS-e820: 000000000ff00000 – 0000000010000000 (usable)

BIOS-e820: 00000000fec00000 – 00000000fec10000 (reserved)

BIOS-e820: 00000000fee00000 – 00000000fee01000 (reserved)

BIOS-e820: 00000000fffe0000 – 0000000100000000 (reserved)

0MB HIGHMEM available.

256MB LOWMEM available.

found SMP MP-table at 000f6cd0

Using x86 segment limits to approximate NX protection

On node 0 totalpages: 65536

DMA zone: 4096 pages, LIFO batch:0

Normal zone: 61440 pages, LIFO batch:15

DMI present.

Using APIC driver default

ACPI: RSDP (v000 PTLTD ) @ 0×000f6c60

ACPI: RSDT (v001 PTLTD RSDT 0×06040000 LTP 0×00000000) @ 0×0fefab5a

—————————————后面内容省略了,太多了—————————————

/var/log/:登录文件放置的目录。

/var/log/messages:是总管所有登录文件的文件(即:日志文件)。

syslog日志服务的配置文件:/etc/syslog.conf 。

[root@vm5: ~]#vim /etc/syslog.conf

# Log all kernel messages to the console.

# Logging much else clutters up the screen.

#kern.* /dev/console

# Log anything (except mail) of level info or higher.

# Don’t log private authentication messages!

*.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages

# The authpriv file has restricted access.

authpriv.* /var/log/secure

# Log all the mail messages in one place.

mail.* -/var/log/maillog

注:-表示异步磁盘数据,有用缓存。

# Log cron stuff

cron.* /var/log/cron

# Everybody gets emergency messages

*.emerg *

# Save news errors of level crit and higher in a special file.

uucp,news.crit /var/log/spooler

# Save boot messages also to boot.log

local7.* /var/log/boot.log

#

# INN

#

news.=crit /var/log/news/news.crit

news.=err /var/log/news/news.err

news.notice /var/log/news/news.notice

说明:

日志有:对象.等级

对象.

邮件mail.

内核kern.

打印lpr.

新闻组mark.

news.

安全security. 同于auth.

日志本身syslog.

用户user.

uucp.

用户自定义local0.

local7.

.等级

.debug 问题信息 (低级)

.info 正常信息

.notice 通知(友好提示)

.warning

.warn 警告信息

.err

.error 错误信息

.crit 应急信息

.alert 比warning更警告

.emerg

.panic 很紧急,不解决不行了

(高级)

news.=crit 就这一级的信息;不加“=”就从本级到最高级。

news.!crit “!”:取反,除了crit级的信息。

news.*;news.crit;news.err “;”:排除等一个“分号;”后的信息。

*.info;mail.none .none表示不记。

-/var/log/maillog 注:-表示异步磁盘数据,有用缓存。

日志可写到设备上:如:/dev/tty12

日志可写给用户:(三种)

⑴ “用户名”,如:root

⑵ @IP地址,如:@192.168.0.66 表示接收来自192.168.0.66发来的日志,要开启远程管理(加-r) (在客户端)

⑶ *,表示给所有用户。

开启日志服务的远程管理功能,在/etc/sysconfig/syslog文件中设置。

[root@vm5: ~]#vim /etc/sysconfig/syslog

# Options to syslogd

# -m 0 disables ‘MARK’ messages.

# -r enables logging from remote machines

# -x disables DNS lookups on messages recieved with -r

# See syslogd(8) for more details

SYSLOGD_OPTIONS=”-m 0 -r -x注:-mMAC -r:开启远程日志 -x:不DNS

# Options to klogd

# -2 prints all kernel oops messages twice; once for klogd to decode, and

# once for processing with ‘ksymoops’

# -x disables all klogd processing of oops messages entirely

# See klogd(8) for more details

KLOGD_OPTIONS=”-x”

#

SYSLOG_UMASK=077

# set this to a umask value to use for all log files as in umask(1).

# By default, all permissions are removed for “group” and “other”.

可以用ps aux | grep syslog 来查看是否开启“日志远程管理”功能。

[root@vm5: ~]#ps aux | grep syslog

root 4338 0.0 0.2 1688 576 ? Ss 05:00 0:00 syslogd -m 0 -r -x

root 4354 0.0 0.2 3884 680 pts/4 S+ 05:01 0:00 grep syslog

例:找本局域网内日志最多的机器。

[root@vm5: ~]#awk ‘{print $4}’ /var/log/messages | sort | uniq -c

297 10.0.4.4 sort:排序 –n:按数字排

413 localhost

1375 vm5

[root@vm5: ~]#awk ‘{print $4}’ /var/log/messages | uniq -c | sort -n

52 vm5 uniq:去除重复行 -c:计数

297 10.0.4.4

413 localhost

544 vm5

779 vm5

[root@vm5: ~]#awk ‘{print $4}’ /var/log/messages | sort | uniq -c | sort -n

297 10.0.4.4

413 localhost

1375 vm5

[root@vm5: ~]#awk ‘{print $4}’ /var/log/messages | sort | uniq -c | sort -nr

1375 vm5

413 localhost

297 10.0.4.4

[root@vm5: ~]#awk ‘{print $4}’ /var/log/messages | sort | uniq -c | sort -nr | head -1

1375 vm5

/etc/logrotate.d/下,是日志记录的信息。

[root@vm5: /etc/logrotate.d]#ls

acpid cups mgetty ppp rpm sa-update squid tux vsftpd.log

conman httpd named psacct samba setroubleshoot syslog up2date yum

[root@vm5: /etc/logrotate.d]#cat httpd

/var/log/httpd/*log {

missingok

notifempty

sharedscripts

postrotate

/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true

endscript

}

配置文件在/etc/logrotate.conf中,用来设置日志来如何记录。

[root@vm5: ~]#vim /etc/logrotate.conf

# see “man logrotate” for details

# rotate log files weekly

weekly

# keep 4 weeks worth of backlogs

rotate 4

# create new (empty) log files after rotating old ones

create

# uncomment this if you want your log files compressed

#compress

# RPM packages drop log rotation information into this directory

include /etc/logrotate.d

# no packages own wtmp — we’ll rotate them here

/var/log/wtmp {

monthly

create 0664 root utmp

rotate 1

}

# system-specific logs may be also be configured here.

在计划任务中有:/etc/cron.daily/logrotate文件。

[root@vm5: ~]#vim /etc/cron.daily/logrotate

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf

EXITVALUE=$?

if [ $EXITVALUE != 0 ]; then

/usr/bin/logger -t logrotate “ALERT exited abnormally with [$EXITVALUE]”

fi

exit 0

logger命令,常在脚本中用,使用脚本进入日志。

[root@vm5: ~]#logger -p local0.info “aaaaaa” 注:-p:加对象.级别

[root@vm5: ~]#tail -1 /var/log/messages

Feb 6 05:49:07 vm5 root: aaaaaa

用户名

[root@vm5: ~]#logger -p local.info -t abc “bbbbbb” 注:-t:加标签。

[root@vm5: ~]#tail -1 /var/log/messages

Feb 6 05:51:25 vm5 abc: bbbbbb

标签

日志相关:用iptables记日志。

-j后加LOG –log-level info

日志级别

例:

[root@vm5: ~]#iptables -A INPUT -s 192.168.0.0/24 -p tcp –dport 80 -j LOG –log-level info

[root@vm5: ~]#tail -1 /var/log/messages

Feb 6 05:54:02 vm5 kernel: ip_tables: (C) 2000-2006 Netfilter Core Team

对象名

∵iptables是由内核直接的,只是kernel对象。

∴iptables只能指定其级别。

USB引导盘制作

Posted by TQ on 十月 11th, 2009

USB引导盘制作

2008年2月20日

一、系统启动过程:

开机→初始化BIOS→→启动引导器bootloader→→装载内核kernel→→启动init

(GRUB)

l 第一步,初始化BIOS设置启动顺序等基本输入输出系统。

MBR:Master Boot Recorder主引导分区 (512字节,0柱面、0磁头、第1个扇区)

446字节MBC:主引导代码(找可引导分区)

64字节DPT:4个16字节的主分区信息

2字节:55AA(十六进制数)表示结束。

l 第二步,启动引导器bootloader

⑴ grub:/boot/grub/grub.conf配置文件

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE: You do not have a /boot partition. This means that

# all kernel and initrd paths are relative to /, eg.

# root (hd0,0)

# kernel /boot/vmlinuz-version ro root=/dev/sda1

# initrd /boot/initrd-version.img

#boot=/dev/sda

default=0

timeout=5

splashimage=(hd0,0)/boot/grub/splash.xpm.gz

hiddenmenu

title Red Hat Enterprise Linux Server (2.6.18-8.el5)

root (hd0,0)

注:hd0:第一个硬盘 , 0:第一个分区

hd0是由/boot/grub/device.map硬盘映射的。

kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet 安静:不显示selinux提示的错误信息等其它信息。

注:根分区为卷标为/的。

initrd /boot/initrd-2.6.18-8.el5.img

注:[root@vm5: /boot]#ls

config-2.6.18-8.el5 initrd-2.6.18-8.el5.img System.map-2.6.18-8.el5

grub symvers-2.6.18-8.el5.gz vmlinuz-2.6.18-8.el5

[root@vm5: /boot]#mkdir initrd

[root@vm5: /boot]#ls

config-2.6.18-8.el5 initrd symvers-2.6.18-8.el5.gz vmlinuz-2.6.18-8.el5

grub initrd-2.6.18-8.el5.img System.map-2.6.18-8.el5

[root@vm5: /boot]#gunzip < initrd-2.6.18-8.el5.img > initrd/initrd.img

[root@vm5: /boot]#cd initrd

[root@vm5: /boot/initrd]#ls

initrd.img

[root@vm5: /boot/initrd]#file initrd.img

initrd.img: ASCII cpio archive (SVR4 with no CRC)

[root@vm5: /boot/initrd]#cpio -iv < initrd.img

sys

lib

lib/mptspi.ko

lib/ext3.ko 载入:ext3驱动模块

lib/mptbase.ko

lib/sd_mod.ko 载入:sd驱动模块

lib/ohci-hcd.ko 载入:other芯片驱动模块

lib/jbd.ko

lib/mptscsih.ko

lib/ehci-hcd.ko 载入:USB2.0驱动模块

lib/uhci-hcd.ko 载入:USB1.1驱动模块

lib/scsi_mod.ko 载入:SCSI驱动模块

lib/scsi_transport_spi.ko

etc

proc

init

bin

bin/nash

bin/modprobe

bin/insmod

sysroot

dev

dev/mapper

dev/tty7

dev/tty3

dev/tty2

dev/tty0

dev/ttyS0

dev/tty6

dev/ram

dev/ram1

dev/rtc

dev/zero

dev/tty11

dev/ptmx

dev/tty

dev/tty5

dev/console

dev/tty10

dev/ttyS1

dev/tty1

dev/tty8

dev/tty4

dev/null

dev/tty9

dev/ram0

dev/tty12

dev/ttyS2

dev/systty

dev/ttyS3

sbin

6761 blocks

[root@vm5: /boot/initrd]#ls

bin dev etc init initrd.img lib proc sbin sys sysroot

[root@vm5: /boot/initrd]#vim init

#!/bin/nash

mount -t proc /proc /proc

setquiet

echo Mounting proc filesystem

echo Mounting sysfs filesystem

mount -t sysfs /sys /sys

echo Creating /dev

mount -o mode=0755 -t tmpfs /dev /dev

mkdir /dev/pts

mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts

mkdir /dev/shm

mkdir /dev/mapper

echo Creating initial device nodes

mknod /dev/null c 1 3

mknod /dev/zero c 1 5

mknod /dev/systty c 4 0

mknod /dev/tty c 5 0

mknod /dev/console c 5 1

mknod /dev/ptmx c 5 2

mknod /dev/rtc c 10 135

mknod /dev/tty0 c 4 0

mknod /dev/tty1 c 4 1

mknod /dev/tty2 c 4 2

mknod /dev/tty3 c 4 3

mknod /dev/tty4 c 4 4

mknod /dev/tty5 c 4 5

mknod /dev/tty6 c 4 6

mknod /dev/tty7 c 4 7

mknod /dev/tty8 c 4 8

mknod /dev/tty9 c 4 9

mknod /dev/tty10 c 4 10

mknod /dev/tty11 c 4 11

mknod /dev/tty12 c 4 12

mknod /dev/ttyS0 c 4 64

⑵ initrd:解决驱动问题(rd:run disk)

initrd /boot/initrd-2.6.18-8.el5.img

l 第三步,装载内核kernel

kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet

l 第四步,初始化init

/etc/inittab配置文件 →→初始化 /etc/rc.d/

#

# inittab This file describes how the INIT process should set up

# the system in a certain run-level.

#

# Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>

# Modified for RHS Linux by Marc Ewing and Donnie Barnes

#

# Default runlevel. The runlevels used by RHS are:

# 0 – halt (Do NOT set initdefault to this)

# 1 – Single user mode

# 2 – Multiuser, without NFS (The same as 3, if you do not have networking)

# 3 – Full multiuser mode

# 4 – unused

# 5 – X11

# 6 – reboot (Do NOT set initdefault to this)

#

id:3:initdefault: 设置默认的运行级别为:3

# System initialization.

si::sysinit:/etc/rc.d/rc.sysinit sysinit:一定要运行完后面的脚本,再继续运行后面,有错也不停(继续运行后面程序)

l0:0:wait:/etc/rc.d/rc 0 wait:等运行完后面脚本,再继续运行会面,有错就停。

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

# Trap CTRL-ALT-DELETE

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes

# of power left. Schedule a shutdown for 2 minutes from now.

# This does, of course, assume you have powerd installed and your

# UPS connected and working correctly.

pf::powerfail:/sbin/shutdown -f -h +2 “Power Failure; System Shutting Down”

# If power was restored before the shutdown kicked in, cancel it.

pr:12345:powerokwait:/sbin/shutdown -c “Power Restored; Shutdown Cancelled”

# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1 respawn:可重生

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5

x:5:respawn:/etc/X11/prefdm –nodaemon

/etc/inittab配置文件 →→初始化: /etc/rc.d/rc.sysinit 键盘、鼠标驱动

(5步) /etc/rc.d/rc 运行级别

/etc/rc.d/rc.local

系统环境配置

l 说明:

⑴ initrd先于kernel,如果kernel中有硬盘等驱动就不用initrd了。

RHEL5的kernel中没有硬盘驱动,所以得先initrd再装载kernel。

⑵ 当前模块配置文件在:/boot/config-2.6.18-8.el5中,同/usr/local/src/`uname -r`/.config文件

⑶ /boot/grub中,menu.lst -> ./grub.conf

⑷ 在第四步中,

/etc/inittab配置文件 →→初始化 /etc/rc.d/rc.sysinit 键盘、鼠标驱动

/etc/rc.d/rc 运行级别

/etc/rc.d/rc.local 系统环境配置

二、U盘引导制作方法、步骤:

⑴ 对U盘分区、格式化为EXT3文件系统并且加可引导。

[root@vm5: ~]#fdisk /dev/sdb

按a,加可引导。

[root@vm5: ~]#partprobe

[root@vm5: ~]#mke2fs -j /dev/sdb1

⑵ 安装目录树。

[root@vm5: /mnt/Server]#rpm -ivh –nodeps –force –root=/mnt/ filesystem-2.4.0-1.i386.rpm

⑶ 安装grub。

[root@vm5: /mnt/Server]#rpm -ivh –nodeps –force –root=/mnt/ grub-0.97-13.i386.rpm

⑶ 拷贝应用程序到U盘。注:不要覆盖刚刚生成的文件或目录。

[root@vm5: ~]#cp -rf /bin/* /mnt/bin/

[root@vm5: ~]#cp -rf /sbin/* /mnt/sbin/

[root@vm5: ~]#cp -rf /usr/bin/* /mnt/usr/bin/

[root@vm5: ~]#cp -rf /usr/sbin/* /mnt/usr/sbin/

⑷ 拷贝库文件到U盘。注:不要覆盖刚刚生成的文件或目录。

[root@vm5: ~]#cp -rf /lib/* /mnt/lib/

[root@vm5: ~]#cp -rf /usr/lib/* /mnt/usr/lib/ ←如果文件太大,可不拷

⑸ 拷贝/boot/*到U盘之后,在U盘中修改/mnt/boot/grub/grub.conf配置文件、修改/mnt/boot/grub/device.map硬盘映射文件等。

[root@vm5: ~]#cp -rf /boot/* /mnt/boot/

[root@vm5: /mnt]#vim boot/grub/grub.conf

改:default=0

timeout=5

hiddenmenu

title Red Hat Enterprise Linux Server USB LINUX (2.6.18-8.el5)

root (hd0,0)

kernel /boot/vmlinuz-2.6.18-8.el5 ro root=/dev/sdb1 init=/bin/bash

注:不能有多于的“空格”,否则,无法引导成功!

initrd /boot/initrd_usb.img

[root@vm5: /mnt]#vim boot/grub/device.map

写:(hd0) /dev/sdb

⑹ 创建设备文件。 块 主 从

[root@vm5: ~]#mknod /mnt/dev/sdb b 8 16

[root@vm5: ~]#mknod /mnt/dev/sdb1 b 8 17

说明:主设备号:用同一个驱动。

从设备号:记录分区号。

[root@vm5: /mnt/Server]#rpm -ivh kernel-doc-2.6.18-8.el5.noarch.rpm安装内核文档,查看/usr/share/doc/kernel-doc-2.6.18/Documentation/devices.txt文档来学习主设备号、从设备号等说明。

⑺ 加载驱动到initrd。 注:加载顺序不能错!

[root@vm5: ~]#mkinitrd –with=sd_mod –with=scsi_mod –with=uhci-mod –with=ehci-hcd –with=usb-storage /mnt/boot/ initrd_usb.img `uname -r`

说明:initrd_usb.img为U盘中/mnt/boot/grub/grub.conf配置文件中initrd /boot/initrd_usb.img 。

⑻ 拷贝/etc/fstab和/etc/mtab,并加以修改。

[root@vm5: ~]#cp /etc/fstab /mnt/etc/fstab

只写:/dev/sdb1 / ext3 defaults 1 1

[root@vm5: ~]#cp /etc/mtab /mnt/etc/mtab

只写:/dev/sdb1 / ext3 rw 0 0

⑼ 切换U盘/mnt/为/根分区。

[root@vm5: ~]#chroot /mnt

⑽ 重装sdb,修复MBR。

sh-3.1#grub-install /dev/sdb

sh-3.1#grub-install –recheck /dev/sdb

注:检测(也可不用)

至此,U盘引导盘制作完毕!用sync命令同步一下磁盘,重启系统。

改BIOS为USB-HDD为第一启动,即可用U盘引导Linux系统了!!!

USB引导盘制作

Posted by TQ on 十月 11th, 2009

USB引导盘制作

2008年2月20日

 

一、系统启动过程:

开机→初始化BIOS→→启动引导器bootloader→→装载内核kernel→→启动init

                                                     (GRUB)

                            

l        第一步,初始化BIOS设置启动顺序等基本输入输出系统。

MBR:Master Boot Recorder主引导分区 (512字节,0柱面、0磁头、第1个扇区)

446字节MBC:主引导代码(找可引导分区)

64字节DPT:4个16字节的主分区信息

2字节:55AA(十六进制数)表示结束。

 

 

l        第二步,启动引导器bootloader

⑴ grub:/boot/grub/grub.conf配置文件

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE:  You do not have a /boot partition.  This means that

#          all kernel and initrd paths are relative to /, eg.

#          root (hd0,0)

#          kernel /boot/vmlinuz-version ro root=/dev/sda1

#          initrd /boot/initrd-version.img

#boot=/dev/sda

default=0

timeout=5

splashimage=(hd0,0)/boot/grub/splash.xpm.gz

hiddenmenu

title Red Hat Enterprise Linux Server (2.6.18-8.el5)

        root (hd0,0)                              

        注:hd0:第一个硬盘 , 0:第一个分区

                hd0是由/boot/grub/device.map硬盘映射的。

       

kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet 安静:不显示selinux提示的错误信息等其它信息。

注:根分区为卷标为/的。

       

initrd /boot/initrd-2.6.18-8.el5.img

注:[root@vm5: /boot]#ls

config-2.6.18-8.el5  initrd-2.6.18-8.el5.img  System.map-2.6.18-8.el5

grub                 symvers-2.6.18-8.el5.gz  vmlinuz-2.6.18-8.el5

[root@vm5: /boot]#mkdir initrd

[root@vm5: /boot]#ls

config-2.6.18-8.el5  initrd                   symvers-2.6.18-8.el5.gz  vmlinuz-2.6.18-8.el5

grub                 initrd-2.6.18-8.el5.img  System.map-2.6.18-8.el5

[root@vm5: /boot]#gunzip < initrd-2.6.18-8.el5.img > initrd/initrd.img

[root@vm5: /boot]#cd initrd

[root@vm5: /boot/initrd]#ls

initrd.img

[root@vm5: /boot/initrd]#file initrd.img

initrd.img: ASCII cpio archive (SVR4 with no CRC)

[root@vm5: /boot/initrd]#cpio -iv < initrd.img

sys

lib

lib/mptspi.ko

lib/ext3.ko        载入:ext3驱动模块

lib/mptbase.ko                   

lib/sd_mod.ko          载入:sd驱动模块

lib/ohci-hcd.ko     载入:other芯片驱动模块

lib/jbd.ko

lib/mptscsih.ko

lib/ehci-hcd.ko         载入:USB2.0驱动模块

lib/uhci-hcd.ko     载入:USB1.1驱动模块

lib/scsi_mod.ko         载入:SCSI驱动模块

lib/scsi_transport_spi.ko

etc

proc

init

bin

bin/nash

bin/modprobe

bin/insmod

sysroot

dev

dev/mapper

dev/tty7

dev/tty3

dev/tty2

dev/tty0

dev/ttyS0

dev/tty6

dev/ram

dev/ram1

dev/rtc

dev/zero

dev/tty11

dev/ptmx

dev/tty

dev/tty5

dev/console

dev/tty10

dev/ttyS1

dev/tty1

dev/tty8

dev/tty4

dev/null

dev/tty9

dev/ram0

dev/tty12

dev/ttyS2

dev/systty

dev/ttyS3

sbin

6761 blocks

[root@vm5: /boot/initrd]#ls

bin  dev  etc  init  initrd.img  lib  proc  sbin  sys  sysroot

[root@vm5: /boot/initrd]#vim init

#!/bin/nash

 

mount -t proc /proc /proc

setquiet

echo Mounting proc filesystem

echo Mounting sysfs filesystem

mount -t sysfs /sys /sys

echo Creating /dev

mount -o mode=0755 -t tmpfs /dev /dev

mkdir /dev/pts

mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts

mkdir /dev/shm

mkdir /dev/mapper

echo Creating initial device nodes

mknod /dev/null c 1 3

mknod /dev/zero c 1 5

mknod /dev/systty c 4 0

mknod /dev/tty c 5 0

mknod /dev/console c 5 1

mknod /dev/ptmx c 5 2

mknod /dev/rtc c 10 135

mknod /dev/tty0 c 4 0

mknod /dev/tty1 c 4 1

mknod /dev/tty2 c 4 2

mknod /dev/tty3 c 4 3

mknod /dev/tty4 c 4 4

mknod /dev/tty5 c 4 5

mknod /dev/tty6 c 4 6

mknod /dev/tty7 c 4 7

mknod /dev/tty8 c 4 8

mknod /dev/tty9 c 4 9

mknod /dev/tty10 c 4 10

mknod /dev/tty11 c 4 11

mknod /dev/tty12 c 4 12

mknod /dev/ttyS0 c 4 64

 

⑵ initrd:解决驱动问题(rd:run disk)

   initrd /boot/initrd-2.6.18-8.el5.img

 

 

l        第三步,装载内核kernel

kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet

 

l        第四步,初始化init

/etc/inittab配置文件  →→初始化 /etc/rc.d/

#

# inittab       This file describes how the INIT process should set up

#               the system in a certain run-level.

#

# Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>

#               Modified for RHS Linux by Marc Ewing and Donnie Barnes

#

 

# Default runlevel. The runlevels used by RHS are:

#   0 – halt (Do NOT set initdefault to this)

#   1 – Single user mode

#   2 – Multiuser, without NFS (The same as 3, if you do not have networking)

#   3 – Full multiuser mode

#   4 – unused

#   5 – X11

#   6 – reboot (Do NOT set initdefault to this)

#

id:3:initdefault:                         设置默认的运行级别为:3

 

# System initialization.

si::sysinit:/etc/rc.d/rc.sysinit      sysinit:一定要运行完后面的脚本,再继续运行后面,有错也不停(继续运行后面程序)

 

l0:0:wait:/etc/rc.d/rc 0             wait:等运行完后面脚本,再继续运行会面,有错就停。

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

 

# Trap CTRL-ALT-DELETE

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

 

# When our UPS tells us power has failed, assume we have a few minutes

# of power left.  Schedule a shutdown for 2 minutes from now.

# This does, of course, assume you have powerd installed and your

# UPS connected and working correctly. 

pf::powerfail:/sbin/shutdown -f -h +2 “Power Failure; System Shutting Down”

 

# If power was restored before the shutdown kicked in, cancel it.

pr:12345:powerokwait:/sbin/shutdown -c “Power Restored; Shutdown Cancelled”

 

# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1                      respawn:可重生

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

 

 

# Run xdm in runlevel 5

x:5:respawn:/etc/X11/prefdm –nodaemon

 

 

/etc/inittab配置文件  →→初始化: /etc/rc.d/rc.sysinit  键盘、鼠标驱动

                      (5步)   /etc/rc.d/rc  运行级别

                                /etc/rc.d/rc.local 

                                                 系统环境配置

                                                                  

 

l        说明:

⑴    initrd先于kernel,如果kernel中有硬盘等驱动就不用initrd了。

RHEL5的kernel中没有硬盘驱动,所以得先initrd再装载kernel。

 

⑵ 当前模块配置文件在:/boot/config-2.6.18-8.el5中,同/usr/local/src/`uname -r`/.config文件

 

⑶ /boot/grub中,menu.lst -> ./grub.conf

 

⑷ 在第四步中,

/etc/inittab配置文件  →→初始化 /etc/rc.d/rc.sysinit  键盘、鼠标驱动

                              /etc/rc.d/rc  运行级别

                              /etc/rc.d/rc.local  系统环境配置

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

二、U盘引导制作方法、步骤:

⑴ 对U盘分区、格式化为EXT3文件系统并且加可引导。

[root@vm5: ~]#fdisk /dev/sdb

按a,加可引导。

[root@vm5: ~]#partprobe

[root@vm5: ~]#mke2fs -j /dev/sdb1

 

⑵ 安装目录树。

[root@vm5: /mnt/Server]#rpm -ivh –nodeps –force –root=/mnt/ filesystem-2.4.0-1.i386.rpm

 

⑶ 安装grub。

[root@vm5: /mnt/Server]#rpm -ivh –nodeps –force –root=/mnt/ grub-0.97-13.i386.rpm

 

⑶ 拷贝应用程序到U盘。注:不要覆盖刚刚生成的文件或目录。

[root@vm5: ~]#cp -rf /bin/* /mnt/bin/

[root@vm5: ~]#cp -rf /sbin/* /mnt/sbin/

[root@vm5: ~]#cp -rf /usr/bin/* /mnt/usr/bin/

[root@vm5: ~]#cp -rf /usr/sbin/* /mnt/usr/sbin/

 

⑷ 拷贝库文件到U盘。注:不要覆盖刚刚生成的文件或目录。

[root@vm5: ~]#cp -rf /lib/* /mnt/lib/

[root@vm5: ~]#cp -rf /usr/lib/* /mnt/usr/lib/        ←如果文件太大,可不拷

 

⑸ 拷贝/boot/*到U盘之后,在U盘中修改/mnt/boot/grub/grub.conf配置文件、修改/mnt/boot/grub/device.map硬盘映射文件等。

[root@vm5: ~]#cp -rf /boot/* /mnt/boot/

[root@vm5: /mnt]#vim boot/grub/grub.conf

改:default=0

timeout=5

hiddenmenu

title Red Hat Enterprise Linux Server  USB  LINUX  (2.6.18-8.el5)

        root (hd0,0)

        kernel /boot/vmlinuz-2.6.18-8.el5 ro root=/dev/sdb1 init=/bin/bash

        注:不能有多于的“空格”,否则,无法引导成功!

        initrd /boot/initrd_usb.img

[root@vm5: /mnt]#vim boot/grub/device.map

写:(hd0)    /dev/sdb

 

⑹ 创建设备文件。            块 主 从

[root@vm5: ~]#mknod /mnt/dev/sdb b 8 16

[root@vm5: ~]#mknod /mnt/dev/sdb1 b 8 17

说明:主设备号:用同一个驱动。

从设备号:记录分区号。

[root@vm5: /mnt/Server]#rpm -ivh kernel-doc-2.6.18-8.el5.noarch.rpm安装内核文档,查看/usr/share/doc/kernel-doc-2.6.18/Documentation/devices.txt文档来学习主设备号、从设备号等说明。

 

⑺ 加载驱动到initrd。 注:加载顺序不能错!

[root@vm5: ~]#mkinitrd –with=sd_mod –with=scsi_mod –with=uhci-mod –with=ehci-hcd –with=usb-storage /mnt/boot/ initrd_usb.img `uname -r`

说明:initrd_usb.img为U盘中/mnt/boot/grub/grub.conf配置文件中initrd /boot/initrd_usb.img 。

 

⑻ 拷贝/etc/fstab和/etc/mtab,并加以修改。

[root@vm5: ~]#cp /etc/fstab /mnt/etc/fstab

只写:/dev/sdb1   /   ext3  defaults   1 1

[root@vm5: ~]#cp /etc/mtab /mnt/etc/mtab

只写:/dev/sdb1   /   ext3   rw  0 0

 

⑼ 切换U盘/mnt/为/根分区。

[root@vm5: ~]#chroot /mnt

 

⑽ 重装sdb,修复MBR。

sh-3.1#grub-install /dev/sdb

sh-3.1#grub-install –recheck /dev/sdb

              注:检测(也可不用)

 

至此,U盘引导盘制作完毕!用sync命令同步一下磁盘,重启系统。

改BIOS为USB-HDD为第一启动,即可用U盘引导Linux系统了!!!

使用sqlloader导入数据

Posted by TQ on 九月 26th, 2009

Read the rest of this entry »


Copyright © 2009 TQ 试用 WP. All rights reserved.