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默认是重启
可以通过修改/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