修改centos服务器启动画面

一、命令概述

这个命令用于在基于 YUM 包管理器(主要用于 RHEL, CentOS, Fedora 等旧版本)的 Linux 发行版上,自动安装名为 plymouth-plugin-script 的软件包。

yum: Yellowdog Updater, Modified 的缩写,是 RHEL/CentOS 7 及早期版本的默认包管理工具。

-y: 一个非常重要的选项,意思是 "对所有询问都自动回答 yes"。如果没有这个选项,当 yum 计算出需要安装的依赖包列表后,会询问你 "Is this ok [y/d/N]?",你必须手动输入 y 才能继续。使用 -y 则自动确认,使安装过程无需人工干预,非常适合脚本中使用。

install: 告诉 yum 要执行安装操作。

plymouth-plugin-script.x86_64: 要安装的软件包的具体名称。

plymouth: 核心项目名称,它是一个用于在系统启动和关闭时显示引导画面的应用程序,可以替代丑陋的文本滚动信息,提供平滑的图形化过渡体验。

plugin-script: 这是 Plymouth 的一个插件。这个特定的插件允许 Plymouth 运行自定义的 Shell 脚本来控制启动画面的行为,为实现高度定制化的启动动画提供了可能。

.x86_64: 指定了软件包的架构,这里是 64 位。通常可以省略,yum 会自动选择适合你系统架构的版本。

二、完整安装教程

重要前提:确保你使用的是 CentOS 7、RHEL 7 或类似的旧发行版。从 CentOS 8 / RHEL 8 开始,默认的包管理器已切换为 dnf(虽然 yum 通常作为它的一个兼容符号链接存在)。

步骤 1:更新 YUM 缓存(推荐)

在安装任何新软件包之前,最好先更新本地软件包元数据缓存,以确保获取到的是仓库中最新的版本信息。

bash 复制代码
sudo yum makecache

步骤 2:执行安装命令

使用 sudo 来获取 root 权限,然后运行安装命令。

bash 复制代码
sudo yum -y install plymouth-plugin-script

(注意:在实际输入时,.x86_64 通常可以省略)

命令执行过程会类似以下输出:

bash 复制代码
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package plymouth-plugin-script.x86_64 0:0.8.9-0.34.20140113.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                     Arch        Version                  Repository
                                                                           Size
================================================================================
Installing:
 plymouth-plugin-script      x86_64      0.8.9-0.34.20140113.el7  base       18 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 18 k
Installed size: 25 k
Downloading packages:
plymouth-plugin-script.x86_64.rpm                    |  18 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : plymouth-plugin-script-0.8.9-0.34.20140113.el7.x86_64      1/1 
  Verifying  : plymouth-plugin-script-0.8.9-0.34.20140113.el7.x86_64      1/1 

Installed:
  plymouth-plugin-script.x86_64 0:0.8.9-0.34.20140113.el7                     

Complete!

看到 "Complete!" 就表示安装成功了。

步骤 3:验证安装

你可以通过以下命令检查软件包是否已正确安装。

bash 复制代码
rpm -q plymouth-plugin-script

如果成功,它会返回已安装的包名和版本号,例如:plymouth-plugin-script-0.8.9-0.34.20140113.el7.x86_64。

三、Plymouth 和 script 插件的作用与用法

  1. Plymouth 是什么?
    Plymouth 是一个在 Linux 系统启动早期(在图形服务器 X11 或 Wayland 启动之前)和关闭时运行的应用程序。它的主要目的是:

美化引导过程:用漂亮的动画、进度条或徽标替换黑屏上滚动的内核和系统服务日志。

提供无缝的用户体验:让用户感觉系统启动很快、很流畅。

  1. plymouth-plugin-script 插件有什么用?
    这是 Plymouth 最强大的插件之一。它本身不提供动画,而是提供了一个框架,允许你通过执行一个自定义的 Shell 脚本来完全控制 Plymouth 的显示。
    在这个脚本里,你可以使用 Plymouth 提供的一系列命令来:
bash 复制代码
plymouth message: 在屏幕上显示文本信息。
plymouth update: 更新动画的状态(例如,让进度条前进一格)。
plymouth pause / plymouth unpause: 暂停和恢复动画。
plymouth ask-question: 在引导过程中与用户交互(例如,询问加密磁盘的密码)。

控制图像、精灵的显示位置等。

  1. 如何使用这个插件?

选择主题: 首先,你需要一个使用 script 插件的 Plymouth 主题。这些主题通常位于 /usr/share/plymouth/themes/ 目录下。主题的核心文件是一个 .script 文件。

