一、什么是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.
接下来,可以看到其中还有一个链接文件 menu.lst ,链接到同一个目录下的grub.conf,这个就是grub的配置文件,也就是:/boot/grub/grub.conf,如果修改这个文件,那么会直接影响下一次引导。
这个文件的内容:
其中:
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的运行级别:
也就是:
运行级别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,显示如下: