Linux系统管理
实验所用系统为Redhat-rhel8.2。
目录
Linux的系统管理–linux系统引导过程及引导修复
一、通电
二、bios初始化(无法控制)
对硬件检测
初始化硬件时钟
三、磁盘引导
盘片–存储数据
磁头–读取数据,默认在零磁道
磁道–磁头在磁盘表面划出的圆形轨迹
扇区–是指磁盘上划分的区域。磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区,硬盘的读写以扇区为基本单位
磁盘引导–零磁道一扇区,引导磁头下一步的动作
mbr=主引导记录=零磁道一扇区=446字节
作用:记录grub2引导文件的位置
当mbr数据丢失,系统会因为找不到启动分区而停止启动
- 问题模拟方式:
系统磁盘 /dev/sda
dd if=/dev/zero of=/dev/vda bs=446 count=1
##清空系统/dev/sda上的mbr数据,只能是446,后面的64个字节是分区表,没有备份的情况下删除掉,只能重装系统
#清空主引导记录,重启虚拟机
#报错,无法重启
- 恢复方式
用光盘进入挽救模式
chroot /mnt/sysimage
grub2-install /dev/vda ##重新安装grub2到系统硬盘上
exit
exit
- 具体步骤
###虚拟机
shell里执行dd if=/dev/zero of=/dev/vda bs=446 count=1
reboot
##虚拟机关机情况下
在虚拟机控制器里force off
双击打开引导程序坏掉的虚拟机
add hardware
--> storage
--> device(CDROM),bus type(SATA),manage(镜像)
--> boot options
--> 勾选sata cdrom1并置顶 ##以光驱启动
--> 启动虚拟机
--> troubleshooting
--> rescue a red hat enterprise linux system ##当前读取的是光驱的系统
--> 选择1(continue)
--> 回车
--> chroot /mnt/sysimage ##更改根目录到硬盘
--> grub2-install /dev/vda
--> vim /etc/sysconfig/selinux
--> SELINUX=disabled ##加快开机速度
--> exit exit
--> 关机
--> virtlO Disk 1置顶 ##将硬盘启动方式置顶
--> 开机
#添加光驱
#置顶光驱,按照顺序以此方式开机
#选择troubleshooting
#进入挽救模式
#[注意] /dev/vda
,如果输入/dev/vda/
会报错
#修改selinux
状态为disabled
,这里写错会导致不能开机
#将硬盘启动方式置顶,开机
四、grub2文件引导
rhel8
/boot/grub2/grub.cfg ##主引导文件,丢失后系统不能启动
/boot/loader/entries/xxxxxx.conf ##子引导文件
[注意] 手动引导需要知道/boot和/所在磁盘和分区
指定/boot位置
指定系统启动时加载文件名称
uname -r ##查看版本号(4.18.0-193.el8.x86_64)
- 模拟问题1
rm -rf /boot/grub2/grub.cfg
- 修复
- 直接恢复文件
cd /boot/grub2
ls
rm -rf /boot/grub2/grub.cfg
grub2-mkconfig > /boot/grub2/grub.cfg ##恢复文件
- 手动引导
reboot
--> set root='hd0,msdos1' ##磁盘0,分区1
--> linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/vda3
--> initrd16 /initramfs-4.18.0-193.el8.x86_64.img
--> boot
--> 恢复文件grub2-mkconfig > /boot/grub2/grub.cfg
#删除主引导文件,重启
#可以tab
补齐,注意不要输入错误
#恢复文件
- 模拟问题2
rm -rf /boot/loader/entries/xxxxxx.conf
- 修复
- 直接恢复文件
cd /boot/loader/entries
ls
rm -rf /boot/loader/entries/*
ls
kernel-install add 4.18.0-193.el8.x86_64 /lib/modules/4.18.0-193.el8.x86_64/vmlinuz
ls
##kernel-install add 内核版本号 内核镜像
- 手动引导
rm -rf /boot/loader/entries/*
ls
reboot
--> set root='hd0,msdos1'
--> linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/vda3
--> initrd16 /initramfs-4.18.0-193.el8.x86_64.img
--> boot
--> kernel-install add 4.18.0-193.el8.x86_64 /lib/modules/4.18.0-193.el8.x86_64/vmlinuz
--> ls
#恢复文件
五、内核加载
加载内核作用:
/boot/vmlinuz-4.18.0-193.el8.x86_64
系统初始化硬件设备
只读挂载在/设备
系统有备份,可以直接复制恢复
- 模拟问题
rm -rf /boot/vmlinuz-4.18.0-193.el8.x86_64
- 恢复
- 恢复文件
ls -l /boot/vmlinuz-4.18.0-193.el8.x86_64
cp /lib/modules/4.18.0-193.el8.x86_64/vmlinuz /boot/vmlinuz-4.18.0-193.el8.x86_64
#复制备份文件
- 手动引导
删除文件
-->reboot
-->关机
--> 灯泡
--> boot options
--> 勾选sata cdrom1并置顶(以光驱启动)
--> 启动虚拟机
--> troubleshooting
--> rescue a red hat enterprise linux system (当前读取的是光驱的系统)
--> 选择1(comtinue)
--> 回车
--> chroot /mnt/sysimage (更改根目录到硬盘)
##以上步骤同上
-->cp /lib/modules/4.18.0-193.el8.x86_64/vmlinuz /boot/vmlinuz-$(uname -r)
--> ls(已恢复)
--> exit exit
--> 关机
--> virtlO Disk 1置顶(将硬盘启动方式置顶)
-->开机
##$(uname -r) $()表示先执行此命令
#重启报错,关机用光驱开机
六、系统初始化镜像
/boot/initramfs-xxx.img
加载系统时钟
加载selinix
加载系统主机信息
甲子阿/etc/fstab文件中磁盘挂载策略
加载磁盘配额
初始化系统程序开启开机自启服务
开启虚拟控制台
开启图形
- 模拟问题
rm -rf /boot/initramfs-xxx.img
- 恢复
- 直接恢复文件
mkinitrd /boot/initrsmfs-$(uname -r).img $(uname -r)
- 手动引导
删除文件
-->reboot
-->关机
--> 灯泡
--> boot options
--> 勾选sata cdrom1并置顶(以光驱启动)
--> 启动虚拟机
--> troubleshooting
--> rescue a red hat enterprise linux system (当前读取的是光驱的系统)
--> 选择1(comtinue)
--> 回车
--> chroot /mnt/sysimage (更改根目录到硬盘)
##以上步骤同上
--> mkinitrd /boot/initrsmfs-$(uname -r).img $(uname -r)
--> exit exit
--> 关机
--> virtlO Disk 1置顶(将硬盘启动方式置顶)
-->开机
#直接文件恢复
#手动引导
七、系统启动级别
0 关机
1 单用户
2 无图形网络模式
3 无图形网络模式
4 无图形网络模式
5 有图形网络模式
6 重启
/etc/systemd/system/ ##用于存放服务链接
- 模拟问题
systemctl set-default reboot.target ##系统启动级别设定为重启,会无限重启
reboot
- 恢复
在开机选择界面按e进入到引导文件编辑模式
在内核加载选项最后加入启动级别5 ##当前为临时设定
ctrl+x
systemctl set-default graphical.target ##永久设定为图形模式启动
#临时设定系统启动级别为5图形模式
#永久设定
八、超级用户密码忘记
当忘记超级用户密码
在开机选择界面按e进入到引导文件编辑模式
在内核加载选项删除到ro改为rw,加上rd.break(终止系统启动进入单用户模式)
ctrl+x 启动
#终止系统启动进入单用户模式
回车
chroot /sysroot/
echo westos | passwd --stdin root(passwd直接改也可以)
touch /.autorelabel
exit
exit
##touch
/.autorelabel
-为了初始化selinux,作用后会被删掉
-selinux是一个安全增强系统,内部有许多安全策略
-针对一些操作,如果你做了这些操作,没有得到策略的放行,会被禁止
-比如用单用户修改root密码是不被策略放行的
-怎么让selinux策略放行
@touch /.autorelabel 创建这个文件就是告诉selinux放行这个策略
@直接关闭selinux