查看现有主题:

bash 复制代码
ls /usr/share/plymouth/themes/

设置主题: 使用 plymouth-set-default-theme 命令来更改主题。例如,如果你想设置一个名为 my-custom-theme 的主题:

bash 复制代码
sudo plymouth-set-default-theme -R my-custom-theme

-R 选项会立即为下次启动重建 initrd(初始内存磁盘),这是必须的步骤。

创建自定义主题(高级): 如果你想自己制作动画,可以复制一个现有的 script 主题并进行修改。你需要学习 Plymouth 的脚本语法,它类似于一个简单的渲染引擎。

Plymouth 主题配置文件结构

Plymouth 主题主要通过几个特定文件来配置,其中图片路径的设置是关键。

  1. 主题目录结构
bash 复制代码
/usr/share/plymouth/themes/
└── your-theme-name/
    ├── plymouth-theme.script    # 主脚本文件(script插件使用)
    ├── your-theme-name.plymouth # 主题描述文件
    ├── logo.png                 # 您的logo文件
    ├── background.png           # 背景图片
    └── progress.png             # 进度条图片

. 主要的配置文件

A. 主题描述文件 (your-theme-name.plymouth)

这是主题的基本信息文件,使用 INI 格式:

bash 复制代码
[Plymouth Theme]
Name=My Custom Theme
Description=A custom theme with company logo
ModuleName=script

[script]
ImageDir=/usr/share/plymouth/themes/your-theme-name
ScriptFile=/usr/share/plymouth/themes/your-theme-name/plymouth-theme.script

B. 主脚本文件 (plymouth-theme.script)

这是控制动画逻辑的核心文件,使用 Plymouth 的脚本语言。以下是关键配置部分:

  1. 配置 logo.png 的脚本示例
bash 复制代码
// 初始化函数
fun init {
    // 设置背景(如果有)
    background = Image("background.png");
    background.Scale(1920, 1080); // 缩放适应屏幕
    
    // 加载并配置logo
    logo = Image("logo.png");
    
    // 获取屏幕和logo尺寸
    screen_width = Window.GetWidth();
    screen_height = Window.GetHeight();
    logo_width = logo.GetWidth();
    logo_height = logo.GetHeight();
    
    // 计算居中位置
    logo_x = (screen_width - logo_width) / 2;
    logo_y = (screen_height - logo_height) / 2;
    
    // 设置logo位置
    logo.SetX(logo_x);
    logo.SetY(logo_y);
    
    // 可选:初始时隐藏logo,通过动画显示
    logo.SetOpacity(0);
}

// 显示函数
fun show_boot_message {
    // 在启动过程中显示消息
    message = "Starting System...";
    Plymouth.SetMessage(message);
}

// 进度更新函数
fun progress {
    // 当有进度更新时调用
    // 可以在这里添加logo的动画效果
    
    // 示例:淡入效果
    if (Plymouth.GetMode() == "boot") {
        logo.SetOpacity(logo.GetOpacity() + 0.05);
        if (logo.GetOpacity() > 1) {
            logo.SetOpacity(1);
        }
    }
}

// 启动完成函数
fun boot_progress {
    // 启动完成时的动画
    logo.SetOpacity(1);
}

// 关机函数
fun quit {
    // 关机时的动画效果
    logo.SetOpacity(0);
}
  1. 更详细的 logo 配置示例
bash 复制代码
fun init {
    // 加载logo图片
    company_logo = Image("logo.png");
    
    // 调整logo大小(可选)
    company_logo.Scale(400, 200); // 宽度400像素,高度200像素
    
    // 设置位置 - 屏幕顶部居中
    logo_x = (Window.GetWidth() - company_logo.GetWidth()) / 2;
    logo_y = 100; // 距离顶部100像素
    
    company_logo.SetX(logo_x);
    company_logo.SetY(logo_y);
    
    // 添加旋转动画(可选)
    company_logo.SetRotation(0);
    
    // 设置初始透明度
    company_logo.SetOpacity(0);
    
    // 创建精灵并添加到窗口
    logo_sprite = Sprite();
    logo_sprite.SetImage(company_logo);
    logo_sprite.SetZ(100); // 设置显示层级
    
    Window.AddSprite(logo_sprite);
}

fun progress {
    // 淡入动画
    current_opacity = company_logo.GetOpacity();
    if (current_opacity < 1) {
        company_logo.SetOpacity(current_opacity + 0.02);
    }
    
    // 轻微浮动效果
    time = Plymouth.GetTime();
    float_offset = Math.Sin(time * 3) * 5; // 上下浮动5像素
    company_logo.SetY(100 + float_offset);
}
  1. 创建完整主题的步骤
    步骤 1:创建主题目录
