快速业务通道

Linux非常有趣的单用户模式分析

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-07

单用户模式

run-level如果等于1的话,就会进入单用户模式了.一般进入单用户模式不用输入密码,,如果忘记root密码的话,我们可以进入单用户模式,然后用passwd来更改.

单用户模式没有网络,那些在chkconfig之中看到的服务也没有启动,进入/etc/rc.d/rc1.d,用ls命令看看里面有些什么文件:

我们会发现里面只有两个S开头的文件,其他全部是K开头的文件.S是代表start,而K代表kill.

在Bootloader之中我们有讲到传递给内核的参数有single,会进入单用户模式,那么那种单用户模式与run-level=1的单用户模式有没有什么不同么?

另外我们好可以在bootloader传递init=/bin/bash给内核,与单用户模式又有什么不同呢.

第二个问题,还好理解,就是让内核把bash当成init来启动init所作的事情是一件也不会做的,内核加载完毕后就会将控制交给shell了.启动信息简短了很多:

这时候所加载的/应该还只是内核所加载的/,一般我们是以readonly加载的(还记得第一章的那些参数吧),在这种环境下的所有文件也是readonly的.当然如果我们想更改文件内容的话,是可以remount根目录/.

先看看这时候系统都mount了些什么:
$mount
/dev/mapper/VolGroup00 on / type ext3 (rw)
None on /proc type proc (rw)

我不太明白结果第一行的(rw)是不是read write的含义,不过这时候的/的确是readonly的.

重新mount根目录/成read write:$mount –o remount rw /

一切OK,这时候我们可以编辑我们所需要的文件了.不过记住init和shell的功能是大不相同的,这只是一个很不完整的Linux环境,很多东西都不能玩.

那么bootloader的参数single与run-level=1呢,我们假设/etc/inittab种种原因,就丢失了,重新启动后,init得到控制后找不到/etc/inittab,于是要求输入runlevel,可以无论你输入什么1-5,都会死机的,init根本不知道要做什么.

怎么办呢?

试试传递参数single给内核的方法(不会忘了吧),我们会发现虽然init找不到/etc/inittab,但是却把控制交到了shell的手上.

真的是很有趣.

Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号