Linux Grub、Linux运行级别、终端模式登陆

来源:互联网 发布:澳门银河网络平台 编辑:程序博客网 时间:2024/06/07 02:38

一、什么是Grub?

Grub的全称是 Grand Unified Bootloader,grub可以引导多个操作系统。

当按下开机按钮后,机箱会发出 滴的一声,这个声音表示BIOS完成了开机自检,硬件正常。

然后,接下来,BIOS默认会从硬盘的0柱面,0磁道,1扇区中读取512个字节数据,来引导系统,不过由于grub程序非常大,所以Grub的启动启动过程分为2步:

首先,以stage1作为主引导程序,用它来定位、加载第2阶段的程序,并把控制权转给stage2。

然后,就是stage2。


Grub的文件都放在/boot/grub 目录下面,其中有一个stage1,大小是512字节,正好一个扇区大,这个stage1就是MBR的副本,而MBR就是主引导记录,比如,用U盘做系统的时候,首先要把主引导记录写入u盘,然后再把iso文件刻录进行。

另外,还可以看到一个stage2,这个就是stage1要加载的体积更大的程序。

其他的 xxx_stage1_5 文件,如果仔细看发现xxx都是:e2fs、fat 、ffs、 jfs、 minix、 reiserfs、 ufs2、 vstafs、 xfs都是各种文件系统的驱动程序文件,由于stage2文件可能会存放在各种不同的文件系统上,所以,当stage1读取stage2的时候,就会判断stage2是什么文件系统,然后就通过这个驱动来读取stage2.

[root@ggg2 Desktop]# ls -al /boot/grubtotal 284drwxr-xr-x. 2 root root   1024 Aug 18 23:52 .dr-xr-xr-x. 5 root root   1024 Aug 18 23:50 ..-rw-r--r--. 1 root root     63 Aug 18 23:21 device.map-rw-r--r--. 1 root root  13396 Aug 18 23:21 e2fs_stage1_5-rw-r--r--. 1 root root  12636 Aug 18 23:21 fat_stage1_5-rw-r--r--. 1 root root  11780 Aug 18 23:21 ffs_stage1_5-rw-------. 1 root root    771 Aug 18 23:52 grub.conf-rw-r--r--. 1 root root  11772 Aug 18 23:21 iso9660_stage1_5-rw-r--r--. 1 root root  13284 Aug 18 23:21 jfs_stage1_5lrwxrwxrwx. 1 root root     11 Aug 18 23:21 menu.lst -> ./grub.conf-rw-r--r--. 1 root root  11972 Aug 18 23:21 minix_stage1_5-rw-r--r--. 1 root root  14428 Aug 18 23:21 reiserfs_stage1_5-rw-r--r--. 1 root root   1341 Nov 15  2010 splash.xpm.gz-rw-r--r--. 1 root root    512 Aug 18 23:21 stage1-rw-r--r--. 1 root root 126116 Aug 18 23:21 stage2-rw-r--r--. 1 root root  12040 Aug 18 23:21 ufs2_stage1_5-rw-r--r--. 1 root root  11380 Aug 18 23:21 vstafs_stage1_5-rw-r--r--. 1 root root  13980 Aug 18 23:21 xfs_stage1_5[root@ggg2 Desktop]# 

接下来,可以看到其中还有一个链接文件 menu.lst ,链接到同一个目录下的grub.conf,这个就是grub的配置文件,也就是:/boot/grub/grub.conf,如果修改这个文件,那么会直接影响下一次引导。

这个文件的内容:

[root@ggg2 Desktop]# cat /boot/grub/grub.conf# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE:  You have a /boot partition.  This means that#          all kernel and initrd paths are relative to /boot/, eg.#          root (hd0,0)#          kernel /vmlinuz-version ro root=/dev/sda3#          initrd /initrd-[generic-]version.img#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS 6 (2.6.32-504.el6.x86_64)root (hd0,0)kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=UUID=c1fa03c8-abf9-4d89-a8e0-4571c69955e0 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quietinitrd /initramfs-2.6.32-504.el6.x86_64.img[root@ggg2 Desktop]# 

其中:

1、default=0:默认从第一个title(这里是从0开始的)启动,如果在机器上先安装了windows,然后又安装了linux,就会有2个title。

2、timeout=5:有5秒时间,通过上下键选择启动的title。实际上这个在windows里也有大笑,就是boot.ini 文件。

splashimage:这个就是启动是显示的图像,如果是sata磁盘,就从hd01第一块磁盘、的第一个分区,在linux系统中,第一块磁盘就是sda,第二块磁盘就是sdb,而第一个磁盘的第一个分区就是sda1,第二个分区是sda2,所以(hd0,0)/grub/splash.xpm.gz 就是 /sda1/grub/splash.xpm.gz,也就是 /boot/grub/splash.xpm.gz。

这个文件是压缩文件,在启动时会对文件解压缩。

3、hiddenmenu:就是启动是不显示grub的标准菜单接口。

4、titile:就是要引导的系统名称。

5、root (hd0,0):表示内核所在的分区。

6、kernel /vmlinuz-2.6.32-504.el6.x86_64:是指定了内核的路径,就是(hd0,0)分区的/boot/vmlinuz-2.6.32-504.el6.x86_64文件。

7、ro root=UUID=c1fa03c8-abf9-4d89-a8e0-4571c69955e0 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet:是启动内核是,向内核传入的参数。

8、initrd /initramfs-2.6.32-504.el6.x86_64.img:指定initrd文件的路径,initrd就是boot loader initialized RAM disk,就是引导程序用于初始化的内存磁盘,系统启动时的临时文件系统,内核通过initrd来获得各种设备驱动、可执行文件,然后再去挂载读取到的真实文件系统,然后就会卸载这个临时文件系统,不过在很多嵌入式系统中,就会把initrd直接作为正式文件系统来用。


二、Linux运行级别又是什么?

一共有7种运行级别:rd0~rd7。

当bios完成开机自检,加载了mbr,也就是上面的stage1,然后控制权就转到了Grub。

接下来stage1通过initrd临时文件系统,加载了比如这里是xxx_stage1_5的文件系统驱动,通过这个驱动读取了stage2。

然后再由stage2来加载linux的内核vmlinuz,然后内核vmlinuz会加载/sbin/init。

而/sbin/init就会根据/etc/inittab来进行初始化,而这个文件里存了linux的运行级别:

[root@ggg2 Desktop]# cat /etc/inittab# inittab is only used by upstart for the default runlevel.## ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.## System initialization is started by /etc/init/rcS.conf## Individual runlevels are started by /etc/init/rc.conf## Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf## Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,# with configuration in /etc/sysconfig/init.## For information on how to write upstart event handlers, or how# upstart works, see init(5), init(8), and initctl(8).## Default runlevel. The runlevels used are:#   0 - halt (Do NOT set initdefault to this)#   1 - Single user mode#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)#   3 - Full multiuser mode#   4 - unused#   5 - X11#   6 - reboot (Do NOT set initdefault to this)# id:5:initdefault:[root@ggg2 Desktop]# 

也就是:

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动


三、终端模式登陆

当经历了上面的2个阶段后,就可以登陆系统了。

默认情况下,linux有6个终端,使用组合键ctrl+alt+F1,可以进入第一个终端,后面的以此类推。

而终端就叫tty,也就是有tty1~tty6。


按下CTRL+ALT+F2,就进入了第2个终端,也就是tty2 ,显示如下:


内容分别是:

1、发行版的名称、版本号。

2、内核版本、硬件平台。

3、主机名ggg2。

4、login:等待输入用户名,这里输入了root。

5、password:是提示要输入密码。

6、Last Login:就是显示最后一次登陆的时间,以及是在哪个tty上登陆的。

7、[root@ggg2 ~]# :root表示登陆用户名,ggg2是主机名,~表示当前用户的home目录,#表示当前用户是超级权限用户root用户,而如果是普通用户就是$。


另外,通过修改/etc/issue的内容,可以在登陆终端时,显示不一样的文字。

这里在最后添加了一行“Hello,Linux!”:



然后,输入exit之后,会再次进入到tty,显示如下:



0 0
原创粉丝点击