先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
正文
【常用的设备无关启动时参数】
1、init=…
设置内核执行的初始化进程名,如果该项没有设置,内核会按顺序尝试/etc/init,
/bin/init,/sbin/init, /bin/sh,如果所有的都没找到,内核会抛出 kernel panic:的错误。
2、nfsaddrs=…
设置从网络启动时NFS的启动地址,已字符串的形式给出。
3、nfsroot=…
设置网络启动时的NFS根名字,如果该字符串不是以 “/”、“,”、"."开始,默认指向“/tftp-boot”。
以上2、3在无盘站中很有用处。
4、no387
该选项仅当定义了CONFIG_BUGi386时才能用,某些i387协处理器芯片使用32位的保护模式时会有BUG,比如一些浮点运算,使用这个参数可以让内核忽略387协处理器。
5、no-hlt
该选项仅当定义了CONFIG_BUGi386时才能用,一些早期的i486DX-100芯片在处理“hlt”指令时会有问题,执行该指令后不能可靠的返回操作系统,使用该选项,可以让Linux系统在CPU空闲的时候不要挂起CPU。
6、root=…
该参数告诉内核启动时使用哪个设备作为根文件系统。比如可以指定根文件为hda8:root=/dev/hda8。
7、ro和rw
ro参数告诉内核以只读方式加载根文件系统,以便进行文件系统完整性检查,比如运行fsck;rw参数告诉内核以读写方式加载根文件系统,这是默认值。
8、reserve=…
保留端口号。格式:reserve=iobase,extent[,iobase,extent]…,用来保护一定区域的I/O端口不被设备驱动程序自动探测。在某些机器上,自动探测会失败,或者设备探测错误或者不想让内核初始化设备时会用到该参数;比如: reserve=0x300,32device=0x300,除device=0x300外所有设备驱动不探测 0x300-0x31f范围的I/O端口。
9、mem=…
限制内核使用的内存数量。早期BIOS设计为只能识别64M以下的内存,如果你的内存数量大于64M,你可以指明,如果你指明的数量超过了实际安装的内存数量,系统崩溃是迟早的事情。如:mem=0x1000000意味着有16M内存,如果是mem=0x6000000,就是96M内存了。注意:很多机型把部分内存作为BIOS的映射,所以你在指定内存大小的时候一定要预留空间。你也可以在 pentium或者更新的CPU上使用mem=nopentium关闭4M的页表,这要在内核配置时申明。
10、panic=N
默认情况,内核崩溃--kernel panic 后会宕机而不会重启,你可以设置宕机多少秒之后重启机器;也可以在/proc/sys/kernel/panic文件里设置。
11、reboot=[warm|cold][,[bios|hard]]
该选项仅当定义了CONFIG_BUGi386时才能用。2.0.22的内核重启默认为cool reboot,warm reboot 更快,使用"reboot=bios"可以继承bios的设置。
12、nosmp 和 maxcpus=N
仅当定义了 SMP,该选项才可用。可以用来禁用多CPU或者指明最多支持的CPU个数。
临时修改内核参数
临时修改内核参数方法,启动系统选择内核时按字母 c 即可:
按 c 选择指定内核 然后 再 按 e 即可进入编辑界面 ,在当前界面,上下左右 箭头可切换光标 编辑完成之后ctrl+x 保存 后即可 以定义的参数开机(仅限本次有效,重启后变不再生效了)。
一般在维护或者修复系统的时候,我们才会在这里修改内核的参数。
系统的几种模式:
救援模式rescue
假设系统正常启动需要20个必须服务,如果某个必须服务出了问题就会导致系统没法启动,假设救援模式只有个必须服务,我们进入到救援模式的时候,出问题的服务不再救援模式的必须服务之内,此时系统就可以启动起来。
但是 需要root密码
类似于windows下的“安全模式”
进入该模式的方法:就是临时编辑内核参数的方法,启动界面c(选择内核)——e进入编辑界面,找到内核列 在最后写上参数保存即可;
这里写s,single,1都可以,按ctrl+x
在该模式下可以查看启动日志,查找系统无法正常启动的原因。
emergency模式:
假设系统正常启动需要20个必须服务,如果某个必须服务出问题了就会导致系统无法启动,假设emergency模式只有6个必须服务,我们进入到emergency模式的时候,出问题的服务不再emergency模式的必须服务内,此时系统可以启动起来。
但是 需要root密码
也类似于windows下的“安全模式”
进入该模式的方法:就是临时编辑内核参数的方法,启动界面c(选择内核)——e进入编辑界面,找到内核列 在最后写上参数保存即可;
ctrl+x后:
如果你使用的是RHEL7.0的话,记住要删除rhgb quiet这两个参数。7.1及以上就不需要删除
进入该模式的方法:就是临时编辑内核参数的方法,启动界面c(选择内核)——e进入编辑界面,找到内核列 在最后写上参数保存即可;
ctrl+x后就会直接进入到无密码界面:
需要注意的时,以这种方式进入的系统是 只读的,不能直接修改密码,所以需要先把系统文件以读写的方式重新挂载再修改密码即可:
密码修改完成以后,需要重置selinux标签:touch /.autorelabel ,然后重启:exec /sbin/init
如果使用的是vmware做实验的话,这当中会重启2次(等待即可),kvm没这个问题。
启动完毕后直接使用更改的密码登陆即可:
如果在没做什么操作的情况下 谁都能修改root密码 ,显然这是不安全的,所以,我们可以编辑文件,让别人无法直接通过上述进入安全模式的方法修改root密码:
编辑文件:vi /etc/grub2.d/00_header
在文件最下面新建以下格式,指定超级用户,并保存,保存以后需要执行:grub2-mkconfig -o /boot/grub2/grub.cfg :
上诉方法是密码以明文的方式呈现,下面说一下密码不以明文方式呈现,首先要先 生成秘钥(秘钥是pbkdf2格式):执行grub2-mkpasswd-pbkdf2-输入该用户的密码,如上图中的密码是:ccx123 :
秘钥生成以后,再次编辑文件:vi /etc/grub2.d/00_header ,在文件最下面新建以下格式,指定超级用户,并保存,保存以后需要执行:grub2-mkconfig -o /boot/grub2/grub.cfg :
更新数据以后reboot重启:
进入编辑模式以后,现在要提示输入用户名和密码:这个用户名就是之前文件定义的超级用户和密码:
用户密码输入错误会直接回到开机启动界面,又得重新按e进入该界面:
密码输入正确以后 才会进入到编辑界面,在该界面定义好内核文件后,ctrl+x即可正常启动:
该方法用于:1、grub被加密了,且不知道密码是什么 2、root密码也忘记了(就无法更改(grub)指定用户的密码了) ,这时候就需要用到另外一种救援模式:
这里以vmware为例,首先必须先挂载系统镜像,注:系统镜像版本必须和当前系统版本一致:
挂载好以后重启系统,并在刚开机时的界面按esc键(速度要快)调出启动菜单(可能版本不同有些系统并不是esc调出启动菜单,如果esc不行自行百度查看快捷键):
调出启动菜单后选择第三个cd启动:
然后选择第三项回车:
然后选择第二项回车,进入到救援模式(和前面的救援模式有区别,该处是光盘救援模式):
Continue回车:
回车以后继续回车,注:这儿提示了进系统后需要执行该命令才能从光盘根目录切换到 系统根目录:
再次按回车键:
现在就进入到了系统光盘中的救援模式:
输入进入时界面提示的命令切换到我们系统的根目录:chroot /mnt/sysimage/ ,进入到系统根目录以后就可以做任何操作了:
输入2次exit即可保存操作并重启系统:
===================================================================
当grup丢失的时候如何修复系统
因为grup是存储在第一个盘的前446b中,所以现在先把grup文件覆盖(损坏):
dd if=/dev/zero of=/dev/vda bs=1 count=446 (在 /dev/zero 中提取446大小的空文件写入到dev/vda磁盘中)
此时重启就会发现如下情况:
操作步骤:
参考前面强制进入安全模式的步骤:挂镜像-在刚开机时的界面按esc键(速度要快)调出启动菜单… 输入命令进入系统根目录:
到这一步以后重新把grub2重新安装到系统磁盘(lsblk查看)即可:grub2-install /dev/vda,安装完毕后重启即可:
重启后正常读取内核,成功:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
G4ubmV0L2N1aWNob25neGlu,size_16,color_FFFFFF,t_70)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-ILdAiob5-1713263490337)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!