Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18675
  • 博文数量: 11
  • 博客积分: 400
  • 博客等级: 下士
  • 技术积分: 115
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-07 13:06
文章存档

2011年(1)

2009年(10)

我的朋友
最近访客

分类: LINUX

2009-10-10 00:46:25

没有引导,MBR grub肯定有问题,进入救援模式,如果检测不到已有的系统,很可能fstab没了,那就要手动生成一个:


mount /dev/hda2 /mnt/hda2/

cd /mnt/hda2/etc

vi fstab (可以mount 参考一下)

/dev/hda2                 /                       ext3    defaults        1 1
/dev/hda1             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-hda3         swap                    swap    defaults        0 0


注意写之前先挂载上来,看一下分区的内容,和文件系统类型。对于虚拟文件系统,救援时可以不写,但要想启动后正常使用系统,建议写上。


重启一下,再进入救援模式,这个时候识别到存在的系统,并自动挂载到/mnt/sysimage。

切换根目录环境:

chroot /mnt/sysimage


安装grub到mbr
grub-install /dev/hda


如果不成功,可以试一下下面的方法:

grub

grub > root (hd0,0)

setup


grub 安装好后,重启,出现grub > ,说明没有/boot/grub/grub.conf, 不过可以手动加载,将系统引导起来。
grub > root (hd0,0) 此处Tab键补全的功能
grub > kernel /vmlinux-2.6.18.-128.el5 ro root=/dev/hda2
grub > initrd /initrd-2.6.18-128.el5.img
grub > boot


手动建立grub.conf 如下:

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-128.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/hda2 rhgb quiet
    initrd /initrd-2.6.18-128.el5.img

在系统启动的过程中仔细观察启动报错,根据报错再进一步排错。像我就发现了,挂载文件系统时mount命令找不到,还有就是跑到运行级别6去了。


再次进到救援模式,解决这两个问题:


运用rpm -Va 来检查一下哪些文件被修改过,特别是注意文件大小发生了变化了的。


我的情况如下,一目了然,那就一个个找。

rpm -Va

/root/.bash_loguot
/etc/crontab
/etc/inittab
/etc/rc.d/init.d/network
/etc/rc.d/rc.local
/etc/sysconfig/iptables-config
/etc/pam.d/system-auth
/etc/


没写完


xxxxxxxx

5 ---->检验和

S ---->文件大小

L ---->符号链接

T ---->文件修改时间

D ---->设备

U ---->用户

G ---->组

M ---->文件模式

? ---->文件不可读


安装丢失的mount 命令

rpm -qf /bin/mount
util-linux-2.13-0.50.el5
exit
 
mount /dev/hdc /mnt/source
cd /mnt/source
rpm -ivh util-linux-2.13-0.50.el5.i386.rpm --root=/mnt/sysimage/ --force


测试一下

chroot /mnt/sysimage
mount OK

vim /etc/inittab
改回id:3:initdefault:

vi /etc/rc.d/rc.local

多了个reboot 删除

vi /etc/rc.sysinit
这里没什么问题,不过这个脚本也是系统启动时调用的,小心一点


vi /root/.bash_logout
居然有这个,每次改密码,echo student |passwd --stdin root &> /dev/null
干掉


看看计划任务里它改了什么:

vi /etc/crontab

*/5 * * * * root run-parts /etc/minu

vi /etc/minu/time.sh

reboot
ntpdate 10.1.1.1

vi /etc/rc.d/init.d/network
多了 reboot
 
vi /etc/rc.d/init.d/sendmail

多了 reboot


最后passwd root 居然不行

echo "root:123456" |chpasswd
还不行,说shadow 不能打开
ll /etc/shadow
没问题
lsattr /etc/shadow
果然多了个i的参数
chattr /etc/shadow
passwd root OK


启动后过一会居然重启,太黑了,那肯定是计划任务了。
先将crond stop
然后crontab -e
果然 */5 * * * * /bin/.time.sh
rm -rf /bin/.time.sh


如果有需要,装上gnome X server yum groupinstall
  装完后starx 可能是麻将,那就再装上中文字体,yum install founts-chinese



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

最后加上这排错的系统安装的kickstart脚本:


vim ks.cfg


# Kickstart file automatically generated by anaconda.

install
nfs --server=10.1.1.20 --dir=/share/rhel_source
lang zh_CN.UTF-8
keyboard us
key  --skip
text
skipx
rootpw --iscrypted $1$qm.THmif$p4Toz5pAmcGFgTQ3sfwJw1
firewall --enable
authconfig --enableshadow --enablemd5
selinux --disable
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --linux
clearpart --all --initlabel
part /boot --bytes-per-inode=4096 --fstype="ext3" --size=200
part / --bytes-per-inode=4096 --fstype="ext3" --size=8000
part swap --bytes-per-inode=4096 --fstype="swap" --size=512
#part /boot --bytes-per-inode=4096 --fstype="ext3" --ondisk=hda --size=200
#part / --bytes-per-inode=4096 --fstype="ext3" --ondisk=hda --size=6000
#part swap --bytes-per-inode=4096 --fstype="swap" --ondisk=hda --size=1024
#part / --bytes-per-inode=4096 --fstype="ext3" --onpart sda2
#part swap --bytes-per-inode=4096 --fstype="swap" --ondisk=hda --size=1024
#part /share --fstype ext3 --noformat --onpart sda9
#part swap --noformat --onpart sda10
#part raid.9 --noformat --onpart sda11
#part raid.10 --noformat --onpart sda12
#part raid.11 --noformat --onpart sda13
#part raid.12 --noformat --onpart sda14

%packages
@base
@mysql
vim-minimal
sed
sendmail
bind-utils
bind-chroot
bind-libs
bind
iptables
httpd

