Lab1硬件和安装
步骤一:准备计算机
任务:使用RedHatLinux光盘启动系统
在启动时进入BIOS界面
设置系统启动顺序为A,CDROM,C
修改其他任何推荐的设置
保存并退出BIOS设置
步骤二:使用Anaconda(图形模式)安装RedHatLinux
任务:按照以下要求从光盘安装RedHatLinux。注意,要初始化图形安装界面可能需要等待一两分钟。
l使用检测到的鼠标配置(除非老师另有指定)
l选择全新安装
l使用定制安装选项
l选择使用DiskDruid手动分区,删除所有原有的分区
l使用以下分区方案:
n/boot100M
n/256M
n/usr1000M
nswap512M
n/var400M
l格式化所有分区,但是不选择检查坏块
l使用默认的启动加载器设置(除非老师另有指定),不创建启动加载器密码
l为网络设置选择DHCP,选择启动时激活
l使用默认防火墙配置
l选择适当的语言支持
l设置对应的时区,根据老师的指示设置UTC
l设置根密码为redhat
l启用MD5和shaow密码模式(默认验证设置)
l选择安装Xwindow,不选任何其他组件
l切换到tty5查看文件系统格式化的过程(使用Ctrl-Alt-5,用Alt-7切换回安装向导)
l创建启动软盘可选
l使用检测到的显示器和图形卡设置(除非老师另有指定)
l配置使用图形界面登录
l在安装结束后重启,完成初始化设置,不注册RedHatNetwork
安装结束后启动系统,以root帐号登录,并检查以下文件:
l/var/log/messages
l/var/log/dmesg
以上安装的系统使用twm视窗管理器。通过后续的实验,我们将安装更多的软件包,实现功能的扩展和界面的美观
步骤三:使用NFS,FTP或HTTP安装RedHatLinux
任务:破坏现有的系统,重新安装RedHatLinux。事先准备安装光盘1或从老师那里得到启动的介质。
破坏现有系统:
cat/var/log/messages>/dev/hda;reboot
cat/var/log/messages>/dev/sda;reboot
重启后使用启动介质启动,按照以下要求安装(由于已经覆盖了分区表,系统将警告没有找到分区表,必须重新初始化)
1.使用CD启动
2.在boot提示下回车
3.选择对应的语言(English)
4.在OK提示下回车
5.选择对应的键盘(US)
6.在OK提示下回车
7.选择对应的安装方式(NFS镜像,FTP,HTTP)
8.配置TCP/IP,选择使用动态IP配置(BOOTP/DHCP)
9.在OK提示下回车
10.根据选择的安装方式输入对应的信息:
FTP方式
FTP站点名称:192.168.0.254
RedHat目录:pub/
HTTP方式
Web站点名称:192.168.0.254
RedHat目录:pub/
NFS方式
NFS服务器名:192.168.0.254
NFS加载点:/var/ftp/pub
11.这时Anaconda会读取安装镜像并检测显示器和鼠标的类型,显示欢迎界面
12.选择定制安装
13.使用diskdruid分区。使用以下分区方案:
/boot100M
/2000M
swap512M
/home3×256MRAID0
14.启动加载器,时区,图形,防火墙和验证方式都是用默认设置,除非教师指定
15.设置适当的语言
16.设置root密码为redhat
17.安装默认的软件包
*指南中的分区方案非常重要,否则可能出现意料外的结果。
Lab2Linux文件系统
目标:熟悉文件系统相关知识和技能
步骤一:创建和加载文件系统
任务:
1.使用fdisk–l得到ev/hda的分区尺寸信息。计算硬盘上没有分区的空间尺寸
2.使用fdisk新增一个512M的逻辑分区(使用w命令将改动写入磁盘)。这个新分区的设备名是/dev/had_?为什么?
3.重启以确定改动后的分区表被读入
4.使用mke2fs,在新建的分区上创建一个新的ext2文件系统。创建时使用2k的块,每4k一个inode的设置。可能需要查看mke2fs的manpage
5.创建目录/data,作为该文件系统的加载点
6.使用mount命令把新文件系统加载到/data。把/etc/passwd复制到/data,检查确认复制成功
7.Umount/data
8.使用e2label为新分区指定卷标:
e2label/dev/hdax/datax是新创建分区的序号
9.在/etc/fstab文件中为加载/data加入以下行:
LABEL=/data/dataext2defaults12
或者
/dev/hdax/dataext2defaults12
以上两行的实际效果相同。但是,如果更换了硬盘的总线或者是更改了主从的顺序,在fstab中使用卷标仍然可以定位这个设备
10.加载新的分区
mount/data
11.复制文件或使用touch创建文件
步骤二:把ext2转换为ext3
1.键入sync。这个命令把磁盘缓存信息写入磁盘。通常这个命令是定期执行的,但是以下步骤可能会先占自动同步。
2.使用reset键重启动,或者使用电源开关关闭再打开(正常情况下不要这样)
3.如果出现Repairfilesystem的提示,尝试使用e2fsck/dev/hdx修复文件系统
4.成功启动后,通过创建journalinginode日志把ext2文件系统转换为ext3。因为ext3的数据完整性和文件系统完整性大大增强了,所以可以把自动预加载(pre-mount)基于时间的定期文件系统检查。
Tune2fs–j–c0–i0/dev/<partition>
5.检查文件系统的characteristics
tune2fs–l/dev/<partition>
6.编辑/etc/fstab/data的相关行,把文件系统由etx2更改为ext3
7.卸载并用ext3重新加载文件系统,确认使用了ext3:
umount/data;mount/data
df–T/data
8.确认/boot下初始的虚拟盘镜像中包含了必要的ext3模块和jbd日志模块。如果/data是你的机器上的第一个ext3文件系统,很可能initrd中并不包含这些模块。这种情况只当我们需要ext3的支持而在initrd中又不包括相关的模块时非常重要。假设出现了这种情况,我们可以制作一个/boot/initrd-<version>.img文件:
mkinitrd–f–v/boot/initrd-$(uname–r).img$(uname–r)
9.键入sync,然后手动重启动系统。
10.观察启动过程。系统检查了哪个文件系统?在/data文件系统,是否看到了recoveringjournal提示信息?当不正常重启时,使用ext3的日志恢复是否比ext2的fsck快了?
步骤三:使用autofs自动加载系统
1.确认iptables已经关闭
2.编辑/etc/auto.master文件,去掉对/misc一行的注释
3.在/etc/auto.misc文件中增加一行,用于加载server1.example.com的/var/ftp/pub目录到本机的目的/server1.可以参考ftp.example.com行的示例.
4.重启autofs服务serviceautofsrestart
5.测试/misc/server1目录
Lab3管理启动
目标:定制系统服务的技巧
步骤一:使用chkconfig禁用服务
1.使用chkconfig检查系统服务的状态:chkconfig--list
2.使用以下示例将isdn在所有runlevel关闭
chkconfig--del<servicename>
3.使用--help查看chkconfig语法信息chkconfig--help.关闭runlevel3和runlevel5的kudzu服务
4.观察on和--add的差异,off和--de的差异
chkconfigisdn--list
chkconfigisdnon
chkconfigisdn--list
chkconfigisdnoff
chkconfigisdn--list
chkconfigisdn--del
chkconfigisdn--list
chkconfigisdn--add
chkconfigisdn--list
5.使用chkconfig查看系统服务的状态和改变状态
步骤二:更改系统登录标题
1.我们将设置rc.local脚本用于每次重启时出现登录标题.打开/etc/rc.local文件找到以下行:
touch/var/lock/subsys/local
2.在后面插入以下行:
echoWelcometo\n>/etc/issue
echoAllaccesstothiscomputerismonitored>>/etc/issue
echoUnauthorizedaccessisprohibited>>/etc/issue
echo>>/etc/issue
echoLastrebootcompleteat$(/bin/date)>>/etc/issue
3.保存文件,把/etc/issue复制为/etc/issue.orig
4.重启动系统
5.当系统启动后,切换到虚拟控制台确认登录标题出现了.打开/etc/issue,注意mingetty把\n扩展为你的主机名
步骤三:更改默认runlevel
1.编辑/etc/inittab文件,将默认runlevel从5改为3,如下:
id:3:initdefault:
2.重启动系统.发生了什么?
3.把默认runlevel改为5,重启动系统
步骤四:增加当天的消息
1.编辑/etc/motd文件,默认应为空.增加以下行:
##################################
#Welcometostationxx#
##################################
<date>Thesysadminisplayingtoday.
Expectfrequentsystemdowntime.
2.切换到虚拟控制台登录.
Lab4用户和组管理
目标:用户和组管理的技巧
步骤一:创建用户和组
1.使用useradd命令,为以下用户创建帐号:Joshua,alex,dax,bryan,zak,ed,manager.为每个用户设置一个密码.
2.使用groupadd命令,增加以下组:并使用–g选项设定对应的GID
groupgid
sales10000
hr10001
web10002
为什么不用系统默认的gid?
3.使用usermod命令把joshua和alex增加到sales组,dax和bryan到hr组,zak和ed到web组.把manager加入所有组.使用–G选项.
4.用各帐户登录,使用id命令确认组成员身份.还有什么方法可以确认?
步骤二:设置共享文件夹
1.创建/depts目录,在目录下创建sales,hr,web文件夹
mkdir–p/depts./{sales,hr,web}
2.使用chgrp命令设置对应组拥有对应文件夹
chgrpsales/depts/sales
3.设置/depts目录的权限为755,子文件夹的权限为770
4.设置各部门的子文件夹的sgid,使得创建的文件所有权为对应的组
shmodg+s/depts/sales
5.使用各个帐号登录,并在对应位置创建文件,检查效果.只有manager可以进入所有的目录.也可以使用su-命令,但是要加上-,并且su下一个帐户之前要退出前一个帐户.
步骤三:设置磁盘配额
1.创建名为filehog的帐户,并设置用户在/home目录有60个inode的软限制和100个inode的硬限制.使用以下命令测试,要使用su-命令,否则会失败.
su–filehog
quota
forIin$(seq1100);doecho–nfile$(i);touchfile$(i)2>&1;done|less
quota
quota命令会报告当前的限制和已经使用的inode.使用循环的目的是创建100个文件.因为当创建用户filehog的时候需要从/etc/skel复制一些文件,所以创建100个文件的命令将不会成功.
如果quota设置成功,你会看到一系列反馈的数字直到达到软限制的数目.超过限制后,会看到一个警告,但是命令仍然能够执行.达到硬限制后,将得到出错信息,而且不能再创建任何文件.可以用<shift><PageUp>回滚检查输出,并且用ls命令查看filehog的主目录.
2.创建一个名为diskhog的用户,设置用户在/home目录的软限制为4MB,硬限制为5MB,使用以下命令测试
su–diskhog
quota
ddif=/dev/zeroof=bigfilecount=3#将成功
ddif=/dev/zeroof=bigfilecount=4#将成功
ddif=/dev/zeroof=bigfilecount=5#将失败
观察quota命令的输出.注意当超出inode软限制和block软限制的输出差别.达到inode软限制时用户得到警告,而达到block软限制时是不同的.
步骤四:客户端NIS
1.使用authconfig配置系统为NIS客户.设置notexample为NIS域名,服务器为192.168.0.254
2.试用guest200x为帐号从虚拟控制台登录,x为座位编号.发生了什么?如果登录失败,检查设置.如果还有问题,确认教师机的设置正确.当验证成功后,你将看到shell的目录为/.因为没有在本地创建帐号,所以没有主目录.当用户帐户使用目录服务的时候会出现这种情况,无论是NIS,LDAP还是SMB
3.使用autofs解决主目录问题.用户主目录位于server1.example.com,我们可以加载基于NFS的共享来提供用户环境.首先编辑/etc/auto.master,增加以下行
/home/guests/etc/auto.guests--timeout=60
这条记录告诉自动加载器(内核模块之一)/home/guests由它控制.所有相关的加载设置保存在/etc/auto.guests文件中,而且如果60秒内没有活动就自动卸载.
4.创建并编辑/etc/auto.guests文件.增加以下行:
*-rw,soft,intr192.168.0.254:/home/guests/&
这条记录指明在目录下的所有子目录都配置为从192.168.0.254:/home/guests下的相应目录加载,并且设为:读写,如果加载不成功就返回超时,并且在加载不可用时仍允许进程访问文件.
5.配置autofs在runlevel3,4,5时运行,并手动启动:
chkconfigautofson
serviceautofsstart
6.登录并查看是否主目录自动加载.可以试验登录到附近的其他机器.你将可以在notexample域内的任何一台机器上获得自己的用户环境.
7.在自己的机器上以root登录,,使用su–guest200x.是否提示输入密码?这意味着本地root帐号和NIS域之间是什么关系?
配额方案:
1.编辑/etc/fstab,用usrquota代替defaults,然后执行mount–oremount/home
2.创建一个用于保存用户配额的数据库(-c可以在第一次运行quotacheck时隐藏警告)
touch/home/aquots.user
quotacheck–c/home
3.打开内核强制配额
quotaon/home
4.设置EDITOR变量为你希望的文本编辑器
5.edquotafilehog设置硬节点限制为100,软节点限制为60
6.edquotadiskhog设置软块限制为4096,硬块限制为5120
Lab5静态网络设置
目标:手动配置网络设置的技巧
步骤一:设置IP地址
1.使用ifdown命令关闭网卡
ifdowneth0
2.用文本编辑器打开/etc/sysconfig/network-scripts/ifcfg-eth0,按以下内容更改(x为你的座位号)
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.0.x
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
3.查看/etc/resolv.conf的内容.里面应该包含从DHCP服务器得到的设置.如果没有.改为以下设置:
searchexample.com
nameserver192.168.0.254
4.使用ifup启动配置好的网卡
ifupeth0
5.使用pingserver1确认网络配置
6.重启动系统,使用pingserver1确认网络配置
Lab6系统管理工具
目标:掌握系统管理工具的使用以及对CUPS的管理
步骤一:使用at和cron
1.设置一个提示,提醒今天中午12:00去吃午餐.在root提示符下.使用以下命令:
atnoon;(回车)
echoTimeforlunchwithJoe.(回车)
2.使用atq命令检查任务队列,确认
3.使用at命令在5分钟后运行df–k命令
4.设置今天每10分钟检查一次系统状态用于检查性能问题.你怀疑时内存或者IO问题,所以要进行相关的监控.使用root帐户,并使用crontab–e命令编辑cron文件
5.在文件种加入以下行:
*/108-17***/usr/bin/free;/usr/bin/iostat
6.如何把来自cron的输出到一个邮件地址?
7.以root身份使用pine,mail或mutt检查使用受到了来自at和cron任务的邮件
8.成功后删除cron任务
步骤二:日志记录到一个集中的位置
这个实验需要和相邻计算机的配合.
1.首先设置syslogd接受远程消息.编辑/etc/sysconfig/syslog文件:
SYSLOGD_OPTIONS=-R–M0
2.重启动syslogd:
servicesyslogrestart
3.设置syslogd把消息发向远程机器:在/etc/syslog.conf文件种增加以下行:
user.*@stationx
4.重启动syslogd:
servicesyslogrestart
5.使用logger命令生成syslog消息,测试设置:
logger–i–tyournamethisisatest
这条消息是否出现在相邻机器的/var/log/messages文件中?
步骤三:使用dump/restore恢复单个文件
1.准备用dump备份/boot目录下的文件.使用df/boot查看/boot所在的设备(以下假设为/dev/hda1)
2.首先确认备份需要的空间.查看一个0级备份需要的字节数,使用-S
#dump-oS/dev/hda1
3.备份到文件而非磁带.确认在/var/tmp目录是否有足够的空间,执行
#dump-0u–f/var/tmp/dumpfile/dev/hda1
4.检查/etc/dumpdates,查看完全备份的时间戳.
5.使用restore检查备份文件的内容
#restore–tf/var/tmp/dumpfile
6.我们可以使用restore的互动模式恢复特定文件到一个临时目录.
#mkdir/tmp/restored;cd/tmp/restored
#restore–if/var/tmp/dumpfile
7.这时会看到一个restore>提示符.键入help查看可用命令的列表.使用ls和cd命令查看备份文件的列表.
8.使用add,选中/grub.menu.1st和/grub/grub.conf文件.列出所在目录,恢复的文件应该带有星号.
9.键入extract命令恢复选中的文件.设置下个卷名为1,不为解压目录设置所有者模式.quit退出restore模式.
10.在restore运行的目录中应该有一个grub目录,包含恢复的grub.conf和menu.1st文件.
步骤四:设置打印机,使用CUPS管理打印机.
1.使用root帐户运行redhat-config-printer
2.选择新建,回车
3.在队列名称位置输入lp0
4.选择队列类型为本地打印设备
5.选择下一步,回车
6.选择/dev/lp0,选择下一步
7.选择postscriptprinter,选择下一步
8.当出现创建新队列:名称和类型画面时,选择结束,回车
9.选择退出,回车.将询问是否保存.选择是.
10.键入命令:cd并键入lpr<install.log
11.键入命令:lpq(将会看到一个由root激活的打印任务,任务号为1)
12.键入命令:lprm1删除任务
13.键入命令:lpq(将会看到任务已经删除)
Lab7RPM和Kickstart
步骤一:kickstart安装
安装前阅读排故的建议
1.编辑/root/anaconda-ks.cfg文件,在开头插入以下行
nfs--serverserver1.example.com--dir/var/ftp/pub
使用以下分区方案:
clearpart--all
part/--fstypeext3–size=256
part/boot–fstypeext3--size=100
part/tmp–fstypeext3--size=128
part/usr–fstypeext3--size=2800
part/var–fstypeext3--size=400
part/home–fstypeext3--size=128
partswap–size=512
在%post部分增加以下内容作为一行
perl–pi–e‘s,Welcometo%n,Mykickstartsystem%n,’/etc/X11/gdm/gdm.conf
2.保存anaconda-ks.cfg文件为ks.cfg.复制到软盘
3.用光盘或其他启动介质重启动系统,把kickstart软盘放在软驱中
4.当出现boot提示符时输入linuxks=floppy如果软盘有错系统会提示修正.
使用这个系统进行后面的实验.
排故建议:
如果安装过程中提示配置语言或者键盘,是因为ks.cfg中缺少对应的行.
如果出现DiskDruid,说明分区配置不对.确定有足够的硬盘空间,并且分区配置包括swap分区.
Phython编译器在出错时会大量溢出信息.使用<Shift><PageUp>和<Shift><PageDown>仔细检查,即使对Phython不熟悉也会找到出错原因.
在%post部分之外的错误往往会在覆盖现有系统之前出现.可以重启动系统并修改ks.cfg文件.启动时用linux1进入单用户模式可以加快启动速度.
步骤二安装
Lab10系统恢复和排故
目标:掌握排故过程中的技巧
1.使用RPM查询以下请求:
initscripts包中有那些文件?
Bash包由哪一台主机创建?
pam包在安装后是否更改过?
哪个包名称中包含gnome?
哪个包生成了/etc/inittab文件?
哪个包生成了/etc/fstab文件?为什么?
你的内核的版本更新记录的最后一条记录是什么?
以下命令有什么差异?
rpm–ivh<packagefile>
rpm–Uvh<packagefile>
rpm–F<packagefile>
2.练习检查光盘或server1上的RPM包的签名和完整性
使用rpm–import把RedHat的GPG导入系统
gpg--import/usr/share/rhn/RPM-GPG-KEY
rpm--import/usr/share/rhn/RPM-GPG-KEY
下面的命令将把包中的私钥和安装的公钥比较,确定包在创建后是否改变过
rpm-K<RPMpackagefile>
3.验证.
从ftp://server1.example.com/pub安装可用的更新.注意,如果要复制到本地安装则要有足够的空间,在对内核进行更新时要使用安装而非更新命令.
删除RedHat的公钥(使用mangpg查看方法),用RedHat,Inc(security@redhat.com)创建假公钥,然后使用rpm-K查看当密钥不一致时的情况.
步骤三:自动解析依存性
开始前,确认以下包没有安装:
rpmdb-redhat
xsane
sane-backends
可用的文件包在加载NFS共享server1.example.com:/var/ftp/pub后找到,位于RedHat/RPMS
1.观察没有自动解析的情况:从共享位置安装xsane包.会出现类似提示:
error:Faileddenpendencies:
libsane.so.1isneededbyxsane-0.89-3
不要试图完成安装.
2.使用rpmdb-redhat.安装rpmdb-redhat包,再次试图安装xsane包.这次仍然会失败,但是会给出有用的信息:
Suggestedresolutions:
sane-backends-1.0.9-5.i386.rpm
3.aid.在RPMS目录下使用rpm–ivh--aidxsane-0.*.rpm
sane-backends将被自动加载以满足依存性
注意,因为安装包和依存的包在同一目录,所以不需要指明rpm安装的方法
步骤四:GRUB
1.重启动进入GRUB界面.如果在grub.conf文件中设置了timeout选项,可以看到画面下方的倒数.
2.在倒数结束之前,按方向键停止计数
3.注意显示下方的提示.使用上下键选择启动的内核,按e选择编辑grub.conf的内容.
4.根据下方的提示,使用上下键选择有kernel字样的行并按e编辑
5.现在进入了GRUB编辑模式.输入空格,s然后回车.可以看到返回了前一画面,kernel行多出了文本s.如果不想保存更改,可以按ESC返回前一画面
6.按b使用更改选项启动.在上例中将进入单用户模式(singleuser)
7.重启后检查grub.conf文件.你将发现所作的更改没有保存在文件中
8.重复以上步骤,试验其他runlevel
Lab8逻辑卷和阵列
目标:在安装后创建逻辑卷和阵列的技巧
步骤一:使用LVM创建逻辑卷
1.使用fdisk在未分区空间创建四个新分区,类型为LinuxLVM(0x8e),尺寸一样,为了加快速度,不要大于1G.退出时使用w保存更改.不要重启动.
2.编辑/etc/modules.conf中包含以下行(RHEL可以不用做以下修改):
aliasblock-major-58lvm-mod
aliaschar-major-109lvm-mod
使用当前内核创建initrd
mkinintrd–f–v/boot/initrd-$(uname–r).img$(uname–r)
这个命令将使系统在启动时加载lvm-mod模块,启用LVM
3.重启动系统
4.用root登录,运行vgscan初始化LVM配置文件
5.使用pvcreate将LVM分区初始化为物理卷.假设分区为
/dev/hda9
/dev/hda10
/dev/hda11
/dev/hda12
命令为:pvcreate/dev/hda9/dev/hda10/dev/hda11/dev/hda12
可以使用pddisplay查看分区信息
6.然后创建卷组test0.使用默认4MB的扩展尺寸,只包含一个物理卷
vgcreatetest0/dev/hda9
可以使用pddisplay查看信息
7.创建一个小逻辑卷,不要占用所有空间.使用vgdisplay的VGsize和PE/size信息,比如创建一个40M的逻辑卷:
lvcreate–L40M–ndatatest0
可以使用lvdisplay/dev/test0/data确认命令执行了.
8.在逻辑卷上创建ext3文件系统:mke2fs–j/dev/test0/data
9.创建/data目录.mount/dev/test0/data/data
10.复制文件到/data.可以创建一个大文件:ddif=/dev/zeroof=/data/bigfilebs=1024count=20000
使用df检查/data的磁盘使用情况和剩余空间.确认能够正常使用.可以编辑/etc/fstab来自动加载/data.重启动测试
步骤二:使用逻辑卷
1.首先,卸载/data.使用e2fsadm扩展分区尺寸:e2fsadm–L+50M/dev/test0/data
2.重加载/dev/test0/data到/data,确认文件.运行df检查/data的磁盘使用情况和剩余空间.
3.使用剩余扩展创建第二个逻辑分区.运行vgdisplay查看PE/size,格式类似于166/644MB,这表示卷组包含166个扩展,664MB剩余空间.创建一个占用166个扩展逻辑卷/dev/test0/scratch,命令为:
lvcreate–l166–nscratchtest0
4.格式化新卷:mke2fs–j/dev/test0/scratch
5.把未使用的物理卷加入卷组vgextendtest0/dev/hda10
6.如果再次运行vgdisplay,可以看到增加的扩展.用20MB的扩展定义新逻辑卷.
e2fsadm–L+20M/dev/test0/scratch
使用lvdisplay和vgdisplay确认成功
7.接下来用/data的只读快照创建新的逻辑卷.首先用只读选项加载/data
mount–oremount,ro/data
8.快照不需要和父卷尺寸一致,我们假设不需要保存太多数据,可以设置为5M
lvcreate–s–L5M–nsnap/dev/test0/data
9.现在重加载/data为读写状态
mount–oremount,rw/data
10.创建新加载点/snap,使用mount/dev/test0/snap/snap比较/data和/snap,两者内容应该一致
11.运行命令forIin$(seq110);doecho$1>/data/$1;done将在/data下创建十个文件,名称从1到10.这个命令不影响/snap,可以用lvdisplay/dev/test0/snap检查
12.当快照逻辑卷不能容纳改变的块时,将被LVM自动删除,即使当前在加载状态.(避免这一情况的方法是尺寸和父卷一致,或者及时用lvextend扩展尺寸)可以通过以下方式看到这一现象:
rm/data/bigfile
foriin$(seq110000);doecho$1>/data/$1;done
13.在/var/log/messages里可以看到类似信息:
Mar1916:30:02station12kernel:lvm--givinguptosnapshot
/dev/test0/dataon/dev/test0/snap:outofspace
运行ls/snap.快照已经不可用了,目录是空的.运行lvdisplay/dev/test0/snap,和11步的结果比较.
14.做完快照之后,如果数据已经备份,或者快照已被删除,都需要被卸载,否则会造成轻微的性能下降,使用umount/snap;lvremove/dev/test0/snap
在进行阵列试验以前清除LVM卷:
删除所有/etc/fstab中增加的记录
umount/dev/test0/data;umount/dev/test0/scratch
lvremove/dev/test0/data;lvremove/dev/test0/scratch
vgchange–antest0;vgremovetest0
步骤三:软件阵列
1.在实验中我们将在同一磁盘创建多个分区来实现阵列,但是在实际工作中我们一般使用在不同磁盘上的分区来创建.使用fdisk将LinuxLVM(0x8e)分区转换为Linuxraidauto(0xfd)分区.保存更改.
2.重启动系统.
3.创建/etc/raidtab文件定义四个RAID-5阵列设备.根据以下示例,用实际的分区替换.chunk-size是一个重要的参数,决定了一次向阵列中每个磁盘写入数据的量.RAID-5需要一个校验算法行,一般设为left-symmetric来提高磁盘性能
raiddev/dev/md0
raid-level5
nr-raid-disks4
chunk-size32
persistent-superblock1
parity-algorithmleft-symmetric
device/dev/hda9
raid-disk0
device/dev/hda10
raid-disk1
device/dev/hda11
raid-disk2
device/dev/hda12
raid-disk3
4.初始化阵列:mkraid/dev/md0.如果阵列没有启动,手动启动raidstart/dev/md0.此时阵列会立即开始建立,但是已经可用了.可以在另一个虚拟控制台用watchcat/pro/mdstat监控建立过程.
5.使用4k的块的ext3文件系统格式化.Stride选项应设为chunksize和阵列磁盘数的乘积,可以加快格式化的速度
mke2fs–j–b4096–Rstride=32/dev/md0
6.查看是否能mount/dev/md0/data.即使仍在建立过程也可以加载.使用df命令查看文件系统尺寸.如果是四个同尺寸的分区组成的阵列,文件系统尺寸应该为三个分区之和.(其他空间用于储存校验信息)
7.使用lsraid显示阵列设备的相关信息.Lsraid–A–a/dev/md0
8.试着在/data创建文件.可以在/etc/fstab中加入记录用来自动加载.
9.检查/proc/mdstat,确认阵列已经建立.可以看到类似输出:
md0:activeraid5hda12[3]hda11[2]hda10[1]hda9[0]
2328064blockslevel5,32kchunk,algorithm2[4/4][UUUU]
10.测试卷的破坏.用以下命令模拟:raidsetfaulty/dev/md0/dev/hda11
在/var/log/messages中寻找出错信息,注意/proc/mdstat文件的改变
md0:activeraid5hda12[3]hda11[2]hda10[1]hda9[0]
2328064blockslevel5,32kchunk,algorithm2[4/3][UUUU]
重启动系统,查看启动时dmesg和/var/log/messages的出错信息
11.模拟在重启前更换了损坏的磁盘.使用命令替换阵列分区:
raidhotadd/dev/md0/dev/hda11
12.这时将看到/proc/mdstat显示阵列的重建
进阶实验:在软件阵列上创建LVM
以下实验可选,需要创建一个在两个磁盘上的物理卷建立的RAID1镜像卷基础上的RAID10.使用同一磁盘的两个分区模拟这一情况.
1.撤销前面的软件阵列设置:umount/dev/md0,删除/et/fstab中的对应行.运行raidstop/dev/md0.从/etc/raidtab中删除/dev/md0设备.
2.编辑/etc/raidtab创建两个RAID1镜像/dev/md0和/dev/md1,分别由两个分区组成.示例如下:
raiddev/dev/md0
raid-level1
nr-raid-disks2
chunk-size32
persistent-superblock1
device/dev/hda9
raid-disk0
device/dev/hda10
raid-disk1
3.注意:运行命令时可能需要-f和-R重运行.因为系统会检测到上次创建的相关superblock.
4.格式化并启动阵列设备:mkraid/dev/md0;mkraid/dev/md1
5.设置阵列设备为物理卷:pvcreate/dev/md0/dev/md1
6.创建卷组:vgcreatetest0/dev/md0/dev/md1
7.使用vgdisplay查看有多少扩展可用
8.设置条带的逻辑卷.使用-i指定构成条带逻辑卷的卷组中物理卷的数目.–I设置条带的尺寸.当使用-i时作用等同于RAID0阵列的chunk-size.使用–l指定vgdisplay报告的卷组中逻辑卷可用的扩展.假设有500可用.示例为:
lvcreate–i2–I64–l500–ndatatest0
9.使用ext3格式化/dev/test0/data,作为条带的RAID阵列设置stride选项,
mke2fs–j–b4096–Rstride=8/dev/test0/data
10.在/data加载/dev/md0/data.把文件复制到/data,使用e2fsadm重设置尺寸.使用raidsetfaulty模拟磁盘损坏.(条带的逻辑卷在创建后可以重定义尺寸,只要不在另一个物理卷上使用这些扩展.)这样将得到RAID的冗余,条带的性能和LVM的灵活性.
Lab9Xwindow系统
步骤一:了解X的启动顺序
1.创建并编辑/etc/X11/xinit/xinitrc.d/xeyes,加入以下行并设为可执行
#!/bin/sh
xeyes&
2.切换到runlevel5
3.使用显示管理器登录系统gdm,kdm,xdm等.发生了什么?切换到虚拟控制台,运行
startx--:1
发生了什么?为什么需要指定--:1?
4.在创建的用户主目录下创建并编辑.xsession文件,增加以下行并设为可执行:
#!/bin/sh
xterm&
execmetacity
5.使用这个帐户登录,发生什么?使用这个帐户在虚拟控制台登录,并运行startx,发生了什么?
其他问题:
1.列出升级视频卡的过程,包括选择卡的过程.
2.描述当视频卡配置错误时,如何修复一个启动到runlevel5的系统.
Lab10系统修复和排故
目标:熟悉系统修复的技巧
步骤一:在rescue模式修复MBR
rescue模式提供了修复一个不能正常启动的系统的最后手段.即使启动加载器或者根文件系统配置错误或损坏.进入该模式需要RedHatLinux的第一张光盘或者是网络路径的boot.iso镜像
任务.破坏GRUB使之不能启动.使用rescue模式重安装GRUB.
1.使用以下命令,将MBR中的GRUB的第一部分用0覆盖.小心设置块尺寸.如果写入太多0,会覆盖分区表,造成的问题会大的多.(以下命令假设使用IDE设备)
ddif=/dev/zeroof=/dev/hadbs=446count=1;reboot
恭喜---你的启动扇区已经破坏.不过你的主分区表还可用.重启确定系统不能启动.使用以下步骤修复系统.
2.从光盘/软盘启动进入rescue模式.当启动时输入linuxrescue
3.修复环境将询问是否加载硬盘文件系统.选择继续.用读写模式加载.检查mount的输出保证文件系统加载正确.可以使用fdisk检查分区
mount
fdisk–l/dev/hda
4.注意硬盘加载在/mnt/sysimage.检查grub.conf文件确认配置正确.
cat/mnt/sysimage/boot/grub/grub.conf
5.安装GRUB需要切换上下文,使/mnt/sysimage成为grub-install认为的系统的根.加载chrootshell,运行grub-install,退出.
Chroot/mnt/sysimage
grub-install/dev/had
exit
6.输入exit退出rescue模式.注意这会卸载加载的分区.
步骤二:在rescue模式安装软件.
使用以下命令覆盖mount命令:
cp/bin/date/bin/mount
恭喜---你已经破坏了一个重要的执行文件.重启动后你会发现系统不能启动.使用rescue模式,安装合适的rpm包.
1.使用启动介质启动系统到rescue模式.
2.系统会提示加载硬盘文件系统.使用mount检查是否正确加载.
3.注意硬盘的文件系统加载在/mnt/sysimage.查看哪个rpm包包含这个命令
rpm–qf--root/mnt/sysimage/bin/mount
4.确认mount的rpm包,使用chroot安装rpm
chroot/mnt/sysimage
rpm–Vmount
exit
5.rpm会报告/bin/mount被修改了.从网络重新安装mount包,要使用chroot
rpm–ivh--force--root/mnt/sysimage/mnt/source/RedHat/RPMS/mount*
6.输入exit退出rescue模式.注意这会卸载加载的分区.