Linux在安全模式下修改initrd文件

我在Redhat Enterprise 5里安装了Java环境,设置了环境变量,结果环境变量设置出错了,重启Linux后无法登录,安全模式下提示如下信息:

  1. bash:dircolors:commandnotfound
  2. bash:/software/jdk1. 6 .0_14/lib.tools.jar:没 有那个文件或目录
  3. bash:/software/jdk1. 6 .0_14/bin:isadirectory

我那个郁闷啊,刚学Linux就碰到系统初始化失败,咋整呢?网上搜!搜了一圈总算是找到一篇文章,在这里记录一下。

在安全模式下修改initrd文件:

由于LVM逻辑卷名嵌入在initrd文件,所以一旦更改vgname,那么会影响到系统的启动。这里采取进入linux rescue模式下手动修改initrd
1.用第一张安装盘启动,输入linux rescue
2.启动后在网络处选择no,在mount系统时候选择skip
3.创建/tmp/boot,/tmp/initrd两个目录
4.挂载你的boot目录,可以用fdisk -l来找到boot分区,如下

Disk /dev/sda: 320.0 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 1 13 104391 83 Linux

/dev/sda2 14 38913 312464250 8e Linux LVM

mount /dev/sda1 /tmp/boot

5.切换当前目录至/tmp/initrd下,执行如下命令解压initrd文件到/tmp/initrd目录

gzip -cd /tmp/boot/initrd-xxxxxxxxx.img | cpio -imd –quiet

这时,你的/tmp/initrd目录下应该多了几个文件了。

说明:红色字体处替换为你要修改的initrd具体文件名,例 如:initrd-2.6.18-8.el5.img

<!-- Easy AdSense V2.91 --> <!-- Post[count: 2] -->
<!-- Easy AdSense V2.91 -->

6.修改/tmp/initrd/init文件,找到你要修改的原vgname。例如,我要修改VolGroup00为VGRHEL,则可以在vi 下,先打冒号,输入1,$ s/VolGroup00/VGRHEL/g 这样文件里的所有VolGroup00都修改好了。wq保存退出。

7.打成initrd包:

find . | cpio -co | gzip -9 > /tmp/boot/initrd-xxxxxxxxx.img

将原来的initrd文件覆盖掉。

8.最后umount /tmp/boot 重启系统

其他:gzip c 参数:写入到标准输出保持原文件不改动

d 参数:解压

cpio即拷贝io。i 参数:进入copy-in模式

o 参数:copy-out模式(之后打包用到该参数)

m 参数:当创建文件时, 保留以前的文件修改时间

d 参数:在需要的地方创建目录

c 参数:使用老式的跨平台 (ASCII) 归档格式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值