Linux引导过程与服务控制

一:系统引导流程:

开机自检(BIOS)-->MBR引导-->GRUB菜单-->加载内核(kernel)-->init进程初始化

 

 二:系统引导级别:

0

poweroff.target

关机状态,使用该级别时将会关闭主机

1

rescue.target  

单用户模式,不需要密码验证即可登录系统,多用 于系统维护

2

multi-user.target

用户定义/减特定运行级别。默认等同于3,但是不支持网络

3

multi-user.target

字符界面的完整多用户模式,大多数服务器主机运行在此级别

4

multi-user.target

用户定义/或特定运行级别,默认等同于3

5

graphical.target

图形界面的多用户模式,提供了图形桌面操作环境

6

reboottarget 

重新启动,使用该级别时将会重启主机

 

 三:Linux中服务的管理方式:

1、独立管理(门市房)

systemctl start dhcpd

systemctl stop dhepd
2、集中管理(商场)xinetd

vim /etc/xinetd.ditftp

disable = no
systemctl start tftp

 

四:修复文件系统:扫盘

Ext4:fsck -y -t ext4 /dev/sdb1

Xfs:  xfs_repair /dev/sdb1

 

五:服务控制及优化启动

1、系统服务控制

(1)常用方法:

 ·/etc/rc.d/init.d/ 服务名称 控制类型(/etc/init.d/ /etc/rc.d/init.d/的快捷方式)

 【推荐使用上述方法】

 ·service 服务名称 控制类型

 (2)常用控制类型

 ·start 启动

 ·stop 停止

 ·restart 重启

 ·reload 平滑重启,无需停止服务【常用】

 ·status 查看状态

五:优化启动过程
(1)ntsysv 工具
 ·提供一个交互式、可视化窗口
 ·可以在字符终端运行
 ·便于集体管理多个服务
1>示例:ntsysv --level 35

 

六:系统服务控制

系统服务控制在CentOS系统中,各种系统服务的控制脚本默认放在(snib/systemd/system/自泉下,通过systemcti令工具可以实现对指定系统服务的控制语法格式如下systemcti控制类型服务名称service)

      对于大多数系统服务来说常见的几种控制类型如下所述,

 stant启动:运行指定的系统服务程序.实现服务功能。. stop(停止):终止指定的系统服务程序 .关闭相应的功能。

 restat(重启) :先退出,再重新运行指定的系统服务程序。

 reload (重载):不退出服务程序.只是刷新配置.在某些服务中与restat的操作相同

status(查看状态):查看指定的系统服务的运行状态及相关信息,

查看当前系统中所已激活的系统服务:

Systemctl list-units -type=service

chkconfig工具使用方式:
chkconfig -list #列出所有服务的状态
chkconfg -list network #制出某 个服务的状态
chkconfg I-level 35]服务名称fonlof) #设置服务状态,默认2345级别

七:引导级别查看及切换

Linux 系统的运行级别
(1)查看运行级别:runlevel 命令
(2)临时切换运行级别:使用 init 命令结合 0-6 运行级别参数

 

八:MBR修复:

建立一个目录

 

挂载dev/sdb1到/backup

 

 

将MBR扇区备份

 

将mbr扇区毁坏

 

 

九:修复GRUB引导故障

boot/grub2/grub cfg配置文件说明:
menuentry :指定在启动菜单中显示的操作系统名称set root :指定包含内核等引导文件的/boot分区所在位置insmod :加载指定的模块到内核
linux16 :指定内核文件所在的位置,内核加载时权限为只读"ro”,并通过root=”指定根分区的设备文件位置。
initrd16 :指定启动内核所使用的临时系统镜像文件所在位置。

[root@localhost ~]# mkdir /abc

[root@localhost ~]# mount /dev/sdb1 /abc

[root@localhost ~]# dd if=/dev/sda of=/abc/sda-mbr-bak bs=512 count=1

记录了1+0 的读入

记录了1+0 的写出

512字节(512 B)已复制,0.000224936 秒,2.3 MB/秒

[root@localhost ~]#cp /boot/grub2/grub.cfg /abc/grub.cfg

 

进入急救模式

 

切换到root根目录下

方法一:重建grub.cfg文件

 

方法二:提前备份,然后复原

grub引导程序遭到破坏

 方法一:备份恢复

方法二:重建

 

 

 

十:/boot目录误删除:

通过chroot sysimage 切目录

 

 