bash 复制代码
sudo mkdir -p /usr/share/plymouth/themes/my-logo-theme

步骤 2:创建主题描述文件

bash 复制代码
sudo nano /usr/share/plymouth/themes/my-logo-theme/my-logo-theme.plymouth
bash 复制代码
[Plymouth Theme]
Name=My Logo Theme
Description=Custom theme with company logo
ModuleName=script

[script]
ImageDir=/usr/share/plymouth/themes/my-logo-theme
ScriptFile=/usr/share/plymouth/themes/my-logo-theme/plymouth-theme.script

步骤 3:创建主脚本文件

bash 复制代码
sudo nano /usr/share/plymouth/themes/my-logo-theme/plymouth-theme.script

使用上面的脚本示例内容。

步骤 4:复制 logo 图片

将您的logo.png复制到主题目录

bash 复制代码
sudo cp /path/to/your/logo.png /usr/share/plymouth/themes/my-logo-theme/

步骤 5:设置权限

bash 复制代码
sudo chmod 644 /usr/share/plymouth/themes/my-logo-theme/*

步骤 6:应用主题

bash 复制代码
sudo plymouth-set-default-theme -R my-logo-theme
  1. 图片格式建议
    格式:PNG(支持透明度)

尺寸:根据您的需要,建议 200-800 像素宽度

颜色:考虑到启动时可能是深色背景,建议使用白色或亮色logo

文件大小:尽量优化,避免过大影响启动性能

  1. 调试技巧
    如果主题不工作,可以:
    查看详细日志:
bash 复制代码
sudo plymouth --show-splash

在另一个终端查看日志

sudo tail -f /var/log/boot.log

测试主题:

bash 复制代码
sudo plymouthd
sudo plymouth --show-splash
sudo plymouth --quit

检查initrd:

bash 复制代码
lsinitrd /boot/initramfs-$(uname -r).img | grep plymouth

通过以上配置,您就可以成功将自定义的 logo.png 集成到系统的启动画面中了。记得在修改后使用 -R 参数重建 initrd 才能使更改生效。

四、对于现代系统(CentOS 8/RHEL 8/Rocky Linux/AlmaLinux 及更新版本)

在这些系统上,虽然 yum 命令通常仍然可用(因为它被链接到 dnf),但官方推荐使用 dnf。

安装命令变为:

bash 复制代码
sudo dnf -y install plymouth-plugin-script

步骤和原理与 yum 完全相同。

五、故障排除

"No package plymouth-plugin-script available":

检查拼写是否正确。

确保你的 YUM/DNF 仓库配置正确且已启用。可以运行 yum repolist 查看。

在某些最小化安装的系统或特定衍生版中,该包可能不在默认仓库里。

安装后主题不生效:

确保已使用 plymouth-set-default-theme -R 命令设置了主题并重建了 initrd。

确保你的内核命令行(GRUB配置)中包含 rhgb quiet 参数来启用图形化启动。rhgb (Red Hat Graphical Boot) 正是 Plymouth 的前身。

想查看详细启动日志而不是 Plymouth 动画:

在 GRUB 启动菜单界面,按 e 键编辑启动参数,找到以 linux 或 linux16 开头的行,删除其中的 rhgb quiet 参数,然后按 Ctrl+X 启动。这样就会显示传统的文本启动信息。

相关推荐
倔强的石头1063 小时前
openGauss数据库:从CentOS 7.9部署到实战验证
linux·数据库·centos
梁正雄4 小时前
linux服务-Nginx+Tomcat+Redis之Session 共享 - 容器单机版
linux·nginx·tomcat
wanhengidc4 小时前
云手机是由什么组成的?
运维·服务器·web安全·游戏·智能手机
linchare7 小时前
linux debian上只装mysql的客户端步骤
linux·mysql·debian
wanhengidc8 小时前
网站服务器都有哪些作用?
运维·服务器·科技·智能手机·云计算
卓小帅的博客8 小时前
关于实现远程服务器使用本地网络的清晰简洁的教程
服务器·网络·vscode·连接超时
百***75749 小时前
linux上redis升级
linux·运维·redis
顾安r9 小时前
11.22 脚本打包APP 排错指南
linux·服务器·开发语言·前端·flask
Neur0toxin9 小时前
入侵排查_2025/11/23
linux·windows·应急响应