Linux启动设置以及系统修复

来源:互联网 发布:linux搭建git服务器 编辑:程序博客网 时间:2024/05/18 03:27

Linux启动流程

计算机启动时,首先进行固件操作firmware(CMOS/BIOS,CMOS是固化在硬件上的程序,BIOS是操作CMOS的管理控制程序),加电自检,即是检测硬件是否连接正常

固件结束之后,将会读取硬盘上的数据,这里首先读取是MBR(Master boot record),其中MBR包括Bootloader(自举程序),Partition table(磁盘分区表),Magic Number(结束标志字)。现在在Linux中广泛运用的是grub,在Windows中叫ntldr。这里grub的作用是载入内核

在CentOS中路径:/etc/grub.conf  (这实际上也是一个软链接,链接到/boot/grub/grub.cnf)

在Ubuntu中路径:/boot/grub/grub.cnf

内核有两个作用,一个是启动硬件,另一个就是启动init进程,init进程的PID恒为1,当然也有一个父进程PID为0,这个进程用来进行分配CPU时间做进程切换的内核调度器。init进程会读取配置文件/etc/inittab,并设置系统默认的运行级别

这里介绍两条命令,我们可以用runlevel来查看当前的运行级别,用init或者是telinit来进行运行级别的切换,实际上telinit是init的一个软链接

启动init进程之后,系统会加载/etc/rc.d/rc.sysinit 脚本,完成系统服务程序的启动,如系统环境变量设置,设置系统时钟,加载文件系统等,如果对于任何一个级别都需要启动某个服务的话,那么就可以把脚本写在rc.sysinit 这个文件中,之后再通过/etc/rc.d/rc这个脚本来判断系统的运行级别,用这个运行级别来运行/etc/rc.d/rcN.d中的 脚本(这里N表示运行级别)

实际上在/etc/rc.d/rcN.d目录中的脚本都是软链接,都链接到了/etc/rc.d/init.d目录

服务管理

那么我们如何关闭某个启动的服务呢?有以下几种方法:

1.更改/etc/rc.d/rcN.d目录下文件的文件名,建议是更改大小写,即把K或者是S更改为k或者是s

2.用如下命令来添加软链接,当然也是添加到/etc/rc.d/rcN.d目录中

ln -S

3.chkconfig

4.ntsysv 这个可以更改不同运行级别的启动程序

(chkconfig  ntsysv 这两个命令在Ubuntu中是没有的,需要自己apt-get一下)

检测硬件

dmesg | grep eth0

这样可以检测0号网卡,如果没有显示,那么说明内核驱动没有识别0号网卡

启动设置

单用户模式

更改grub信息,在kernel后面输入空格1即可
在单用户模式中,只有root用户,并且是不需要密码的。由此可见只要我们坐在电脑前我们就可以对一台电脑进行任意的修改。
那么我们如何修改root密码呢?输入passwd,然后键入密码即可,如果想修改其他的用户密码,用如下命令:
passwd username

username 为你的用户名,之后键入密码即可

grub密码

有两种方式,一是直接输入grub-md5-crypt,另一种是输入grub进入到grub>中,输入md5crypt,之后再输入密码,系统会用md5加密方式生成一个密文,你所需要做的就是复制这段密文到/boot/grub/grub.conf中title的上方即可
passwrod --md5 密文

只有在title上面,系统才会认为是grub密码,否则会成为系统密码。

启动修复


首先我们来看/boot/grub/grub.conf文件(如上图):

root:grub根目录

kernel:内核文件目录

initrd:镜像文件

当我们发生严重错误的时候,我们只能使用光盘修复了(当我们用虚拟机的时候设置CD启动,然后在启动的时候按住F2即可启动到BIOS界面),插入光盘然后键入 linux rescuse,之后进行相应的网卡等设备的手动设置。之后我们的系统被挂在到/mnt/sysimage目录,我们需要用

chroot /mnt/sysimage

命令来更改我们的系统环境


之后我们就可以像往常一样操作我们的系统了,只不过他被挂在到了/mnt/sysimage目录中

在这里我们可以查看/etc/inittab等文件,看它是否正确。