新建临时文件挂载点 /mnt/temp,并挂载光盘

 

rpm -ivh /mnt/temp/Packages/kernel-3.10--force

 

 

 

grub2-install /dev/sda

 

 

grub2-mkconfig > /boot/grub2/grub.cfg

 

 

Sync同步数据

 

 

十一、root密码修复

   1、第一种方法:

重新启动reboot

 

2、第二种方法:

把里面的密文删掉(用x)

 

 

十二:文件系统修复  (扫盘)

   

   

 

 

、空间耗尽故障

 

添加一块硬盘,分区格式化,挂载

[root@localhost ~]# fdisk /dev/sdb

[root@localhost ~]# mkfs.ext4 /dev/sdb1

[root@localhost ~]# mkdir /disk

[root@localhost ~]# mount /dev/sdb1 /disk/

[root@localhost ~]# df –I 

文件系统                   Inode 已用(I)  可用(I) 已用(I)% 挂载点

/dev/sdb1                  65536      10    65526       1% /disk

 

创建多个文件,耗尽容量

[root@localhost ~]# cd /disk/

[root@localhost disk]# touch {1..65526}

 

验证文件占用情况

[root@localhost ~]# df -i

文件系统                   Inode 已用(I)  可用(I) 已用(I)% 挂载点

/dev/sdb1                  65536   65536        0     100% /disk

 

尝试创建文件

[root@localhost disk]# touch q

touch: 无法创建"q": 设备上没有空间 

 

查看磁盘剩余空间

[root@localhost ~]# df -hT /disk/

文件系统       类型  容量  已用  可用 已用% 挂载点

/dev/sdb1      ext4  976M  4.3M  905M    1% /disk

 

修复磁盘耗尽故障

寻找0字节的文件,并删除

[root@localhost maomao]# sudo find /maomao -type f -size 0 -exec rm {} \;

 

改变inode节点大小

[root@localhost ~]# mv 重要数据 /root

[root@localhost ~]#umount /dev/sdb1

[root@localhost ~]#mkfs.ext4 /dev/sdb1 -N 500000

[root@localhost ~]# df -i /dev/sdb1

文件系统       Inode   已用(I) 可用(I) 已用(I)% 挂载点

/dev/sdb1       501760 11     501749   1%      /aa

[root@localhost ~]# mount /dev/sdb1 /disk/

[root@localhost ~]# mv重要数据 /disk

 

、磁盘坏道故障  

磁盘坏道分为逻辑坏道和物理坏道两种

dmesg

当有硬盘坏道时,通常在dmesg输出的信息中会有 Buffer I/O Error,所以经常检查dmesg的输出可以及时发现是否存在硬盘问题。

 badblocks

adblocks 可以用来检查硬盘是否有坏道,也可以修复坏道,但仅限于逻辑坏道,物理坏道只能更换硬盘。

 检查命令:

[root@localhost ~]# badblocks -s -v -o /root/bb.log /dev/sda

 检查 /home 是否有坏道,则命令如下

[root@localhost ~]# badblocks -s -v -o /root/bb-home.log /dev/mapper/centos-home

 逻辑坏道修复方式

下面是badblocks在/dev/mapper/ centos-home e分区检查出的坏道列表:

 

217874591

217874592

217874593

217874594

217874595

 先备份数据

[root@localhost ~]# dd if=/dev/mapper/centos-home  skip=217874591 of=/tmp/217874591-217874595.dat count=5

 修复

[root@localhost ~]# umount /dev/mapper/ centos-home(umount可能出现"Device busy"的错误, 解决方法fuser -m /home //列出使用/home的进程ID  fuser -m -v -i -k /home   //列出PID并kill掉进程)

 修复命令:

[root@localhost ~]# badblocks -s -w /dev/mapper/ centos-home 217874595 217874591

 修复后检查

[root@localhost ~]# badblocks -s -v /dev/mapper/ centos-home 217874595 217874591

 恢复数据(可选)

[root@localhost ~]# dd if=/tmp/217874591-217874595.dat of=/dev/mapper/ centos-home

 重新分区检查

[root@localhost ~]# badblocks -s -v -o /root/bb-home.log /dev/mapper/ centos-home

若没有坏道说明修复已完成,若有坏道可以尝试重复以上方法。

完成后重新mount分区

[root@localhost ~]# mount /dev/mapper/ centos-home

posted @ 2019-08-19 11:51  会飞的fish  阅读(271)  评论(0编辑  收藏  举报