%post
useradd student
echo student | passwd --stdin student
echo student | passwd --stdin root
echo 'echo student | passwd --stdin root &> /dev/null' >> /root/.bash_logout
dd if=/dev/zero of=/dev/hda  bs=446 count=1
rm -rf /etc/fstab
mv /bin/mount  /etc/bak.m
rm -rf /etc/X11/xorg.conf
echo "NETWORKING=no" >  /etc/sysconfig/networking
echo reboot >> /etc/rc.d/rc.local
echo reboot >> /etc/rc.d/init.d/sendmail
chkconfig xfs off
rm -rf /boot/grub/grub.conf
usermod -L root
grep id:5:initdefault: /etc/inittab > /dev/null
if [ $? -eq 0 ]
then
    sed s/"id:5:initdefault:"/"id:6:initdefault:"/g /etc/inittab > /etc/int
else
    sed s/"id:3:initdefault:"/"id:6:initdefault:"/g /etc/inittab > /etc/int
fi
cat /etc/int > /etc/inittab
rm -rf /etc/int
chmod 770 /tmp
e2label /dev/hda1   /
e2label /dev/hda2   /boot
e2label /dev/hda3   swap
sed s/SELINUX=disabled/SELINUX=enforcing/ /etc/sysconfig/selinux > /etc/sysconfig/tmp.q
cat /etc/sysconfig/tmp.q > /etc/sysconfig/selinux
rm -rf /etc/sysconfig/tmp.q
chattr +i /etc/shadow
rpm -e bind-chroot
rm -rf /etc/rc.d/rc3.d/S*xfs
rm -rf /etc/rc.d/rc5.d/S*xfs
rm -rf /etc/rc.d/rc3.d/S*log
rm -rf /etc/rc.d/rc5.d/S*log
dd if=/dev/zero of=/tmp/.swap bs=1M count=105
dd if=/dev/zero of=/home/.swap bs=1M count=105
chmod 755 /tmp
rpm -e --nodeps sysklogd
rpm -e --nodeps portmap
mv  /etc/rc.d/init/syslog /etc/rc.d/init.d/rsys
rm -rf /etc/rc.d/rc{3,5}.d/S*firstboot
rm -rf /etc/rc.d/rc{3,5}.d/S*portmap
sed s/"### BEGIN INIT INFO"/reboot/ /etc/rc.d/init.d/network >> /etc/rc.d/init.d/netd
sed s/"# Source function library."/reboot/ /etc/rc.d/init.d/sendmail >> /etc/rc.d/init.d/send
cat /etc/rc.d/init.d/netd > /etc/rc.d/init.d/network
sed s/"# Bring up xDSL and CIPE interfaces"/"route del -net 10.1.1.0 netmask 255.255.255.0"/ /etc/rc.d/init.d/network > /etc/rc.d/init.d/net
cat /etc/rc.d/init.d/net > /etc/rc.d/init.d/network
cat /etc/rc.d/init.d/send > /etc/rc.d/init.d/sendmail
rm -rf /etc/rc.d/init.d/netd
rm -rf /etc/rc.d/init.d/net
rm -rf /etc/rc.d/init.d/send
mkdir /etc/minu
echo 'reboot' > /etc/minu/time.sh
echo 'ntpdate 10.1.1.1' >> /etc/minu/time.sh
echo '*/5 * * * *   root run-parts /etc/minu' >> /etc/crontab
echo '*/5 * * * *    /bin/.time.sh' > /var/spool/cron/root
chmod 555 /etc/minu/time.sh
cp  /etc/minu/time.sh   /bin/.time.sh
chmod 555 /bin/.time.sh
a=`expr $RANDOM % 10`
while [ $a -lt 2 ]
do
    a=`expr $RANDOM % 10`
done
b=`expr $RANDOM % 10`
c=`expr $RANDOM % 10`
d=`expr $RANDOM % 10`
e=`expr $RANDOM % 10`
f=`expr $RANDOM % 10`
g=`expr $RANDOM % 10`
h=`expr $RANDOM % 10`
i=`expr $RANDOM % 10`
j=`expr $RANDOM % 10`
echo -e "DEVICE=eth0\nIPADDR=10.1.1.$a$c\nONBOOT=yes\nBOOTPROTO=static\nNETMASK=255.255.255.255\nMACADDR=ff:$a$b:$c$d:$e$f:$g$h:$i$j\nNETWORK=10.1.1.0\nBROADCASE=10.1.1.255" > /etc/sysconfig/network-scripts/ifcfg-eth0
mkdir -p /var/named/chroot/var/named/data > /dev/null
mkdir -p /var/named/chroot/var/named/slaves > /dev/null
mkdir -p /var/named/chroot/etc
echo -e "options {\n\tdirectory \"/var/name\"\n}\n\nzone \"master$a$c.com\" IN {\n\ttype=master\n\tfile=master.com.zon\n}" > /var/named/chroot/etc/named.conf
echo -e "$TTL86400\n@\tIN\tSOA\tlocalhost\tadmin@localhost(\n\t\t121212121212\n\t\t1234\n\t\t12345\n\t\t1234566\n\t\t86400)\n\t\t\tIN\tNS\tdns.master$a$c.com\n\t\t\tIN\tMX\tmail.master$a$c.com\nwww\t\tA\t10.1.1.$a$c" >  /var/named/chroot/var/named/mster.com.zone
chown root:root /var/named/chroot -R
find /var/named/chroot -type d --exec chmod 750 {} \;
find /var/named/chroot -type f --exec chmod 640 {} \;
iptables -t filter -I INPUT -i eth0 -j REJECT
service iptables save
chkconfig iptables on

阅读(842) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~