Linux修改内核默认启动项

修改内核默认启动项
永久修改grub相关配置
1、/etc/default/grub
GRUB_TIMEOUT=10 (在内核选择停留的时间)
GRUB_CMDLINE_LINUX="resume=/dev/mapper/rhel-swap    rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet net.ifnames=0 biosdevname=0"
2、修改/etc/grub.d/下面的文件
3、命令行修改内核参数
grubby   --remove-args="rhgb quiet"(删除参数)  --args=console=ttyS0,115200(添加参数,或者--args="rhgb quiet")  --update-kernel(必须要接的选项)  /boot/vmlinuz-4.18.0-80.el8.x86_64
grubby   --info  /boot/vmlinuz-4.18.0-80.el8.x86_64  :  查看默认内核的信息
grubby   --info=ALL   :   查看所有内核的启动项
grubby --default-kernel  :  查看默认启动内核
grubby --default-index   :  获取默认菜单栏的index,默认为0,一位内是从1开始
grub2-set-default  1   :  设置默认的启动项为第二个,开机跳转到救援模式那一行
grubby --set-default /boot/vmlinuz-0-rescue-cb8aeb39ff2c47a2b37050a5550f9cc5  :  用grubby绑定指定版本的内核
!!!!!!注意:  1和2在修改修改文件之后需要用grub2-mkconfig -o /boot/grub2/grub.cfg重新生成grub.cfg文件,不然无法生效,而3则是立即生效
临时修改,开机之后按e可以进入到内核中,加入的rd.break或者其它的参数都是临时的

读取/etc/fstab
1.读写挂载根文件系统
/dev/mapper/rhel-root   /              xfs     defaults        0 0
defaults:挂载选项,7个选项的组合
    rw, suid, dev, exec, auto, nouser, and async
2、挂载本地其他文件系统(用uuid进行挂载,用blkid可以查看uuid)
UUID=91d8d98f-feab-436c-83a8-91e3602d764f /boot(挂载的位置)   xfs(文件系统类型)     defaults        0 0
/dev/mapper/rhel-swap   swap           swap    defaults        0 0


引导程序损坏(引导程序是一段固定的代码,可以直接通过命令进行生成即可)
模拟破坏引导程序(只需要破坏前446字节即可,切记不能破坏多,因为根是在后64字节的分区表上)
1、dd if=/dev/zero of=/dev/nvme0n1(注意接的是磁盘,并不是分区)  bs=446 count=1
2、重启并选择从光盘启动
3、选择Troubleshooting
4、进入救援模式
5、按1,继续进行操作,此时根是被挂载在/mnt/sysimage上,2(是根只读挂载,用于只想把根里面的数据cp出来的情况)
6、按enter进入光盘提供的shell中
7、chroot /mnt/sysimage切换到真正的根文件系统
8、用grub2-install /dev/nvme0n1进行修复
9、exit退出两次,重启,取消从光盘启动


总结:
1、bios检查硬件,并选择启动设备

2、bios读取启动设备上的引导程序(磁盘的前446字节),此时bios就把系统控制权交给了引导程序执行
如果引导程序损坏,那么就需要修复,进入救援模式,执行grub2-install 根磁盘

3、引导程序读取配置文件/boot/grub2/grub.cfg,选择要启动的内核
指定/boot/所在的分区,这时候引导程序(boot loader)将控制权交给内核,加载内核和initramfs,并放入内存中,内核在initramfs中找到所有硬件驱动,并初始化,initramfs中的/sbin/init以PID1启动,在RHEL8中,/sbin/init是一个指向/lib/systemd/systemd的链接,后以ro分方式加载真正临时的根文件系统,加载ramdisk文件

4、读取/etc/fstab,并以rw挂载根,并且挂载本地的其他文件系统
fstab文件里面出现错误(例如uuid手动输错了),或者文件系统损坏(很大可能是超级块坏了),导致系统无法启动,需要等待超时时间,等待完成切勿重启,因为重启只会重复错误的操作,直接输入密码进入,并进入/etc/fstab,把损坏的文件系统那一行给注释掉,然后进行修复

5、从initramfs运行的环境切换到/sysroot根文件系统下面

