1.开机完整引导过程
? ? ?bios加电自检--mbr---grub---加载内核文件----启动第一个进程
? ? ?加电后biso程序会自检硬件,硬件无故障后,会根据第一启动项去找到内核。
? ? ?一般来说第一启动项是硬盘,找到硬盘后,会根据mbr的指引 找到完整的grub程序,
? ? ?再根据grub的配置文件找到内核文件的具体位置,
? ? ?然后将内核文件加载到内存中运行,内存加载好后会启动第一个程序
2. biso作用:检测硬件是否正常,然后根据biso中的启动项设置,去找内核文件
? ?boot开机启动顺序:你可以把内核文件放在何处
? ? ? ? ? ? ? ? ?硬盘
? ? ? ? ? ? ? ? ?移动设备,U盘 移动硬盘 ,光驱
? ? ? ? ? ? ? ? ?网络启动
? mbr(二进制):因为grub太大第一扇区存不下所有的grub程序,所以分为两部分
? ? ? ? ? ? ? ? ? ? ? ? ? ? 指引找到内核文件
文件系统的驱动
grub:根据grub配置文件中记录的位置。去找内核文件(高级语言)
加载内核:把内核运行在内存中
启动进程:启动第一个进程
centos6 : init
centos7: systemd
区别:int串行启动后续的程序,一个一个按顺序启动
systemd是并行启动程序 全部一起启动
3.systemd 系统级的程序,代理管理系统上的程序
yum以及rpm安装的软件可以直接使用systemctl去启动关闭,重启,开机自启等功能
编译安装,不可以直接使用systemctl命令去管理程序,需要写一个配置文件
systemd ?unit(单元),systemd方便管理程序,将程序按照特定的功能分成很多单元,服务,单元,写配置
4.linux操作系统有运行级别
? ? ? ?0 关机
? ? ? ?1 单用户 类似于Windows的急模式
? ? ? ?2 字符界面? 少些功能
? ? ? ?3 字符界面
? ? ? ?4 字符界面
? ? ?? 5 图行界面
? ? ?? 6 重启
init
runlevel 查看当前运行级别
systemctl? ?get-default? ?查看默认的运行级别
systemctl? ?set-defalut? ?设置默认的jibie
5.实验一:模拟破坏mbr和分区表然后修复
(1).新加一块盘,将备份文件备份到新盘
(2).dd? if=/dev/sda? of=/mnt/mbr? ?count=1? bs=512备份分区表以及mbr
(3).模拟破坏
dd if=/dev/zero? ?of=/dev/sda? count=1? ?bs=512
然后进入急救模式修复
3
2
1
mkdir bak
mount? ?/dev/sdb1? ?bak
dd? if=bak/mbr.bak? ?of=/dev/sda? ?count=1? ?bs=512
?
?
?
?
?
6.实验2 修复grub文件及程序
(1)先模拟破坏grub.cfg配置文件
mv? /boot/grub2/grub.cfg? ?/opt
(2)重启进入急救模式3 2 1
(3)先切换根,从光盘的根切换到自己系统的根
chroot? /mnt/sysimage
(4)重新安装grub2程序在sda磁盘
grub2-install? ?/dev/sda
(5)重新生成配置文件
grub2-mkconfig? ?-o? /boot/grub2/grub.cfg
exit
reboot
?
?由于破坏了grub.cfg,这时界面已卡在grub
?
?重启按esc键,选CD
?
?
?
?
成功?
?
?7.实验3 修改密码
(1)有光驱
进入急救模式后,更改环境
???chroot /mnt/sysimage
passwd修改密码
(2)无光驱
进入系统在选择 内核界面 选着带一个选着 按e
将光标移动到linux开头行的最后? 添加rd.break
ctrl? +x运行
进入单用户
重新挂载
mount? -o? remount,rw? ?/sysroot
重新挂载,添加读写权限
chroot? /sysroot
切换到真正的根
passwd
修改密码
touch? /.autorelabel
如果你开启了selinux要重新打上标志
?
?
?
8.服务管理
chkconfig? ? ? ? centos6
service? 服务程序? start
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? stop
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? restart
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? reload
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? status
在/etc/init.d/写一个同名文件的脚本(必须要有执行权限)
chkconfig? --add? ?服务名称
chkconfig? ?--level? 35? ?服务程序? ?on? 开机自启
chkconfig? ?--level? ?35? 服务程序? off? ?关闭开机自启
systemd? ? ? ? ? centos7
systemctl? ? start? ?服务名
? ? ? ? ? ? ? ? ? ?stop
? ? ? ? ? ? ? ? ? ?status
? ? ? ? ? ? ? ? ? ?reload
? ? ? ? ? ? ? ? ? ?restart
开机自启
systemctl? enable? 服务名
开机自启并立即启动
systemctl? enable? --now? 服务名
开机不自启
systemctl? disable? 服务名
开机不自启,并立即关闭
systemctl? disable? --now? 服务名
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?