linux常用系统管理经验谈
linux常用系统管理经验谈
发布时间:2016-12-27 来源:查字典编辑
摘要:Lab1硬件和安装步骤一:准备计算机任务:使用RedHatLinux光盘启动系统在启动时进入BIOS界面设置系统启动顺序为A,CDROM,C...

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/<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文件系统,是否看到了“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 <service name>

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 #

##################################

<date> 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设置成功,你会看到一系列反馈的数字直到达到软限制的数目. 超过限制后,会看到一个警告,但是命令仍然能够执行.达到硬限制后,将得到出错信息,而且不能再创建任何文件. 可以用<shift><Page Up>回滚检查输出,并且用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编译器在出错时会大量溢出信息.使用<Shift><Page Up>和<Shift><Page Down>仔细检查,即使对Phython不熟悉也会找到出错原因.

在%post部分之外的错误往往会在覆盖现有系统之前出现.可以重启动系统并修改ks.cfg文件.启动时用linux 1进入单用户模式可以加快启动速度.

步骤二 安装

Lab10 系统恢复和排故

目标:掌握排故过程中的技巧

1. 使用RPM查询以下请求:

initscripts包中有那些文件?

Bash包由哪一台主机创建?

pam包在安装后是否更改过?

哪个包名称中包含gnome?

哪个包生成了/etc/inittab文件?

哪个包生成了/etc/fstab文件?为什么?

你的内核的版本更新记录的最后一条记录是什么?

以下命令有什么差异?

rpm –ivh <package file>

rpm –Uvh <package file>

rpm –F <package file>

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 <RPM package file>

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模式. 注意这会卸载加载的分区.

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新RedHat/Centos学习
热门RedHat/Centos学习
操作系统子分类