1实验前打算
1)在linux中从光碟启动主机,打开虚拟机管理其,选择AddHardware如右图,在devicetype处选择CDROM,Manage处选择镜像文件,Bustype处默认是SATA不做修改,选择完成:
2)添加完成后,硬件信息处出现硬盘:
3)点击bootoptions,选择bootdeviceorder处,勾选satacdrom,选中,之后点击上键将硬盘调在硬碟里面,点击右下角的apply,完成从光碟启动。这些方式是永久的,想从硬碟启动时,再根据前面的步骤,把硬碟调在硬盘里面即可:
4)从硬盘启动的界面:
5)恢复从硬碟启动:
从硬碟启动的界面:
2c盘引导
系统引导过程中c盘引导修补步骤:
1)fdisk-l,可以看见系统的设备,下边有设备的分区,设备的分区前面若有‘*’标志,表示该分区所在的设备上,是有引导记录的:
2)输入ddif=/dev/zeroof=/dev/vdabs=446count=1,dd表示截取命令,if表示截取模板,of表示储存数据位置(看‘*’所在的设备),bs表示数据块大小linux修改默认启动级别,count表示截取快的个数;该命令表示从系统的无限0字节中截取数据放在该硬碟中,截取1快大小为446字节,共截取一块。该命令会破坏系统的mbr,重启系统时,会造成系统未能进行c盘引导,会出现显示“bootingfromharddisk”,之后没有下一步的情况。
3)关掉系统,之后从光碟启动。重新开机后,选择troubleshooting:
选择第二个rescure,步入系统的拯救模式:
4)步入后,可以看见说明处表示该模式可以找到系统而且把系统挂载到了/mnt/sysimage目录下。也就是真实的系统在硬碟里,把真实系统挂载在该目录下。下边的4个选项分别表示:继续步入拯救模式、只读步入拯救模式、直接开启shell、退出:
此处选择1,输入即可,显示一个命令:chroot/mnt/sysimage,表示转换系统从硬盘到真实系统的c盘中。直接回车,此时才会得到一个shell:
输入chroot/mnt/sysimage命令,切换到真实的系统:
5)输入:grub2-install/dev/vda表示安装mbr,这儿的c盘是有引导分区的设备名称,可以直接在上面输入fdisk-l查看那个是引导分区的设备(带*的),安装成功后,会提示,noerrorreported:
6)输入两次exit即可重启系统,这儿重启的时侯,还是会从光碟启动。要先死机,选择从硬碟启动,之后启动系统,即可修补c盘引导:
3grub2文件引导
1)当文件引导遗失以后,启动系统都会出现grub>:
2)输入setroot=‘hd0,msdos1’,指定引导分区,root表示指定引导设备,hd0指定引导分区的位置是第一块硬碟,msdos1是指定引导分区在第一个硬碟的第一个分区:
3)输入linux16/vmlinuz-内核版本roroot=/dev/vda3linux修改默认启动级别,上面是内核版本,ro表示只读,root=/dev/vda3表示根分区的设备:
4)initrd16/initramfs-tab补足,加载系统初始化的镜像,之后输入boot,文件引导完成,启动系统:
系统启动以后,不代表就被修补了,这样以后每次启动时,都须要自动恢复,由于/boot/loader/entries/目录下的文件是没有被恢复的
5)步入系统后(输入uname-r可以看见内核的版本),输入kernel-installadd+内核版本+/boot/vmlinuz-4.18(内核镜像),此时会报错;cp/usr/lib/modules/4.18.0-193.el8.x86_64/bls.conf/boot/解决文件缺位,之后再输入里面的kernel命令,最后重启系统即可:
4内核加载
1)cd/boot就可以看见内核文件"vmlinux-版本号",删掉后会造成文件遗失,重启时系统未能启动:
2)从光碟和上面一样的操作步入拯救模式:
步入真实主机的shell:
3)挂载mount/dev/cdrom/meida,步入/meida/BaseOS/Packages,cpkernel-core-版本号/mnt将内核的安装包复制到/mnt:
4)步入/mnt上面查看,对该安装包进行解压;解压完查看会出现lib目录,步入查看有一个modules目录,步入该目录查看:
5)步入/boot/loader/entries/目录中查看4.18那种文件,看内核的名子vmlinuz-4.18……:
6)复制该内核文件到/boot,复制时,名子要和查看到的名子一致,复制完成输入两次exit退出。注意,e前面时l不是1:
7)完成后是从光碟启动linux系统怎么样,须要死机之后调整为成从硬碟启动,再重新启动系统即可:
5系统初始化镜像
1)系统读完内核以后,都会加载系统初始化镜像,也就是/boot上面的initramfs-4.18.0-80.el8.x86_64.img
2)删掉该文件后,reboot系统将出错:
3)步入拯救模式,输入chroot/mnt/sysimage/步入真机:
4)步入/boot查看,可以使用mkinitrd--help查看该命令用法:
输入mkinitrd/boot/initramfs-$(uname-r).img$(uname-r)命令,之后输入ls/boot,可以看见系统初始化镜像恢复,之后exit两次退出:
5)换回硬碟启动:
6系统启动级别
1)/etc/systemd/system/,系统启动脚本都在该目录中:
该目录下的default.target表示系统启动级别的脚本链接;multi-user.target.wants表示系统所有服务的启动脚本链接。
2)系统开机服务启动的原理是当我们设定服务开机启动或不启动时,系统会在/etc/systemd/system/multi-user.target.wants中构建或删掉链接
eg:[root@localhostsystem]#systemctldisablesshd
Removed/etc/systemd/system/multi-user.target.wants/sshd.service.
3)ls/lib/systemd/system/*.target,上面的链接0-6red hat linux,分别表示:0-死机、1-单用户、2-无图形网路模式、3-无图形网路模式、4-无图形网路模式、5-有图形网路模式、6-重启:
4)systemctlset-defaultreboot.target,系统开机时步入无限重启模式:
5)使用上下健让页面停止在开机处,按e进行编辑,上下键选择:
首先按e步入编辑模式,显示的一共有5行:
修改第四行,在第四行最后面指定系统启动级别为5:
6)按下ctrl+x开启系统,步入系统后执行systemctlset-defaultgraphical.target命令进行修补,之后重启检测是否修补成功:
7超级用户密码忘掉
1)开机按上下键停止住页面,之后按e步入编辑模式;将第四行的ro–>rw,再输入rd.break,表示从只读挂载根设备弄成读写挂载,rd.break表示在系统内核加载完成后,中止系统启动:
2)ctrl+x启动系统,会手动步入单用户模式:
3)当前模式下默认使用root用户登录,输入chroot/sysroot步入真实系统;输入echoliu|passwd--stdinroot更改密码;更改完后要构建一个文件touch/.autorelabel,作用是让系统内核级强化型冰锥重新初始化,假如修改密码后,selinux未被重新初始化则会制止新密码生效,注意,此操作只有在selinux开启时须要,通常构建上,避免出现问题;最后输入两次exit重启: