[步骤] GRUB2 参数的设置 (RHEL 9 版)

内容一:增加 GRUB2 参数

# grubby --update-kernel ALL --add-args "selinux=0 enforcing=0"

(补充:这里以增加 selinux=0 enforcing=0 参数为例)

内容二:删除 GRUB2 参数

# grubby --update-kernel ALL --remove-args "selinux=0 enforcing=0"

(补充:这里以取消 selinux=0 enforcing=0 参数为例)

内容三:显示 GRUB2 的参数

3.1 显示 GRUB2 参数的简单信息

# grub2-editenv - list | grep kernelopts
kernelopts=root=UUID=ac2abk4hi-5529-26c1-b6o9-365260e054242 ro barrier=off crashkernel=auto rhgb quiet

(补充:其实就是 /etc/default/grub 文件中 GRUB_CMDLINE_LINUX=”” 这一行里的参数)

3.2 显示 GRUB2 参数的详细信息

# grubby --info DEFAULT
index=0
kernel="/boot/vmlinuz-5.14.0-687.12.1.el9_8.x86_64"
args="ro barrier=off crashkernel=1G-2G:192M,2G-64G:256M,64G-:512M $tuned_params"
root="UUID=ac2abk4hi-5529-26c1-b6o9-365260e054242"
initrd="/boot/initramfs-5.14.0-687.12.1.el9_8.x86_64.img $tuned_initrd"
title="Red Hat Enterprise Linux (5.14.0-687.12.1.el9_8.x86_64) 9.8 (Plow)"
id="e5b27xh36j583kj7231667u51l5c82hc-5.14.0-687.12.1.el9_8.x86_64"

3.3 显示所有历史 GRUB2 参数的详细信息

# grubby --info DEFAULT
index=0
kernel="/boot/vmlinuz-5.14.0-687.12.1.el9_8.x86_64"
args="ro barrier=off selinux=0 crashkernel=1G-2G:192M,2G-64G:256M,64G-:512M $tuned_params"
root="UUID=ac2abk4hi-5529-26c1-b6o9-365260e054242"
initrd="/boot/initramfs-5.14.0-687.12.1.el9_8.x86_64.img $tuned_initrd"
title="Red Hat Enterprise Linux (5.14.0-687.12.1.el9_8.x86_64) 9.8 (Plow)"
id="e5b27xh36j583kj7231667u51l5c82hc-5.14.0-687.12.1.el9_8.x86_64"
index=0
kernel="/boot/vmlinuz-5.14.0-687.12.1.el9_8.x86_64"
args="ro barrier=off selinux=0 crashkernel=1G-2G:192M,2G-64G:256M,64G-:512M $tuned_params"
root="UUID=ac2abk4hi-5529-26c1-b6o9-365260e054242"
initrd="/boot/initramfs-5.14.0-687.12.1.el9_8.x86_64.img $tuned_initrd"
title="Red Hat Enterprise Linux (5.14.0-687.12.1.el9_8.x86_64) 9.8 (Plow)"
id="e5b27xh36j583kj7231667u51l5c82hc-5.14.0-687.10.1.el9_8.x86_64"

[步骤] Rocky Linux & RHEL 本地缓存的软件包的安装

步骤一:将 yum 工具 & dnf 工具缓存下来的软件包设置为持续保存

# vi /etc/yum.conf

或者:

# vi /etc/dnf/dnf.conf

将部分内容修改如下:

......
keepcache = 1

步骤二:清空本地 yum 工具 & dnf 工具的缓存

# yum clean all

或者:

# dnf clean all

步骤三:将 yum 工具 & dnf 工具的软件包清单缓存到本地

# yum makecache

步骤四:将 yum 工具 & dnf 工具所有可以升级的软件包缓存到本地

# yum update --downloadonly

或者:

# dnf update --downloadonly

步骤五:显示已经缓存的软件包

5.1 显示所有已经缓存的软件包

# yum -C list

或者:

# dnf -C list

5.2 显示某个已经缓存的软件包

# yum -C list kernel

或者:

# dnf -C list kernel

(补充:这里以显示已经缓存的 kernel 软件包为例)

步骤六:使用 yum 工具 & dnf 工具缓存的所有软件包提到系统里现存的老的软件包

# yum -C update

或者:

# dnf -C update

[步骤] Linux 第三方库的添加

步骤一:添加第三方库

# vi /etc/ld.so.conf

或者:

# vi /etc/ld.so.conf.d/*.conf

添加以下内容:

......
/root/lib

(补充:这里以添加位于目录 /root/lib 的库为例)

(注意:这里的 /etc/ld.so.conf.d/*.conf 是指 /etc/ld.so.conf.d/ 目录下任意以 .conf 结尾的文件,例如 /etc/ld.so.conf.d/one.conf)

步骤二:创建新的 initramfs 文件为例

2.1 备份已有的 initramfs 文件

# cp /boot/initramfs-4.18.0-553.89.1.el8_10.x86_64.img  /boot/initramfs-4.18.0-553.89.1.el8_10.x86_64.img.backup

(
补充:
1) 这里以将:/boot/initramfs-4.18.0-553.89.1.el8_10.x86_64.img 备份为:/boot/initramfs-4.18.0-553.89.1.el8_10.x86_64.img.backup 为例
2) initramfs 是压缩的 cpis 文件,是临时的根文件系统包含一些脚本、程序和配置文件,在 Linux 启动过程中被加载在内存里,负责 Linux 操作系统在挂载根目录前加载内核模块、检查硬件、加载驱动以及挂载真正的根文件系统等)

2.2 创建新的 initramfs 文件

# dracut -f /boot/initramfs-(uname -r).img $(uname -r)

(补充:这里以将正在运行的内核版本生成一个新的 initramfs 为例)

(注意:此时原来启动系统时使用的那个 initramfs 文件会被覆盖)

步骤三:重启系统

# reboot

步骤四:确认第三方库已经添加

4.1 确认在现在的缓存中包含了第三方库

# ldconfig -p -M -X | grep out

(
补充:
1) 这里的 -N 和 -X 必须一起使用,作用是不更新相关链接和不重建相关缓存
2) 这里的 -p 作用是打印现在在缓存中的相关目录和相关候选库
3) 这条命令会显示目前在缓存中的第三方库
)

4.2 确认加载的库中没有重复的

# for l in $(ldconfig -p -N -X | awk '{ print $1 }') ; do matches=$(ldconfig -p -N -X | awk "\$1 == \"$l\" { print }"); if [ $(echo "$matches" | wc -l) -ge 2 ]; then echo "$matches"; echo; fi; done |wc -l

(补充:如果加载的库中没有重复的则这里不会有任何输出结果)