日期:2014-05-16  浏览次数:20817 次

linux启动流程及相关操作

First-BIOS

首先BIOS  知道就行了

详细的我也不懂,,大约是计算机进行自检
如果硬件有问题会报错

之后检查光盘 U盘之类可启动设备 即设备上有引导信息

重点是第一个扇区的512字节的最后两个字节是0x55AA

接下来 就交给MBR了 若是EFI的 可以是GPT之类

Second-MBR

加载/boot/stage1,就是MBR   这时就已经到了硬盘上了

MBR引导代码仅有448字节,在于去寻找引导程序

加载文件系统支持,CentOS下 在于/boot/*_stage1_5

然后是stage2

Third-GRUB

然后是GRUB或者NTLDR之类的

显然linux是GRUB

GRUB可以用来引导几乎所有的操作系统 包括windows

Grub的相关文件保存在/boot/grub目录中

配置文件在/boot/grub/grub.conf

	default=0 # 采用默认的0配置
	timeout=5 # 开机的时候等待几秒让你选择
	splashimage=(hd0,0)/boot/grub/splash.xpm.gz #引导界面的背景xpm格式图片
	hiddenmenu #默认隐藏菜单栏
	title CentOS (2.6.32-279.el6.x86_64) #启动项的标题, 随便改可以
	root (hd0,0) #操作系统所在的分区

	#以下是要启动的内核的配置
	kernel /boot/vmlinuz-2.6.32-279.el6.x86_64 ro root=UUID=887b0b9e-449b-414e-a11d-cd94093e3fe1 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 console=tty0 console=ttyS0,9600n8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rhgb quiet

	#以下是内核模块 主要是一些不常用驱动或者非必须功能
	initrd /boot/initramfs-2.6.32-279.el6.x86_64.img

命令dmesg可以显示并且查看 开机时输出的信息

Fourth-INIT

然后加载操作系统内核

然后执行init进程  PID=1

init调用/etc/rc.d/rc.sysinit负责对系统初始化
挂载文件系统,并且根据运行级别运行相应的服务脚本

/etc/init下保存着许多按键组合的含义
例如CTRL+ALT+DELETE默认是重启

Last-runlevel

运行级别 RedHat/CentOS Ubuntu/Debian
0 Halt Halt
1 Single Single
2 Not used/User definable Full multi-user with display manager (GUI)
3 Full multi-user NO display manager Full multi-user with display manager (GUI)
4 Not used/User definable Full multi-user with display manager (GUI)
5 Full multi-user with display manager (GUI) Full multi-user with display manager (GUI)
6 reboot reboot

可以通过修改/etc/inittab和/etc/init文件修改默认的配置级别

inittab内容如id:3:initdefault:

对应的配置文件夹如下:
/etc/rc0.d Run level 0
/etc/rc1.d Run level 1
/etc/rc2.d Run level 2
/etc/rc3.d Run level 3
/etc/rc4.d Run level 4
/etc/rc5.d Run level 5
/etc/rc6.d Run level 6
这里的runlevel3-5都是进入图形界面。这与其他的linux发行版不太一致,通常runlevel 3是Multi user mode,即直接登录到字符界面;而runlevel 5是Multi user mode with GUI,即登录到图形界面。

runlevel命令将显示两个数字
前一个数字是前一个运行级别
后一个数字是当前运行级别

init n命令可以改变当前的运行级别
切换到数字n对应的级别





一些小技巧


我们都知道passwd可以修改当前用户的密码 但是

root密码忘了怎么办呢

可以在grub界面按一个e编辑

有的同学grub的timeout=0怎么办  看不到grub就进系统了

这时候可以狂按ESC  你不会失望的

ubuntu下将ro改成rw 并且在之后加一个数字1或者单词single

就可以使用单用户启动模式(单root用户)

进入系统之后你懂的

那有人又要问了,那我密码设不设都一样了

其实还可以给grub加一个密码,防止他人修改grub

可以用命令grub-md5-crypt xxxxx将明文xxxxx加密生成密文

复制这个密文

vi /boot/gurb/grub.conf

然后直接在第一行加上一行password --md5 @#Q@$T#$#TW

加粗部分就是刚才生成的密文

这样按e就不能直接编辑了 要先按p输入密码

那grub密码忘了咋办。。。。那只能拆硬盘挂载到别的操作系统上修改grub.conf