linux引导流程解析

date 命令 查看软件时钟hwclock 硬件时钟(BIOS时钟)hwclock –help (查看帮助信息 一般用这个就可以man的帮助信息太多) –hctosys 将系统时间设置为硬件时间 –systohc 将硬件时间设置为软件时间 NTP 网络时间按协议man hwclockman date固件 firmware(cmos/bios) cmos是程序 bios显示给用户的界面 -> 加电自检自举程序 BootLoader GRUB 载入内核ntldr(window 内核 NT) BOOT.INI (window 引导程序)vi /etc/grub.confkernel /vmlinuz-2.6.32-71.el6.i686 linux的版本 z表示压缩的 6的位置若为奇数是测试版 偶数为正式版内核在/boot目录下linux内核文件时编译之后的单个文件vmlinuz-2.6.32-71.el6.i686内核驱动硬件内核启动init进程 PID为0的内核调度器 用来分配cup时间和进程切换的系统启动的第一个进程 PID 1ps -el | more孤儿进程 父亲死了 儿子没死 当系统检测到儿子时 会把儿子指给init当父亲僵尸进程 父亲没死 儿子死了 但是父亲不知道儿子死了 还在尝试和儿子保持联系 儿子就会成为僵尸进程流程固件 firmware(cmos/bios) cmos是程序 bios显示给用户的界面 -> 加电自检读取MBR(master boot record) 主引导记录 在零柱面 零磁头 零扇区然后自举程序 BootLoader GRUB 载入内核内核驱动硬件内核启动init进程 读取执行配置文件/etc/inittabinitdefault/etc/rc.d/rc.sysinit/etc/rc.d/rcN.d N=0-6usernamepasswordNFS unix系列的文件共享 不如ssh安全runlevel 查看当前运行级别改变运行级别 init or telinit telinit指向initls -l `which telinit`inittab 配置文件id:run-levels:action:processrun-levels 如果不写 则表示在每一个运行级别都执行run-levels为5 图形界面 3为命令行s1::sysinit:/etc/rc.d/rc.sysinit启动脚本 /etc/rc.d/rc.sysinit ,完成系统服务程序启动,如系统环境变量设置、设置系统时钟、加载字体、检查加载文件系统、生成系统启动信息日志文件等。l0:0:wait:/etc/rc.d/rc 0l1:1:wait:/etc/rc.d/rc 1l2:2:wait:/etc/rc.d/rc 2l3:3:wait:/etc/rc.d/rc 3l4:4:wait:/etc/rc.d/rc 4l5:5:wait:/etc/rc.d/rc 5l6:6:wait:/etc/rc.d/rc 6服务的启动程序都在/etc/rc.d/init.d目录下1:23456:respawn:/sbin/mingetty tty11:23456:respawn:/sbin/mingetty tty11:23456:respawn:/sbin/mingetty tty11:23456:respawn:/sbin/mingetty tty11:23456:respawn:/sbin/mingetty tty1respawn 一旦process指定的命令中止,便重新运行该命令wait 表示执行process中指定的命令,并等其结束再运行其他命令S12syslogS-startK-killgrep -v "^#" /etc/inittab | moreman inittab (man还可以查看配置文件)ls -l /etc/rc3.d/ ls -l /etc/rc3.d 这两句显示的效果是不一样的ls -ld 只显示目录firmware |BootLoader | init |/etc/inittab |initdefault |/etc/rc.d/rc.sysinit |/etc/rc.d/rc |/etc/rc.d/rcN.d N=0-6 | username | password ctrl+alt+f1-f6vi /etc/rc.d/init.d/date >> /root/msg.todaywho >> /root/msg.todayfree >> /root/msg.today //查看内存的信息 输出重定向chmod u+x /etc/rc.d/init.d/msg.script 给文件分配权限ln -schkconfigntsysvchkconfig –listchkconfig –list sshdusage: chkconfig [–list] [–type <type>] [name] chkconfig –add <name> chkconfig –del <name> chkconfig –override <name> chkconfig [–level <levels>] [–type <type>] <name> <on|off|reset|resetpriorities>chkconfig –level 2345 sshd offchkconfig –list sshdntsysv (直观的菜单叠选的方式)man ntsysvntsysv –level 5 按空格 可以切换启动或不启动 *表示启动 没有表示不启动按tab键 可以切换到ok键上dmesg | grep eht0 (有数据表示可以识别网卡 没有数据表示不可以识别)demsg | grep sda (有数据)demsg | grep sdb (没有数据)日志信息/var/log里面boot.loggrep sshd /var/log/messages 如果没有信息大多数情况下是正常的grep syslog /var/log/messages 日志文件信息grub配置文件(hd0,0) 0表示第一个分区 1 1表示第二个分区 2 2表示第三个分区(hd0,0) 表示/boot分区 /boot没有划分分区 默认是根分区//etc/grub.conf -> /boot/grub/grub.confdefault 定义缺省启动系统timeout定义缺省等待时间splashimage=(hd0,0)/grub/splash.xpm.gz grub启动时的图片hiddenmenu隐藏菜单title定义菜单项名称 可以随便改root (hd0,0)kernel 载入内核 ro表示是只读的initrd 载入镜像文件单用户模式应用 不需要密码可以重新修改用户密码进入单用户模式重新设置root密码,方法如下:开机进入grub界面,按e进入编辑行模式,选中kernel行,在按e键 在心的界面的最后一行输入l加空格 或s加空格,即进入单用户模式在系统启动等待5秒的过程中按Esc键进入grub界面grub命令e:编辑当前的启动菜单项c:进入grub的命令行方式b:启动当前的菜单项d:删除当前行esc:返回grub启动菜单界面,取消对当前菜单项所作的任何修改给grub加密码grub-md5-crypt输入grub命令进入grub操纵界面输入md5crypt 和 grub-md5-crypt以一样的退出grub所有的退出都是用的这三个命令byequitexit同样的明文口令每次加密获得的MD5密文口令也是不同的编辑grub.conf加载title上面password –md5 $1$DFDNLdfdmfl0–md5 参数表示口令是MD5加密的在grub界面按p键进行解锁在命令行对grub进行修复cat /grub/grub.confroot (hd0,0)kernel ……..boot (启动)linux rescuq光盘修复模式 可以对现有的Linux进行维护和修改在启动界面按f2进入BOIS在boot菜单下 把CD-ROM Drive提到最前面按f10退出进入boot命令行输入命令进行操作 具体步骤不解释不要轻言放弃,否则对不起自己

linux引导流程解析

相关文章:

你感兴趣的文章:

标签云: