Sunday, February 15, 2009

RHCE 02-15 随堂笔记

今天上午课内容好多,不过下午老师有事不来了就把所有内容都练了一遍,觉得已经比较熟练,总结一点点经验。错误出了很多,不过在老师的帮助下还是全部都解决了。
  • rpm的一点点常用指令选项
# rpm -q name -- 查看name是否安装
# rpm -qa name -- 在所有包中查看name是否安装
# rpm -qf /bin/more -- 查看more文件的依赖关系 (如本例中的/bin/more 包是依赖于util-linux-2.13-0.44.el5)
# rpm -ql -- 查看一个已经安装过的rpm包的详细资料
# rpm -qpl -- 查看一个没有安装的rpm包的详细资料
.....对于rpm的使用方法网上有很多文章介绍,这里不再赘述。
  • Linux内核模块 -- 即驱动
Linux 的内核模块存在于 /lib/modules/$(uname -r) -- "$(uname -r)" 是你现在所使用的内核名常量,相当于执行 uname -r 后把得到的内容加到 /lib/modules/$(uname -r) 的结果。
# lsmod 指令能够列出系统中存在的模块。
# modprobe dm_zero 指令能够安装"dm_zero模块"
# rmmod dm_zero 指令能够卸载"dm_zero模块"
# modinfo bluetooth 指令能够查看"bluetooth"模块的详细信息
模块能够从其他的匹配机器上复制过来使用。
  • 修复Linux启动错误的实验
这个实验可以自己自定义很多种不同的情况,毕竟现在创造出来问题解决掉比将来遇到问题解决不了要好很多。

1.删除/boot/initrd-2.6.18-8.el5xen.img 的映像文件并想办法修复(映像文件名称可能不一样,取决于你所用内核。)
解决方法:使用和本地系统同版本的光盘引导系统,在开机显示boot:那里输入linux rescue 并敲回车。
进入以后会给你一个很简陋的shell,再完成之后他会告诉你本地系统被挂在到哪个文件夹(似乎是/mnt/sysimages/什么什么),按照他的提示chroot到你本地系统中:
# chroot /mnt/sysimages/blabla/
这时你就有了执行本地操作系统里面程序的权限,相当于是用光盘引导进入了本地电脑中。
接下来自己建立一个映像文件:
# mkinitrd /boot/initrd-$(uname -r)xen.img $(uname -r)xen
这条命令有几点需要注意:
1.他于一般的命令不同,目标文件在前面也就是建立的影像文件会放到/boot 中。2.initrd-$(uname -r)xen.img 的解释同这篇文章第二部分。
3.本机系统内核必须与光盘系统内核完全匹配,不然是没办法生成的。
以上是通过光盘的方法进行修复,当然我们也可以借助网络的办法修复。
在开机的时候选择网络引导,进行配置引导进入另一台含有与本地系统同版本yum仓库的电脑。
同样在boot:里面输入rescue(这里需要在含有yum仓库电脑配置使支持在启动时进入rescue模式,比较复杂,没和老师学来,等学会再发)。
然后可能过程有点像是安装,但是其实最后会让你进入rescue模式的。
剩下的过程和光盘引导修复的方法一样,不再赘述。

2.错误的LABEL和grub.conf 配置文件
这个实验是当grub.conf 定义root目录时使用LABEL标签但系统中错误指定或者没有指定LABEL标签内容导致无法引导系统。
比如我们使用
# e2label /dev/VolGroup00/LogVol00 abc
错误的指定/dev/VolGroup00/LogVol00 到abc目录,但是abc目录并非系统主目录"/"
并且我们在grub.conf 中错误的配置了root=LABEL=abc 或者root=LABEL=/etc 一类的,总之root=后面的LABEL并非存在的标签或者标签定义到错误的根目录。
解决方法:首先用上例的办法引导并用chroot切换到本地系统。
然后使用
# more /etc/fstab
查看本地系统磁盘挂载情况
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
可以见得/dev/VolGroup00/LogVol00 是我的主目录对应的分区。
然后用
# e2label /dev/VolGroup00/LogVol00 /
指定主目录 "/" 指向分区/dev/VolGroup00/LogVol00
然后在/boot/grub/grub.conf 中修改对应的root值,可以修改成:
root=/dev/VolGroup00/LogVol00 或者
root=LABEL=/
这样系统就可以启动了。
需要注意的是,如果系统是因为LABEL指定错误目录名并且grub.conf 中root定义错误而无法启动时,就算是在开机grub选单中更改了root=/dev/VolGroup00/LogVol00 用绝对路径也是访问不了系统的。他会卡在磁盘检测的时候,这时候按照提示输入管理员密码进入一个简单shell然后用e2label 更改错误的标签并重启才可以进入系统。

3.删除了MBR中的grub信息导致的无法启动
为了达到这样的效果我们需要编写一小段代码:
#!/bin/bash
dd if=/dev/zero of=/dev/sda bs=1 count=446
这段代码的意思是用/dev/zero 这段空代码覆盖到/dev/sda 也就是硬盘开头的446kb长度的内容。换句话说就是把MBR中的内容擦掉了。
注意:count=446一定不能更改,超过446一点都可能会把有用硬盘数据抹掉。
把上面那段代码保存为任意文件名,然后用
# chmod +x 文件名
加入可执行权限,再用
# ./文件名
执行这段代码并重新启动,就会发现在GRUB选单部分黑屏不动了。
解决方法:用光盘或者网络引导进入rescue模式,获得shell。执行
# grub-install /dev/sda
后面的/dev/sda 根据硬盘类型而定,SATA硬盘就是sda,IDE硬盘就是hda,第二块硬盘就是hdb或者sdb。
重启后就又可以引导系统了。

这类的实验还需要做很多,grub.conf 的内容也需要完全背下来,如果想在RHCE中考得满分的话。
  • Linux在网络中的应用
这段内容由于我没有网络方面的基础,听得有点晕,主要就是说Linux操作系统可以很方便的作为DNS、DCHP、路由器的等实现对公司开销的减省。老师讲的功能是:
更改hostname
用hostname查看并更改本机的别名
添加虚拟网卡
用 ifconfig eth0:0 IP地址 可以定义一个名为eth0:0的网卡并且指定IP地址,重启消失。
为了让他重启生效需要以下的步骤:
# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ifcfg-eth0:0
# vi /ifcfg-eth0:0
删除掉其中的MAC地址那一行,改DEVICE=etho 的eth0为"ifcfg-" 后面接的那一部分,然后再自己定义一个IP地址就好了,格式为IPADDR=IP地址。
增加Linux路由器的功能
# vi /etc/sysctl.conf
更改net.ipv4.ip_forward = 0 的0 为1即可。
如果希望临时添加路由功能也可以利用/proc
# cat /proc/sys/net/ipv4/ip_forward
如果为0就表示没有开启,要开启不能编辑那个文件,需要echo进去:
# echo 1 > /proc/sys/net/ipv4/ip_forward
这样就好了,重启会失效。
为了让上面的命令配置立即生效的话需要用指令
# sysctl -p
  • 查看本机的caches
free命令可以查看到本机的caches,caches越大系统性能越好,如果想要把caches清空还是可以利用/proc
# echo 1 > /pro/sys/vm/drop_caches
这样系统caches就被drop掉了。
  • 学好mknod指令解决硬件问题
用mknod指令可以创建硬件设备文件,这个我没学好,+_+
  • vmstat只管查看系统性能情况
简单。
swapon -s 启用交换分区
这条命令和有些发行版的不太一样,需要-s 参数。
  • 查看用户登陆系统
uptime=w > who
  • tload查看系统负载
一样简单。
  • 对nfs和ftp在xen虚拟机安装时的认识
在网络安装的时候我们老容易犯错误,几乎都是把目录名称搞错。
在nfs使用的时候需要指定的目录名称是系统的绝对路径,比如/var/ftp/pub/rhel
而在ftp使用的时候需要指定的目录名称是系统的相对路径,也就是只用/pub/rhel就行了
而且在虚拟机已经启动了以后需要指定安装位置我们选择了ftp的话只用输入ftp的IP地址就行了,不能输入ftp:// 输了就会找不到地方的~~
好困=_=,明天开课了,祝愿我新学期能不那么辛苦~这周末再见!
Copyright © 2006 - 2009 iCNPunk.BlogSpot.COM All rights reserved By ZerOnenOreZ & Blogger
Template Designed By iCNPunk Fixed for IE7