6、启动systemd,查看启动target,/etc/systemd/system/default.target -> /usr/lib/systemd/system/graphical.target
在此过程中,执行systemctl set-default multi-user.target,创建一个链接文件,链接到 /usr/lib/systemd/system/multi-user.target,因为图形化和命令模式的服务是有依赖关系的,当默认启动为图形,就会自动开启命令行,在/etc/systemd/system/graphical.target.wants目录下放了graphical启动所需要的服务

7、启动tty终端,用户登录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/604301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java线程同步机制

第1章:引言 大家好,我是小黑。今天咱们来聊聊并发编程,咱们经常听说并行、并发这些词,特别是在处理大量数据、高用户负载时,这些概念就显得尤为重要了。为什么呢?因为并发编程可以帮助咱们的应用程序更有效…

在Raspberry Pi Zero W中配置TFT LCD Framebuffer驱动

TFT LCD Framebuffer驱动配置 文章目录 TFT LCD Framebuffer驱动配置1、硬件准备2、软件配置2.1 启用SPI驱动2.2 TFT LCD设备驱动树配置 本文将以ILI9341 LCD为例,将详细介绍如何配置TFT LCD的Framebuffer驱动。 1、硬件准备 Raspberry Pi Zero W开发板一个&#x…

Linux系统常用的安全优化

环境:CentOS7.9 1、禁用SELinux SELinux是美国国家安全局对于强制访问控制的实现 1)永久禁用SELinux vim /etc/selinux/config SELINUXdisabled #必须重启系统才能生效2)临时禁用SELInux getenforce #查看SELInux当前状态 setenforce 0 #数字…

[AutoSar]基础部分 RTE 06 对runnable的触发和SWC的影响

目录 关键词平台说明一、runnable二、RTE的event2.1Mode类型event2.2周期触发类型2.3 数据交互触发 三、internal runnable value四、专属运行区指定五、per_instance memory 关键词 嵌入式、C语言、autosar、Rte 平台说明 项目ValueOSautosar OSautosar厂商vector芯片厂商T…

UG装配-动画制作

制作装配动画用到的命令是序列 制作动画前,先将所有约束取消 当我们在装配导航器中装配好产品后,可以在序列中编辑生产动态装配或爆炸动画; 需要注意的是,如果是希望创建装配或爆炸动画,需要先将所有约束取消&#…

mac版viso软件 流程图软件omnigraffile

OmniGraffle 是一款由 The Omni Group 开发的绘图工具,主要用于创建各种类型的图表、流程图、组织结构图、网站地图等。它提供了丰富的绘图工具和功能,包括形状、线条、文本、颜色、样式等,可以帮助用户轻松地创建出精美的图表和图形。 OmniG…

Micro-app 微前端框架demo介绍

Micro-app 框架 1、框架安装 npm i micro-zoe/micro-app --save2、子应用对应的view页面 <template><div><!-- name(必传)&#xff1a;应用名称url(必传)&#xff1a;应用地址&#xff0c;会被自动补全为http://localhost:3000/index.htmlbaseroute(可选)&…

react+AntDesign 之 pc端项目案例

1.环境搭建以及初始化目录 CRA是一个底层基于webpack快速创建React项目的脚手架工具 # 使用npx创建项目 npx create-react-app react-jike# 进入到项 cd react-jike# 启动项目 npm start2.安装SCSS SASS 是一种预编译的 CSS&#xff0c;支持一些比较高级的语法&#xff0c;…

3D点云上的深度学习综述

1 Title Deep Learning for 3D Point Clouds: A Survey&#xff08;Yulan Guo; Hanyun Wang; Qingyong Hu; Hao Liu; Li Liu; Mohammed Bennamoun&#xff09;【IEEE Transactions on Pattern Analysis and Machine Intelligence 2020】 2 Conclusion Deep learning on point…

Android开发编程从入门到精通,安卓技术从初级到高级全套教学

一、教程描述 本套教程基于JDK1.8版本&#xff0c;教学内容主要有&#xff0c;1、环境搭建&#xff0c;UI布局&#xff0c;基础UI组件&#xff0c;高级UI组件&#xff0c;通知&#xff0c;自定义组件&#xff0c;样式主题&#xff1b;2、四大组件&#xff0c;Intent&#xff0…

