斑竹网络专注为中小企业客户提供以管理服务为核心的IT全方位服务 https://www.sysadm.cn
分类: LINUX
2013-12-18 12:21:25
当系统启动不正常或者重新编译后无法重启系统,可能需要修改initrd文件,修改这个文件的方法是:
1、 将文件拷到一个临时目录下:
# cp /boot/initrd-2.6.9-5.EL.img /tmp/9/
2、 切换到上述临时目录下:
# cd /tmp/9/
3、 将现有的文件解开
gzip -cd initrd-2.6.9-5.EL.img |cpio –imd
4、 然后在当前目录下就有很多的子目录,这也就是initrd-2.6.9-5.EL.img文件里的内
容,我们可以对这个目录下的内容进行修改,并将原来的initrd-2.6.9-5.EL.img这个文件给删除掉;
5、 使用下列命令将修改好的文件重新封装好:
# find . |cpio -co |gzip -9 >../initrd-2.6.9-5.EL_new.img
6、 然后 将生成的../initrd-2.6.9-5.EL_new.img文件拷贝到/boot 并重新启动系统就可以
使用修改后的initrd文件了
#!/bin/bash
cd /software/database/oracle10g
ftp -n <
open
user wayne bwyy1679
prompt off
cd software
cd linux
cd database/oracle10g
binary
mput *
cd ..
mkdir oracle11g
cd oracle11g
mput /software/database/oracle11g/*
bye
EOF
错误表现如下:
rpmdb: Lock table is out of available locker entries
error: db4 error(22) from db->close: Invalid argument
error: cannot open Packages index using db3 - Cannot allocate memory (12)
error: cannot open Packages database in /var/lib/rpm
操作之前请先备份 /var/lib/rpm :
tar cvzf rpmdb-backup.tar.gz /var/lib/rpm
去除rpm使用的BDB数据库:
rm /var/lib/rpm/__db.00*
重建立 rpm 使用的数据库,注意:此处可能需要一点时间:
rpm –rebuilddb
假设系统中有多块网卡,如果修改了其中的一块网卡的参数,需要重启这块网块使修改生效的方法是:
ifdown eth0
ifup eth0
这样就可以了
a. 方法一:
#mkdir rpm
# cp libXpm-3.5.5-3.i386.rpm rpm/
# cd rpm/
# rpm2cpio libXpm-3.5.5-3.i386.rpm >libXpm-3.5.5-3.i386.cpio
# cpio -i --make-directories
这样就在rpm目录下建立起对应的rpm包的目录结构,然后就可以到对应的目录下找到到应的文件。
b. 方法二:
该方法使用shell程序来进行解压,对应的shell程序如下:
#*************************************************************
# Author: Unknown,
# Modified by Muddyboot - toobyddum@gmail.com
# Last modified: 2007-09-17 12:44
# Filename: rpmextract.sh
# Description: extrac rpm package without install
# rpm related program
#*************************************************************
if [ $# -lt 1 ] ; then
echo -e "\a\nUsage: `basename $0` \n"
exit 1
fi
pkg=$1
if [ ! -e "$pkg" ]; then
echo -e "\nERR: package $pkg does not exist ! \n"
exit 1
fi
### check if cpio exists
CPIO_VER=`cpio --version 2>/dev/null`
if [ -z "$CPIO_VER" ]; then
echo -e "\nERR: prerequisite program cpio does not found ! \n"
exit 1
fi
leadsize=96
o=`expr $leadsize + 8`
set `od -j $o -N 8 -t u1 $pkg`
il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5`
dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9`
# echo "sig il: $il dl: $dl"
sigsize=`expr 8 + 16 \* $il + $dl`
o=`expr $o + $sigsize + \( 8 - \( $sigsize \% 8 \) \) \% 8 + 8`
set `od -j $o -N 8 -t u1 $pkg`
il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5`
dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9`
# echo "hdr il: $il dl: $dl"
hdrsize=`expr 8 + 16 \* $il + $dl`
o=`expr $o + $hdrsize`
dd if=$pkg ibs=$o skip=1 2>/dev/null | gunzip | cpio -idmuv || dd if=$pkg ibs=$o skip=1 2>/dev/null | bzip2 -d | cpio -idmuv