今天不小心把glibc这个给弄坏了,然后引起了一系列的问题,让我无能为力的问题──各种命令全无法使用、开机时候init无法找到、sh也找不到,无法进入Single Mode或者Emergency Mode。而且更让我无法理解的是:Ubuntu的Live CD居然也不能用了,在 set gnome-panel那里卡了二十分钟,死活不动。如果可以进入Live CD或者Single(Emergency) Mode的话我还可以可能把系统修复一下现在?没办法了,无奈了,只有重装了。但是为了防止以后还会出现这样无法进入Live CD进行系统修复的状况,我决定在重装CentOS之外另外装一个很小的文本模式的RedHat 9用来在遇到今天这种情况的时候进行系统修复。
1.RedHat 9的安装
RedHat 9是用光盘安装的,安装的过程就不必多说了,只需要注意一下,对安装文件进行合适的筛选,去掉不必要的软件包,压缩系统安装完成后占用的空间。安装的时候我发现磁盘中原来恰好有500M的空闲空间,于是就将RH 9使劲压缩,去掉很多不必要的程序和工具,最后将安装后的文件控制在了约300M左右。
安装完成后重启进入系统,txt mode,大概试了一下,挂载各个磁盘,进行读写操作,完全正常,没有问题。于是着手准备安装CentOS。
2.CentOS的安装
这个是用的硬盘安装,安装方法也不用多说了,网上教程到处都是。但是安装完成以后却发现Grub不能认出原来安装的RedHat,如果使用自动添加的方法的话机器启动的时候不能进入RedHat,这样只有先进入CentOS之后再手动修改/boot/grub/grub.conf。
CentOS安装完成之后要做的几件事情:
Ⅰ、卸载不想要的软件并设置字体
这个主要是针对我自己的习惯,卸载掉不必要的软件,然后设置几个常用的字体等等。由于这些工作是我每次都必须作的,所以把它整理成了一个简单的脚本。如下
#! /bin/bash
# This script is used to initialize the system, which include the removement of unwanted softwares, the setting of fonts and so on. Please run is as root.
echo "Uninstall Scim Input Method!"
rpm -e $(rpm -qa | grep scim)
echo "Done"
echo "**********************************"
echo "******Set the fonts ******************"
cd /usr/local/share/fonts/
sh font*sh
echo "************Done!********************"
echo "******Enable the local libs*********"
cd /etc/ld.so.conf.d
touch own.conf
echo "/usr/local/lib" >> own.conf
ldconfig
Ⅱ、停用相关的服务
这个很简单,查看相关的服务,觉得不用的就关掉好了。(相关服务在我的Blog上也有介绍,或者Google一下就好了。)
Ⅲ、安装apt,设置软件源并更新
安装apt,用apt-get取代yum。然后设置源,我用的上海交大的源,这个在我的Blog上有介绍。设置好以后输入apt-get check检察目前的软件包的依赖关系,如果有问题则输入apt-get install —fix-broken进行修复,没有问题就可以输入apt-get dist-upgrade进行升级了。
Ⅳ、编译内核
CentOS的内核仍然停留在2.16(也许是因为人家觉得2.16稳定?)。但是我比较习惯2.6.23,觉得这个版本的kernel速度似乎更快一些,而且发行版提供的内核默认不支持MS的磁盘格式,所以我每次装完系统都会根据自己机器情况编译一下内核。
Ⅴ、设置自动备份
针对我自己的情况,我选择使用crond定期对/bin和/etc里面的内容每隔一周进行备份,我知道自己的这种方很简陋,但是没有关系,反正只是自己一个人的机器,这样就足够我用了。下面是/etc/crontab(用于设定预定任务的执行时间)和/etc/cron.weekly /backup.conf(用于进行备份工作)的内容。
/etc/crontab:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
#我去掉了每个小时都要执行的那部分内容。
30 11 * * * root run-parts /etc/cron.daily
10 12 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
/etc/cron.weekly/backup.conf:
#!/bin/sh
cd /opt//Backup/SYSTEM/
mv etc_backup.tar.bz2 etc_backup.tar.bz2.old
mv bin_backup.tar.bz2 bin_backup.tar.bz2.old
cd /
tar -jcf etc_backup.tar.bz2 etc
tar -jcf bin_backup.tar.bz2 bin
mv *tar.bz2 /opt/Backup/SYSTEM
这样,每隔一周,系统会自动备份指定的两个目录,并将原来的备份重命名,从而就自动保留了最新两周的备份。
Ⅵ、修改引导菜单
修改grub.conf,将RedHat9添加进去即可。我的如下:
default=1
timeout=5
splashimage=(hd0,6)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-53.1.4.el5)
root (hd0,6)
kernel /boot/vmlinuz-2.6.18-53.1.4.el5 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.18-53.1.4.el5.img
title CentOS (2.6.23)
root (hd0,6)
kernel /boot/vmlinuz-2.6.23 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.23.img
title RH9_Recovery Mode (2.4.20)
root (hd0,7)
kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/12
initrd /boot/initrd-2.4.20-8.img
然后重启试了一下,发现两个系统都没有问题,新的内核也没有问题,系统基本搭建完毕,剩下的只是一些其他乱七八糟的软件的事情了,什么时候有时间在弄就可以了。以后如果CentOS再出现很底层的问题,无法通过单用户模式或者紧急模式进行修复的时候,就可以利用RedHat9来进行修复工作,而可以舍弃 Live CD了。