(九)One-Wire总线-DS18B20

文章目录 One-Wire总线篇复位和应答读/写0&#xff0c;1 DS18B20篇原理图概述最主要特性几个重要的寄存器&#xff08;部分要掌握&#xff09;存储有数字温度结果的2个字节宽度的温度寄存器寄存器描述&#xff1a;寄存器说明&#xff1a; 一个字节的过温和一个字节的低温&#…

msckf_vio在ubuntu20.04中的编译

1.新建catkin workspace文件夹&#xff0c;并在其中新建src文件夹&#xff0c;并将源码clone至src内。 源码地址&#xff1a;https://github.com/KumarRobotics/msckf_vio 目录层级示意如下&#xff0c;build和devel不必新建&#xff0c;后续指令会自动新建。 2. 在编译之前…

Python 面向对象之反射

Python 面向对象之反射 【一】概念 反射是指通过对象的属性名或者方法名来获取对象的属性或调用方法的能力反射还指的是在程序额运行过程中可以动态获取对象的信息(属性和方法) 【二】四个内置函数 又叫做反射函数 万物皆对象&#xff08;整数、字符串、函数、模块、类等等…

第02章_变量与进制

第02章_变量与进制 讲师&#xff1a;尚硅谷-宋红康&#xff08;江湖人称&#xff1a;康师傅&#xff09; 官网&#xff1a;http://www.atguigu.com 本章专题脉络 1、关键字(keyword) 定义&#xff1a;被C语言赋予了特殊含义&#xff0c;用做专门用途的字符串&#xff08;或单…

力扣:438. 找到字符串中所有字母异位词 题解

Problem: 438. 找到字符串中所有字母异位词 438. 找到字符串中所有字母异位词 预备知识解题思路复杂度Code其它细节推荐博客或题目博客题目滑动窗口哈希表 预备知识 此题用到了双指针算法中的滑动窗口思想&#xff0c;以及哈希表的运用。c中是unordered_map。如果对此不了解的u…

Android 车联网——PowerHalService介绍(九)

在前面文章介绍 CarPowerManagementService 时候,我们了解到 VehicleHAL 接收到电源变化的信号后,通过 PowerHalService 分发给 CarPowerManagementService 的。而且 CarPowerManagementService 的很多方法也都是调用到 PowerHalService 中。这一节我们来看一下 PowerHalServ…

二、UI文件设计与运行机制

一、UI文件设计与运行机制 1、创建工程 2、添加控件&#xff0c;实现按钮点击 &#xff08;1&#xff09;添加控件 &#xff08;2&#xff09;添加信号和槽 2、分析项目结构 test_02test_02.pro Qt工程文件Headerswidget.h 设计的窗体类的头文件Sourcesmain.cpp 主程序入…

metartc5_jz源码阅读-yang_push_h264_encodeVideo

//编码rtp的视频buffer&#xff0c;发送给p2p对端。 int32_t yang_push_h264_encodeVideo(YangRtcSession *session, YangPushH264Rtp *rtp,YangRtpPacket *pkt) {int err 0;//用videoRtpBuffer中的数据填充rtp->buf.yang_init_buffer(&rtp->buf, yang_get_rtpBuffe…

如何在CMakeLists.txt设置多线程编译加速

在windows cmake-gui 编译时候&#xff0c;没有像linux 一样有make -j 实现多线程编译 但是没有多线程编译速度会很慢&#xff0c;为了windows 编译程序时候实现多线程加速可以在 cmakelists.txt 添加下面两句就可以实现多线程编译 set( CMAKE_C_FLAGS "${CMAKE_C_FLA…

RabbitMQ消息可靠性保证机制3--消费端ACK机制

消费端ACK机制 ​ 在这之前已经完成了发送端的确认机制。可以保证数据成功的发送到RabbitMQ&#xff0c;以及持久化机制&#xff0c;然尔这依然无法完全保证整个过程的可靠性&#xff0c;因为如果消息被消费过程中业务处理失败了&#xff0c;但是消息却已经被标记为消费了&…