Red Hat Linux 133 实验翻译(KevinZ)
--------------------------------------------------------------------------------
###请转贴时保留以下内容###### Red Hat Linux 133 实验部分 应广大RH爱好者的要求,奉献Red Hat Linux 133 实验翻译 请提出宝贵意见Mail:kissingwolf@hotmail.com
KevinZ(kissingwolf) 2004.1.4 #############################
Lab1 硬件和安装
步骤一:准备计算机 任务: 使用Red Hat Linux光盘启动系统 在启动时进入BIOS界面 设置系统启动顺序为A,CDROM,C 修改其他任何推荐的设置 保存并退出BIOS设置 步骤二:使用Anaconda(图形模式)安装Red Hat Linux 任务: 按照以下要求从光盘安装Red Hat Linux。注意,要初始化图形安装界面可能需要等待一两分钟。 l 使用检测到的鼠标配置(除非老师另有指定) l 选择全新安装 l 使用定制安装选项 l 选择使用Disk Druid手动分区,删除所有原有的分区 l 使用以下分区方案: n /boot 100M n / 256M n /usr 1000M n swap 512M n /var 400M l 格式化所有分区,但是不选择检查坏块 l 使用默认的启动加载器设置(除非老师另有指定),不创建启动加载器密码 l 为网络设置选择DHCP,选择启动时激活 l 使用默认防火墙配置 l 选择适当的语言支持 l 设置对应的时区,根据老师的指示设置UTC l 设置根密码为redhat l 启用MD5和shaow密码模式(默认验证设置) l 选择安装X window,不选任何其他组件 l 切换到tty5查看文件系统格式化的过程(使用Ctrl-Alt-5,用Alt-7切换回安装向导) l 创建启动软盘可选 l 使用检测到的显示器和图形卡设置(除非老师另有指定) l 配置使用图形界面登录 l 在安装结束后重启,完成初始化设置,不注册Red Hat Network
安装结束后启动系统,以root帐号登录,并检查以下文件: l /var/log/messages l /var/log/dmesg
以上安装的系统使用twm视窗管理器。通过后续的实验,我们将安装更多的软件包,实现功能的扩展和界面的美观
步骤三:使用NFS,FTP或HTTP安装Red Hat Linux 任务: 破坏现有的系统,重新安装Red Hat Linux。事先准备安装光盘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 Red Hat目录:pub/
HTTP方式 Web站点名称:192.168.0.254 Red Hat目录:pub/
NFS方式 NFS服务器名:192.168.0.254 NFS加载点:/var/ftp/pub
11. 这时Anaconda会读取安装镜像并检测显示器和鼠标的类型,显示欢迎界面 12. 选择定制安装 13. 使用diskdruid分区。使用以下分区方案: /boot 100M / 2000M swap 512M /home 3 × 256M RAID0
14. 启动加载器,时区,图形,防火墙和验证方式都是用默认设置,除非教师指定 15. 设置适当的语言 16. 设置root密码为redhat 17. 安装默认的软件包
*指南中的分区方案非常重要,否则可能出现意料外的结果。
Lab2 Linux文件系统 目标:熟悉文件系统相关知识和技能
步骤一:创建和加载文件系统 任务: 1. 使用fdisk –l 得到ev/hda的分区尺寸信息。计算硬盘上没有分区的空间尺寸 2. 使用fdisk新增一个512M的逻辑分区(使用w命令将改动写入磁盘)。这个新分区的设备名是/dev/had_ ?为什么? 3. 重启以确定改动后的分区表被读入 4. 使用mke2fs,在新建的分区上创建一个新的ext2文件系统。创建时使用2k的块,每4k一个inode的设置。可能需要查看mke2fs的man page 5. 创建目录/data,作为该文件系统的加载点 6. 使用mount命令把新文件系统加载到/data。把/etc/passwd复制到/data,检查确认复制成功 7. Umount /data 8. 使用e2label为新分区指定卷标: e2label /dev/hdax /data x是新创建分区的序号 9. 在/etc/fstab文件中为加载/data加入以下行: LABEL=/data /data ext2 defaults 1 2 或者 /dev/hdax /data ext2 defaults 1 2 以上两行的实际效果相同。但是,如果更换了硬盘的总线或者是更改了主从的顺序,在fstab中使用卷标仍然可以定位这个设备 10. 加载新的分区 mount /data 11. 复制文件或使用touch 创建文件
步骤二:把ext2转换为ext3 1. 键入sync。这个命令把磁盘缓存信息写入磁盘。通常这个命令是定期执行的,但是以下步骤可能会先占自动同步。 2. 使用reset键重启动,或者使用电源开关关闭再打开(正常情况下不要这样) 3. 如果出现“Repair filesystem”的提示,尝试使用e2fsck /dev/hdx 修复文件系统 4. 成功启动后,通过创建journaling inode日志把ext2文件系统转换为ext3。因为ext3 的数据完整性和文件系统完整性大大增强了,所以可以 把自动预加载(pre-mount)基于时间的定期文件系统检查。 Tune2fs –j –c 0 –i 0 /dev/ 5. 检查文件系统的characteristics tune2fs –l /dev/ 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-.img文件: mkinitrd –f –v /boot/initrd-$(uname –r).img $(uname –r) 9. 键入sync,然后手动重启动系统。 10. 观察启动过程。系统检查了哪个文件系统?在/data文件系统,是否看到了“recovering journal”提示信息?当不正常重启时,使用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服务 service autofs restart 5. 测试/misc/server1目录
Lab 3 管理启动 目标: 定制系统服务的技巧
步骤一: 使用chkconfig禁用服务 1. 使用chkconfig检查系统服务的状态: chkconfig --list 2. 使用以下示例将isdn在所有runlevel关闭 chkconfig --del 3. 使用--help 查看chkconfig语法信息 chkconfig --help. 关闭runlevel3和runlevel5的kudzu服务 4. 观察 on 和 --add 的差异, off 和 --de 的差异 chkconfig isdn --list chkconfig isdn on chkconfig isdn --list chkconfig isdn off chkconfig isdn --list chkconfig isdn --del chkconfig isdn --list chkconfig isdn --add chkconfig isdn --list 5. 使用chkconfig查看系统服务的状态和改变状态
步骤二: 更改系统登录标题 1. 我们将设置rc.local脚本用于每次重启时出现登录标题. 打开/etc/rc.local文件找到以下行: touch /var/lock/subsys/local 2. 在后面插入以下行: echo “ Welcome to \n” > /etc/issue echo “All access to this computer is monitored” >> /etc/issue echo “Unauthorized access is prohibited” >> /etc/issue echo >> /etc/issue echo “Last reboot complete at $(/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文件,默认应为空. 增加以下行: ################################## # Welcome to station xx # ################################## The sysadmin is playing today. Expect frequent system downtime. 2. 切换到虚拟控制台登录.
Lab 4 用户和组管理 目标: 用户和组管理的技巧
步骤一: 创建用户和组 1. 使用useradd命令,为以下用户创建帐号:Joshua, alex, dax, bryan, zak, ed, manager. 为每个用户设置一个密码. 2. 使用groupadd命令,增加以下组: 并使用 –g 选项设定对应的GID group gid sales 10000 hr 10001 web 10002 为什么不用系统默认的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命令设置对应组拥有对应文件夹 chgrp sales /depts/sales 3. 设置/depts目录的权限为755, 子文件夹的权限为770 4. 设置各部门的子文件夹的sgid, 使得创建的文件所有权为对应的组 shmod g+s /depts/sales 5. 使用各个帐号登录,并在对应位置创建文件,检查效果.只有manager可以进入所有的目录.也可以使用su -命令,但是要加上-,并且su下一个帐户之前要退出前一个帐户.
步骤三: 设置磁盘配额 1. 创建名为filehog的帐户,并设置用户在/home目录有60个inode的软限制和100个inode的硬限制. 使用以下命令测试, 要使用su - 命令,否则会失败. su – filehog quota for I in $(seq 1 100); do echo –n “file$(i)”; touch file$(i) 2 >&1; done | less quota
quota命令会报告当前的限制和已经使用的inode. 使用循环的目的是创建100个文件. 因为当创建用户filehog的时候需要从/etc/skel复制一些文件,所以创建100个文件的命令将不会成功. 如果quota设置成功,你会看到一系列反馈的数字直到达到软限制的数目. 超过限制后,会看到一个警告,但是命令仍然能够执行.达到硬限制后,将得到出错信息,而且不能再创建任何文件. 可以用回滚检查输出,并且用ls命令查看filehog的主目录. 2. 创建一个名为diskhog的用户, 设置用户在/home目录的软限制为4MB, 硬限制为5MB,使用以下命令测试 su – diskhog quota dd if=/dev/zero of=bigfile count=3 #将成功 dd if=/dev/zero of=bigfile count=4 #将成功 dd if=/dev/zero of=bigfile count=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, intr 192.168.0.254:/home/guests/& 这条记录指明在目录下的所有子目录都配置为从192.168.0.254:/home/guests下的相应目录加载,并且设为:读写,如果加载不成功就返回超时,并且在加载不可用时仍允许进程访问文件. 5. 配置autofs在runlevel3,4,5时运行,并手动启动: chkconfig autofs on service autofs start 6. 登录并查看是否主目录自动加载.可以试验登录到附近的其他机器.你将可以在notexample域内的任何一台机器上获得自己的用户环境. 7. 在自己的机器上以root登录,,使用su –guest200x.是否提示输入密码? 这意味着本地root帐号和NIS域之间是什么关系?
配额方案: 1. 编辑/etc/fstab, 用usrquota代替defaults, 然后执行 mount –o remount /home 2. 创建一个用于保存用户配额的数据库(-c 可以在第一次运行quotacheck时隐藏警告) touch /home/aquots.user quotacheck –c /home 3. 打开内核强制配额 quotaon /home 4. 设置EDITOR变量为你希望的文本编辑器 5. edquota filehog 设置硬节点限制为100,软节点限制为60 6. edquota diskhog 设置软块限制为4096,硬块限制为5120
Lab 5 静态网络设置 目标: 手动配置网络设置的技巧 步骤一: 设置IP地址 1. 使用ifdown命令关闭网卡 ifdown eth0
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服务器得到的设置.如果没有.改为以下设置: search example.com nameserver 192.168.0.254 4. 使用ifup启动配置好的网卡 ifup eth0 5. 使用ping server1 确认网络配置 6. 重启动系统,使用ping server1 确认网络配置
Lab 6 系统管理工具 目标: 掌握系统管理工具的使用以及对CUPS的管理
步骤一: 使用at和cron 1. 设置一个提示,提醒今天中午12:00去吃午餐. 在root提示符下.使用以下命令: at noon; (回车) echo “Time for lunch with Joe.” (回车) 2. 使用atq命令检查任务队列,确认 3. 使用at命令在5分钟后运行 df –k命令 4. 设置今天每10分钟检查一次系统状态用于检查性能问题.你怀疑时内存或者IO问题,所以要进行相关的监控. 使用root帐户,并使用crontab –e 命令编辑cron文件 5. 在文件种加入以下行: */10 8-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 –M 0” 2. 重启动syslogd: service syslog restart 3. 设置syslogd把消息发向远程机器: 在/etc/syslog.conf文件种增加以下行: user.* @stationx 4. 重启动syslogd: service syslog restart 5. 使用logger命令生成syslog消息,测试设置: logger –i –t yourname “this is a test” 这条消息是否出现在相邻机器的/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. 选择postscript printer, 选择下一步 8. 当出现创建新队列:名称和类型画面时,选择结束,回车 9. 选择退出,回车.将询问是否保存.选择是. 10. 键入命令: cd 并键入 lpr < install.log 11. 键入命令: lpq (将会看到一个由root激活的打印任务,任务号为1) 12. 键入命令: lprm 1 删除任务 13. 键入命令: lpq (将会看到任务已经删除)
Lab 7 RPM和Kickstart 步骤一: kickstart安装 安装前阅读排故的建议 1. 编辑 /root/anaconda-ks.cfg文件,在开头插入以下行 nfs --server server1.example.com --dir /var/ftp/pub 使用以下分区方案: clearpart --all part / --fstype ext3 –size=256 part /boot –fstype ext3 --size=100 part /tmp –fstype ext3 --size=128 part /usr –fstype ext3 --size=2800 part /var –fstype ext3 --size=400 part /home –fstype ext3 --size=128 part swap –size=512 在%post部分增加以下内容作为一行 perl –pi –e ‘s, Welcome to %n, My kickstart system %n,’ /etc/X11/gdm/gdm.conf 2. 保存anaconda-ks.cfg文件为ks.cfg.复制到软盘 3. 用光盘或其他启动介质重启动系统, 把kickstart软盘放在软驱中 4. 当出现boot提示符时 输入linux ks=floppy 如果软盘有错系统会提示修正. 使用这个系统进行后面的实验.
排故建议: 如果安装过程中提示配置语言或者键盘,是因为ks.cfg中缺少对应的行. 如果出现Disk Druid, 说明分区配置不对.确定有足够的硬盘空间,并且分区配置包括swap分区. Phython编译器在出错时会大量溢出信息.使用和仔细检查,即使对Phython不熟悉也会找到出错原因. 在%post部分之外的错误往往会在覆盖现有系统之前出现.可以重启动系统并修改ks.cfg文件.启动时用linux 1进入单用户模式可以加快启动速度.
步骤二 安装 Lab10 系统恢复和排故 目标:掌握排故过程中的技巧 1. 使用RPM查询以下请求: initscripts包中有那些文件? Bash包由哪一台主机创建? pam包在安装后是否更改过? 哪个包名称中包含gnome? 哪个包生成了/etc/inittab文件? 哪个包生成了/etc/fstab文件?为什么? 你的内核的版本更新记录的最后一条记录是什么? 以下命令有什么差异? rpm –ivh rpm –Uvh rpm –F 2. 练习检查光盘或server1上的RPM包的签名和完整性 使用 rpm –import 把Red Hat 的GPG导入系统 gpg --import /usr/share/rhn/RPM-GPG-KEY rpm --import /usr/share/rhn/RPM-GPG-KEY 下面的命令将把包中的私钥和安装的公钥比较,确定包在创建后是否改变过 rpm -K 3. 验证. 从ftp://server1.example.com/pub 安装可用的更新.注意,如果要复制到本地安装则要有足够的空间,在对内核进行更新时要使用安装而非更新命令. 删除Red Hat的公钥(使用 man gpg查看方法), 用Red Hat,Inc(security@redhat.com)创建假公钥, 然后使用rpm -K查看当密钥不一致时的情况.
步骤三: 自动解析依存性 开始前, 确认以下包没有安装: rpmdb-redhat xsane sane-backends 可用的文件包在加载NFS共享server1.example.com:/var/ftp/pub后找到,位于RedHat/RPMS 1. 观察没有自动解析的情况: 从共享位置安装xsane包.会出现类似提示: error: Failed denpendencies: libsane.so.1 is needed by xsane-0.89-3 不要试图完成安装. 2. 使用rpmdb-redhat. 安装rpmdb-redhat包,再次试图安装xsane包.这次仍然会失败,但是会给出有用的信息: Suggested resolutions: sane-backends-1.0.9-5.i386.rpm 3. aid. 在RPMS目录下使用rpm –ivh --aid xsane-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使用更改选项启动.在上例中将进入单用户模式(single user) 7. 重启后检查grub.conf文件.你将发现所作的更改没有保存在文件中 8. 重复以上步骤, 试验其他runlevel
Lab 8 逻辑卷和阵列 目标: 在安装后创建逻辑卷和阵列的技巧 步骤一: 使用LVM创建逻辑卷 1. 使用fdisk在未分区空间创建四个新分区,类型为Linux LVM (0x8e), 尺寸一样,为了加快速度,不要大于1G. 退出时使用w保存更改.不要重启动. 2. 编辑/etc/modules.conf中包含以下行(RHEL 可以不用做以下修改): alias block-major-58 lvm-mod alias char-major-109 lvm-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的扩展尺寸,只包含一个物理卷 vgcreate test0 /dev/hda9 可以使用pddisplay查看信息
7. 创建一个小逻辑卷,不要占用所有空间. 使用vgdisplay的VG size和 PE/size信息,比如创建一个40M的逻辑卷: lvcreate –L 40M –n data test0 可以使用 lvdisplay /dev/test0/data 确认命令执行了. 8. 在逻辑卷上创建ext3文件系统: mke2fs –j /dev/test0/data 9. 创建/data目录. mount /dev/test0/data /data 10. 复制文件到/data. 可以创建一个大文件: dd if=/dev/zero of=/data/bigfile bs=1024 count=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 –l 166 –n scratch test0 4. 格式化新卷: mke2fs –j /dev/test0/scratch 5. 把未使用的物理卷加入卷组 vgextend test0 /dev/hda10 6. 如果再次运行vgdisplay, 可以看到增加的扩展.用20MB的扩展定义新逻辑卷. e2fsadm –L+20M /dev/test0/scratch 使用lvdisplay和vgdisplay确认成功 7. 接下来用/data的只读快照创建新的逻辑卷. 首先用只读选项加载/data mount –o remount,ro /data 8. 快照不需要和父卷尺寸一致,我们假设不需要保存太多数据,可以设置为5M lvcreate –s –L 5M –n snap /dev/test0/data 9. 现在重加载/data为读写状态 mount –o remount,rw /data 10. 创建新加载点/snap, 使用 mount /dev/test0/snap /snap 比较/data和/snap,两者内容应该一致 11. 运行命令 for I in$(seq 1 10); do echo $1 > /data/$1; done 将在/data下创建十个文件,名称从1到10. 这个命令不影响/snap, 可以用lvdisplay /dev/test0/snap检查 12. 当快照逻辑卷不能容纳改变的块时,将被LVM自动删除,即使当前在加载状态.(避免这一情况的方法是尺寸和父卷一致,或者及时用lvextend扩展尺寸)可以通过以下方式看到这一现象: rm /data/bigfile for i in $(seq 1 10000); do echo $1 > /data/$1; done 13. 在/var/log/messages里可以看到类似信息: Mar 19 16:30:02 station12 kernel: lvm --giving up to snapshot /dev/test0/data on /dev/test0/snap: out of space 运行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 –an test0; vgremove test0
步骤三: 软件阵列 1. 在实验中我们将在同一磁盘创建多个分区来实现阵列,但是在实际工作中我们一般使用在不同磁盘上的分区来创建.使用fdisk将Linux LVM(0x8e)分区转换为Linux raid auto(0xfd)分区.保存更改. 2. 重启动系统. 3. 创建/etc/raidtab文件定义四个RAID-5阵列设备.根据以下示例,用实际的分区替换.chunk-size是一个重要的参数,决定了一次向阵列中每个磁盘写入数据的量.RAID-5需要一个校验算法行,一般设为left-symmetric来提高磁盘性能 raiddev /dev/md0 raid-level 5 nr-raid-disks 4 chunk-size 32 persistent-superblock 1 parity-algorithm left-symmetric device /dev/hda9 raid-disk 0 device /dev/hda10 raid-disk 1 device /dev/hda11 raid-disk 2 device /dev/hda12 raid-disk 3
4. 初始化阵列: mkraid /dev/md0. 如果阵列没有启动,手动启动 raidstart /dev/md0. 此时阵列会立即开始建立,但是已经可用了.可以在另一个虚拟控制台用 watch cat /pro/mdstat 监控建立过程. 5. 使用4k的块的ext3文件系统格式化. Stride选项应设为chunk size和阵列磁盘数的乘积, 可以加快格式化的速度 mke2fs –j –b 4096 –R stride=32 /dev/md0 6. 查看是否能 mount /dev/md0 /data. 即使仍在建立过程也可以加载. 使用df命令查看文件系统尺寸. 如果是四个同尺寸的分区组成的阵列,文件系统尺寸应该为三个分区之和.(其他空间用于储存校验信息) 7. 使用lsraid显示阵列设备的相关信息. Lsraid –A –a /dev/md0 8. 试着在/data创建文件. 可以在/etc/fstab中加入记录用来自动加载. 9. 检查/proc/mdstat, 确认阵列已经建立. 可以看到类似输出: md0: active raid5 hda12[3] hda11[2] hda10[1] hda9[0] 2328064 blocks level 5, 32k chunk, algorithm 2[4/4] [UUUU] 10. 测试卷的破坏.用以下命令模拟: raidsetfaulty /dev/md0 /dev/hda11 在/var/log/messages中寻找出错信息, 注意/proc/mdstat文件的改变 md0: active raid5 hda12[3] hda11[2] hda10[1] hda9[0] 2328064 blocks level 5, 32k chunk, algorithm 2[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-level 1 nr-raid-disks 2 chunk-size 32 persistent-superblock 1 device /dev/hda9 raid-disk 0 device /dev/hda10 raid-disk 1 3. 注意: 运行命令时可能需要-f和-R重运行.因为系统会检测到上次创建的相关superblock. 4. 格式化并启动阵列设备: mkraid /dev/md0; mkraid /dev/md1 5. 设置阵列设备为物理卷: pvcreate /dev/md0 /dev/md1 6. 创建卷组: vgcreate test0 /dev/md0 /dev/md1 7. 使用vgdisplay查看有多少扩展可用 8. 设置条带的逻辑卷. 使用-i 指定构成条带逻辑卷的卷组中物理卷的数目. –I 设置条带的尺寸. 当使用-i时作用等同于RAID0阵列的chunk-size.使用 –l指定vgdisplay报告的卷组中逻辑卷可用的扩展.假设有500可用.示例为: lvcreate –i 2 –I 64 –l 500 –n data test0 9. 使用ext3格式化/dev/test0/data ,作为条带的RAID阵列设置stride选项, mke2fs –j –b 4096 –R stride=8 /dev/test0/data 10. 在/data加载/dev/md0/data. 把文件复制到/data,使用e2fsadm重设置尺寸.使用raidsetfaulty模拟磁盘损坏.(条带的逻辑卷在创建后可以重定义尺寸,只要不在另一个物理卷上使用这些扩展.)这样将得到RAID的冗余,条带的性能和LVM的灵活性.
Lab 9 X window系统 步骤一: 了解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 & exec metacity 5. 使用这个帐户登录,发生什么? 使用这个帐户在虚拟控制台登录,并运行startx,发生了什么?
其他问题: 1. 列出升级视频卡的过程,包括选择卡的过程. 2. 描述当视频卡配置错误时,如何修复一个启动到runlevel5的系统.
Lab 10 系统修复和排故 目标: 熟悉系统修复的技巧
步骤一: 在rescue模式修复MBR rescue模式提供了修复一个不能正常启动的系统的最后手段. 即使启动加载器或者根文件系统配置错误或损坏.进入该模式需要RedHat Linux的第一张光盘或者是网络路径的boot.iso镜像 任务.破坏GRUB使之不能启动.使用rescue模式重安装GRUB. 1. 使用以下命令,将MBR中的GRUB的第一部分用0覆盖.小心设置块尺寸.如果写入太多0,会覆盖分区表,造成的问题会大的多.(以下命令假设使用IDE设备) dd if=/dev/zero of=/dev/had bs=446 count=1; reboot 恭喜---你的启动扇区已经破坏.不过你的主分区表还可用.重启确定系统不能启动.使用以下步骤修复系统. 2. 从光盘/软盘启动进入rescue模式. 当启动时输入 linux rescue 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认为的系统的根.加载chroot shell, 运行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 –V mount exit 5. rpm会报告/bin/mount被修改了.从网络重新安装mount包,要使用chroot rpm –ivh --force --root /mnt/sysimage /mnt/source/RedHat/RPMS/mount* 6. 输入exit退出rescue模式. 注意这会卸载加载的分区.
| | |