前言

之前一直对grubboot loader等概念不甚了解,趁着今天国庆假期,梳理以下,并且顺便美化一下我的Grub界面。

以下介绍的详细参考见于The Linux Booting Process - 6 Steps Described in Detail

Ubuntu开机经历的步骤

开启电源键后直到OS开机正常启动需要经历以下步骤:

BIOS

BIOS 查找、加载和执行 boot loader ,

Boot Loader

boot loader 是一段程序,用来选择并加载 Kernel(即内核)。boot loader 所在的区域叫做 Master Boot Record(MBR),中文翻译为主引导记录,是一块物理介质区域。

Linux系统中的 boot loader 统一都叫做grub

Kernel

Kernel运行起来之后就会有一系列的初始化程序和 Run level的程序被运行,这个时候我们的操作系统就跑起来了。

配置 Grub 的个性化主题

一共有四个比较集中的地方可以看到grub相关的配置:

  • /usr/share/grub/default/grub
  • /etc/default/grub
  • /etc/grub.d
  • /boot/grub/grub.cfg

逐一介绍如下:

/usr/share/grub/default/grub

参考下面的回答,所有 /usr/share 目录下的文件都是 example configuration files,即都是示例的配置文件,相当于一个备份区吧,如果你的个性化配置文件出了什么问题想恢复到原来的默认配置,那么这些文件都可以复制到/etc文件夹下。/etc目录下的文件都是系统所需要用到的。

/etc/default/grub

/etc/default/grub is where you can set simple options for many GRUB settings. It is parsed as a shell script.

这个文件是用来进行简单的 GRUB 配置的,该文件可以理解为是一个shell脚本。编辑该文件就可以改变 GRUB 的设置。修改完需要执行grub-update使新配置生效。grub-update的实际作用就是将相应的修改写入到/boot/grub/grub.cfg文件中,所以作为用户而言,改动该文件即可,无需直接修改/boot/grub/grub.cfg进行个性化配置。

/etc/grub.d

/etc/grub.d contains shell scripts which generate GRUB configuration (based on settings on /etc/default/grub). update-grub (aka grub-mkconfig) runs these scripts to generate actual GRUB configuration.

/etc/grub.d目录下包含了很多用来配置 GRUB 的shell脚本(这些配置是在/etc/default/grub配置的基础上进行的更复杂的配置)。执行grub-update使新配置生效。

/boot/grub/grub.cfg

/boot/grub/grub.cfg is where the generated configuration is saved for GRUB to use.

被修改的前两个文件执行grub-update后所生成的文件就是/boot/grub/grub.cfg文件,是 GRUB 实际使用到的配置文件。

下载主题

Grub-theme-vimix - Gnome-look.org上下载完主题压缩包后,参照下图:



一步步安装即可。特别的一点是这个主题的制作者还写了一个安装脚本替代使用者执行上述步骤,只不过与该步骤有细微的差别:把主题选在了/usr/share/grub/themes文件夹下;多了一个对/etc/default/grub文件的备份。

配置好后的效果为

相关参考可见于:

更详细的解释参考来源

还能在这些地方找到我

Ubuntu系统的开机全流程介绍及grub美化的更多相关文章

  1. Linux系统入门---开机启动流程

    目录 Linux系统入门---开机启动流程 一.centos6 二.systemd管理进程 1.查看级别 三.centos7实践案例: 1.案例1:centos7系统,单用户修改root密码 案例2: ...

  2. (转)CentOS 7系统详细开机启动流程和关机流程

    CentOS 7系统详细开机启动流程和关机流程 原文:http://blog.csdn.net/yuesichiu/article/details/51350654 名称 bootup - 系统启动流 ...

  3. linux系统下开机启动流程

    在了解开机启动流程之前,还是得先了解一些磁盘的基本知识.磁盘主要由盘片,机械手臂,磁头,主轴马达构成.盘片就是存储数据的物理单位了.然后盘片上我们可以分成扇区(sector)和柱面(cylinder) ...

  4. github Pull Request合入全流程介绍

    图解全流程 详细步骤 1. fork仓库 2. clone fork仓库到本地 3. 关联upstream原仓库 在fork本地仓库输入下面命令进行关联: git remote add upstrea ...

  5. ubuntu系统中crontab的使用介绍

    1.创建crontab任务 用户hancool

  6. 基于Jenkins的开发测试全流程持续集成实践

    今年一直在公司实践CI,本文将近半年来的一些实践总结一下,可能不太完善或优美,但的确初步解决了我目前所在项目组的一些痛点.当然这仅是一家之言也不够完整,后续还会深入实践和引入Kubernetes进行容 ...

  7. Ubuntu系统下静态DNS配置详解

    1.DNS服务的简介: DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器.DNS中保存了一张域 ...

  8. 【CKB.DEV 茶话会】第二期:聊聊 CKB 钱包和 Nervos DAO 全流程

    CKB.DEV 茶话会第二期:聊聊 CKB 钱包和 Nervos DAO 全流程 为了鼓励更多优秀的开发者和研究人员参与到 CKB 的开发和生态建设中去,我们希望组织一系列 CKB Developer ...

  9. Ubuntu系统---EasyECD安装记录

    说明:因解决Ubuntu花屏和频繁死机的问题(后来证实本人的电脑显卡驱动有问题),手残毁坏了系统,需重装.之前从未装过系统,经过三天,反复折腾装了近十次的系统,现总结如下. 第一步:Windows 系 ...

随机推荐

  1. layui关闭弹出框

    layer.close(index) - 关闭特定层 //当你想关闭当前页的某个层时 var index = layer.open(); var index = layer.alert(); var ...

  2. vue 优化hash持久化缓存

    公司用的是vue最近在学习react的打包时发现react会额外生成一个runtimeChunk,不知道具体原因所以查资料学习了下, 这里是runtime的功能,文章地址:https://sebast ...

  3. java js转码解码

    摘自网友:https://blog.csdn.net/sgear/article/details/1509400?utm_medium=distribute.pc_relevant.none-task ...

  4. Ansible部署及配置介绍

    原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 Ansible的安装部署 1.1 PIP方式 1.2 YUM方式 二 Ansi ...

  5. Linux从头学10:三级跳过程详解-从 bootloader 到 操作系统,再到应用程序

    作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...

  6. Java网络编程之TCP

    Java网络编程之TCP ​ TCP主要需要两个类:Socket和ServerSocket,Socket是客户端连接服务器时创建,参数需要指定服务器的ip和端口,ServerSocket是服务器端创建 ...

  7. 使用selenium模拟登录12306网站

    1 import yh 2 from selenium import webdriver 3 from PIL import Image 4 # from selenium.webdriver imp ...

  8. LVS实现(VS/DR)负载均衡和Keepalived高可用

    LVS是Linux Virtual Server的简写即Linux虚拟服务器,是一个虚拟的服务器集群系统一组服务器通过高速的局域网或者地理分布的广域网相互连接,在它们的前端有一个负载调度器(Load ...

  9. Nginx反向代理之巨坑underscores_in_headers

    一.背景 因为项目需求,在做Windows的相关的事情:基本架构就是Nginx--> Nginx --> IIS,在Linux机器上通过Nginx做反向代理到Windows的IIS:然后遇 ...

  10. WEB漏洞——SQL

    由于我的博客是学到渗透的时候才做的,没有关于WEB漏洞的笔记,现在发现WEB层面的漏洞有些不太熟悉了,边写一下笔记边复习一下,就从sql注入开始吧 话不多说先上大佬写的表[ctfhub]SQL注入 - ...