Linux- 系统启动与排故

1  Linux 系统启动的过程

第一步:POST 系统加电自检,用BIOS通电自动检测CPU、网卡、内存和硬盘等设备是否工作正常,不正常就会报警。

第二步:启动MBR(master board record)主引导记录,磁盘通电前在半径中间处,启动后会寻找首扇区的MBR,

第三步:开启系统引导程序OS loader,centos 7使用的OS loader为grub2

第四步:显示grub2菜单,上面的是正常操作系统,下面的是急救模式,不选的话就会在timeout时就会自动进入系统

第五步:用户选择模式或timeout后,grub2加载内核和initramfs到内存中

第六步:grub2将控制权交给内核kernel

第七步:初始化所有硬件设备,启动PID为1的最高进程/sbin/init命令

第八步:初始化系统所有可用服务单元并挂载分区

第九步:从内存中的根分区切换至真实根分区,第1-8步是在内存中进行

第十步:启动所有服务

注:第三步和第八步容易出现问题

2 查看target相关信息

systemctl  list-dependencies 目标target              //查看指定的target所需的关联服务或其他target

systemctl  list-units  --type=target  --all              //查看系统所有可用的target

systemctl  list-unit-files  --type=target  --all         //查看安装到磁盘上的所有target

3  设置系统的默认启动级别

1)查看系统的默认启动级别    #systemctl   get-default     

2)设置系统的默认启动级别    

法1:#systemctl  set-default   运行级别.target   

例如:systemctl  set-default  graphical.target  。

//以图形化界面启动,前提是安装了图形化界面,没安装图形化界面就无法启动。

法2:ln   -s   ‘/user/lib/systemd/system/目标.target’  ‘/etc/systemd/system/default.target’

例如:ln  -sf  ‘/user/lib/systemd/system/multi-user.target’  ‘/etc/systemd/system/default.target’

//多用户级别启动,多用户级别就是我们常用的命令行模式,也就是字符级别

3)切换当前系统的运行级别:  init  运行级别  

     Init  5  切换到图形界面       init  3  切换到字符界面

4) systemctl   isolate  运行级别.target

systemctl   isolate  graphical.target      //切换到图形化界面

systemctl   isolate  multi-user.target     //切换到字符界面

5)通过grub2菜单切换启动级别,临时进入其他级别,不能立即切换,得重启。操作步骤如下:

重启,在看到grub2 的启动菜单时按键盘上下键取消读秒,选中需要进入的操作系统,然后按e编辑,找到Linux 16 字段,在它后面输入systemd.unit=目标级别.target,如  systemd.unit=graphical.target 。然后按Ctrl+x即可临时切换至图形化运行级别。

4 常见错误及处理方式

1)/ect/fstab  文件编辑不正确。

系统无法启动,将会进入emergency模式,输入密码后进入该模式,更改/etc/fstab文件至正确即可。

注意:

A)查看系统上次启动失败的错误日志:journalctl  -b   1  -p  err

B)查看系统本次启动失败的错误日志:journalctl  -b   0  -p  err

 

2)采用 debug  shell 调试系统

开启debug  shell :     systemctl   start     debug-shell

开机启动debug  shell : systemctl   enable   debug-shell

重启系统:              reboot       开机后Alt+F9

关闭debug  shell :     systemctl    stop     debug-shell  

开机不自启debug shell:  systemctl   disable   debug-shell

 

3)grub2配置文件丢失,导致grub2 程序无法启动,进而无法引导系统。即卡在第三步了。

A) 配置文件位置:/boot/grub2/grub.cfg

B) 手动加载内核与initramfs至内存中:

grub  >  insmod  /grub2/i386-pc/linux.mod

grub  >  set  root=hd0,msdos1

grub  >  linux16  /vmlinuz-内核版本号  root=/dev/sda3

grub  >  initrd16  /initramfs-内核版本号.img

grub  >  boot

注意:

  ***查看分区  ls           查看分区下的目录   ls  分区/    //找boot在哪

  ***要把虚拟机USB接口那个添加上,否则还是不能启动。

C) 重新生成grub2配置文件:    grub2-mkconfig  >  /boot/grub2/grub.cfg

 

4)重设root密码:通过grub2菜单重设root密码

第一步:重启服务器,在grub2菜单出现时按键盘上下键取消读秒,选择需要进入的操作系统(即上面那个),按e编辑。

第二步:找到Linux16字段,在后面添加: rd.break   //*ramdisk  ,按Ctrl+x。

第三步:进入switch-root命令行,重新以读写方式挂载根分区

mount  /sysroot   -o   remount,rw。

第四步:进入bash命令行,修改root密码:chroot  /sysroot /bin/bash  然后passwd  root

第五步:退出bash命令行,重启 :exit  ;reboot。

 

5)对grub2菜单明文加密

第一步:编辑文件 vim  /etc/grub.d/00_header,文件末尾添加

cat   << EOF

set superusers=”用户名”

password  用户名   密码

第二步:重新生成grub.cfg:grub2-mkconfig  >  /boot/grub2/grub.cfg

 

6)对grub2菜单密文加密

第一步:生成加密密码  grub2-mkpasswd-pbkdf2

第二步:编辑grub文件,文件末尾添加:

cat   << EOF

set superusers=”用户名”

password  用户名   密码

第三步:重新生成grub.cfg:grub2-mkconfig  >  /boot/grub2/grub.cfg

注:如何调用字符界面下的鼠标

第一步:安装软件  yum  install  gpm  -y    (如果没有安装源,需要手动配置)

第二步:启动服务  systemctl   start    gpm   开机自启  systemctl   enable   gpm

第三步:选中即是复制内容,右键即可粘贴

 

7)通过安装光盘的troubleshooting重设root密码

第一步:确保虚拟机光盘与光驱连接,真实机需要一张centos OS7的安装光盘

第二步:重启服务器,在BIOS菜单中将光驱设为第一启动项

第三步:服务器启动后将显示安装菜单,选择troubleshooting,下面有个rescue a centos system ,然后按continue然后按OK,再按OK

第四步:进入一个shell命令行,输入chroot   /mnt/sysimage,在弹出的shell命令行中修改root密码  passwd   root

第五步:退出bash命令行  exit,重启 reboot

第六步:系统重启后,进入BIOS将硬盘设置为第一启动项

 

8)如何开机自动运行脚本(脚本就是用shell语言写的小程序

用途:有些东西没有开机自启的命令,比如开机分发广播通知,所以必须写个脚本。

第一步:编辑shell脚本    vim   /root/名字.sh

脚本内容如下:   #!/bin/bash

                 echo  “hello  world”  >  /root/f1

第二步:给/etc/rc.local文件增加执行权限  chmod  a+x  /etc/rc.local

第三步:编辑/etc/rc.local文件, vim   /etc/rc.local  

然后在文件末尾添加   /usr/bin/bash    /root/1.sh

第四步:重启测试     reboot


转载请注明出处,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼刺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值