十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

小白也能轻松看懂的Linux——Linux 交换空间管理及系统启动原理

小白也能轻松看懂的Linux——Linux 交换空间管理及系统启动原理 文章目录Linux 交换空间管理及系统启动原理计算机存储器的层次结构1. 主存储器速度与带宽2. 计算机存储器的工作原理3. 物理内存与虚拟内存Swap 空间管理1. 查看内存2. Swap 空间大小建议3. 创建交换空间4. 激活 swap 空间5. 取消 swap 空间激活6. 持久化激活 swap 空间Linux 系统启动原理CentOS 71. 系统 target2. 系统启动级别3. 设置系统运行目标重置 ROOT 密码方法1rd.break方法2init/bin/bash/etc/fstab 引起的系统启动问题1. 环境准备2. 故障1挂载点不存在3. 故障2设备名称写错或者找不到设备4. 故障3破坏文件系统GRUB2 配置1. grub2 配置文件2. grub 菜单超时时间3. kernel 启动参数4. grub 菜单加密5. 默认启动条目5. 默认启动条目Linux 交换空间管理及系统启动原理计算机存储器的层次结构计算机存储器速度越快成本较高。为了获得好的性能/价格比计算机中各种存储器组成一个层状的塔式结构取长补短协调工作。CPU 寄存器是 CPU 内部用来存放数据的一些小型存储区域用来暂时存放参与运算的数据和运算结果以及一些 CPU 运行需要的信息。CPU 高速缓存CPU Cache是一种容量小、速度快的高缓冲存储器由 SRAM 组成直接制作在 CPU 芯片内速度几乎与 CPU 一样快。在金字塔式存储体系中它位于自顶向下的第二层仅次于 CPU 寄存器。其容量远小于内存但速度却可以接近处理器的频率。主存储器Main memory简称主存或内存其作用是存放指令和数据并能由中央处理器CPU直接随机存取。主存储器速度比 CPU 高速缓存慢但存储容量却大得多。辅助存储器速度慢得多优点是容量大可持久化存储。1. 主存储器速度与带宽主存储器的速度一般用存取时间衡量即每次与 CPU 间数据处理耗费的时间以纳秒(ns)为单位。大多数 SDRAM 内存芯片的存取时间为 5、6、7、8 或 10ns。主存储器的带宽计算公式带宽频率 * 位宽8例如DDR4 内存频率是 3600 MHz在 64 位系统双通道位宽为 128以此类推1B8bit单通道 DDR4-36003600MHz * 64bit / 8 28800MB/S双通道 DDR4-36003600MHz * 64bit * 2 / 8 57600MB/S2. 计算机存储器的工作原理CPU 运行程序时先从寄存器中读取数据。如果在寄存器中可以找到数据则直接从寄存器中读取。如果在寄存器中找不到数据则从 CPU Cache 中读取数据并将数据缓存在 CPU Cache 中。如果在 CPU cache 中可以找到数据则直接从 CPU Cache 中读取。如果在 CPU cache 中找不到数据则从主存储器内存中读取数据将数据缓存在主存储器中。如果在内存中可以找到数据则直接从内存中读取。如果在内存中找不到数据则从辅助存储器中读取数据例如机械磁盘、光盘、U盘等并将数据缓存在内存中。3. 物理内存与虚拟内存计算机系统将内存划分为固定大小的块称为page标准page 大小为 4 KiB。进程并不直接对物理内存寻址每个进程具有虚拟地址空间 virtual address space。当进程请求内存时MMU 将进程获得的虚拟地址VA映射到物理地址PA。MMU是 Memory Management Unit 的缩写即内存管理单元它是 CPU 中用来管理虚拟存储器、物理存储器的控制线路负责将虚拟地址映射为物理地址以及提供硬件机制的内存访问授权。为什么 CPU 不直接访问物理地址虚拟内存的容量是物理内存和交换空间的总和而虚拟地址负责映射到物理内存地址和交换空间地址。进程使用内存的过程中希望内存是连续的。如果进程直接访问物理地址则内核很难保证进程获得的物理地址空间是连续的因为进程存在着运行和退出就会出现内存碎片化。进程的虚拟地址在虚拟内存中是连续的达到了内存连续的目的而 MMU 会将进程的虚拟地址映射到物理地址。# 直接将内存中还未保存进硬盘的数据保存syncSwap 空间管理Swap意思是“交换”、“实物交易”。Linux Swap交换空间是受 Linux 内核内存子系统控制的磁盘区域。功能当内存使用量超过定义的限制时内核寻找已分配给进程但空闲的内存页将该空闲的内存页写入到交换空间并向其他进程重新分配 RAM 页面。如果某个程序需要访问磁盘上的页面则内核会找到另一个空闲的内存页将其写入到磁盘然后从交换区重新调用所需的页面。如果某个程序需要访问数据访问的数据存放在交换空间则该程序直接从交换空间读取数据而不需要从磁盘原始位置读取进而提高速度。简单地说Linux Swap 空间就是在内存不够的情况下操作系统先把内存中暂时不用的数据存到硬盘的交换空间腾出内存来让别的程序运行和 Windows 的虚拟内存pagefile.sys的作用是一样的。交换空间只是临时的解决办法由于交换区位于磁盘上它的速度比物理内存慢得多因此如果需要更快的速度最好的办法仍然是加大物理内存。1. 查看内存# 默认单位是KiB使用-m选项以MiB为单位[rootcentos7 ~]# freetotal usedfreeshared buff/cache available Mem:40261563304603528844121361668523485576Swap:406322804063228输出说明Mem 中的 total物理内存空间大小。used使用的内存 (total - free - buffers - cache)。free未使用的内存空间大小(真正的空闲未被任何程序占用)。shared多个进程共享的内存空间大小。buff/cache从磁盘读取或待写回磁盘的数据占用的内存空间大小。Swap 中的 total交换空间大小。used使用的交换空间大小。free未使用交换空间大小。2. Swap 空间大小建议管理员应根据系统的内存工作负载来调整交换空间大小。根据物理内存总量下表提供了一些指导物理内存(RAM)交换空间允许HIBERNATE时的交换空间2GiB或以下两倍的RAM三倍的RAM2GiB和8GiB之间同等的RAM两倍的RAM8GiB和64GiB之间至少4GiB1.5倍的RAM64GiB以上至少4GiB不建议Hibernate笔记本电脑和台式机的 Hibernate 功能会在关闭系统电源之前使用交换空间来保存 RAM 内容。重新打开系统时内核将从交换空间恢复 RAM 内容无需完全启动。对于这些系统而言交换空间需要超过 RAM 量。3. 创建交换空间# 使用parted创建所需大小的分区并将其文件系统类型设置为linux-swap[rootcentos7 ~]# parted /dev/sdb mklabel gpt[rootcentos7 ~]# parted /dev/sdb unit MiB mkpart swap01 linux-swap 1 2049[rootcentos7 ~]# parted /dev/sdb unit MiB print# 格式化swap空间[rootcentos7 ~]# mkswap /dev/sdb1Setting up swapspace version1, size2097148KiB no label,UUID2bf4e179-3648-4412-9495-3b278df4acd64. 激活 swap 空间# 激活swap空间[rootcentos7 ~]# swapon /dev/sdb1# 查看swap设备列表[rootcentos7 ~]# swapon -sFilename Type Size Used Priority /dev/dm-1 partition40632280-2/dev/sdb1 partition20971480-3默认情况下多个交换空间具有相同的优先级时系统会按顺序使用交换空间即内核先使用第一个已激活交换空间直至其空间已满然后开始使用第二个交换空间。在激活交换分区的时候可以为每个交换空间定义一个优先级从而强制按该顺序使用交换空间。swapon命令使用-p选项指定优先级优先级介于 -1 和 32767 之间值越大优先级越高。[rootcentos7 ~]# swapon -p 4 /dev/sdb15. 取消 swap 空间激活[rootcentos7 ~]# swapoff /dev/sdb1[rootcentos7 ~]# swapon -sFilename Type Size Used Priority /dev/dm-1 partition40632280-26. 持久化激活 swap 空间修改/etc/fstab文件添加如下类似记录UUID2bf4e179-3648-4412-9495-3b278df4acd6 swap swap pri4 0 0使用命令swapon -a激活 /etc/fstab 中所有交换设备。使用命令swapoff -a取消 /etc/fstab 中所有交换设备激活。[rootcentos7 ~]# swapon -a[rootcentos7 ~]# swapon -sFilename Type Size Used Priority /dev/dm-1 partition40632280-2/dev/sdb1 partition20971480-3[rootcentos7 ~]# swapoff -a[rootcentos7 ~]# swapon -sLinux 系统启动原理CentOS 7现代计算机系统是硬件与软件的复杂组合。从加电状态开始到拥有登录提示符的运行中系统这需要大量的硬件和软件配合工作。以下从较高层面概述 CentOS7 启动过程计算机接通电源。系统固件现代 UEFI 或更旧的 BIOS运行开机自检(POST)并开始初始化硬件。配置在系统启动早期通过按特定的组合键例如 F2配置系统固件。系统固件搜索启动设备根据固件配置的顺序搜索启动磁盘上的主启动记录(MBR)。系统固件从磁盘读取 boot loader然后将系统控制权交给 boot loaderboot loader 是 GRand Unified Bootloader version 2(GRUB2)。配置使用grub2-install命令进行配置它将安装 GRUB2 作为磁盘上的启动加载器。GRUB2 从 /boot/grub2/grub.cfg 文件加载配置并显示一个操作系统菜单可以从中选择要启动的系统。配置使用 /etc/grub.d/ 目录、/etc/default/grub 文件和grub2-mkconfig命令进行配置以生成 /boot/grub2/grub.cfg 文件。boot loader 根据选定条目的配置从磁盘中加载 kernel 和 initramfs并将它们放入内存中。initramfs 是一个存档其中包含启动时所有必要硬件的内核模块、初始化脚本等等。boot loader 将控制权交给 kernel并同时将启动项的内核参数、initramfs 在内存中的位置传递给 kernel。内核在 initramfs 中找到所有硬件驱动程序并初始化这些硬件。配置使用 /etc/dracut.conf.d/ 目录、dracut命令和lsinitrd命令进行配置以检查 initramfs 文件。initramfs 执行 /sbin/init作为 PID 1。在 CentOS 中/sbin/init 是一个指向 systemd 的链接。配置使用内核参数initcommand配置系统初始化程序。随后systemd 会加载从内核命令行传递的 target 或者加载系统配置的 default.target该目标通常启动一个基于文本的登录或图形登录屏幕。配置使用systemctl设置默认 target。default.target 依赖 sysinit.targetsysinit.target 用于初始化系统例如读取 /etc/fstab 挂载文件系统激活 systemd-journald 等。配置使用 /etc/fstab 配置文件系统开机自动挂载。default.target 还会激活开机启动的单元。配置使用systemctl设置开机启用服务。default.target 还会激活 getty.target该 target 将打开 tty1 终端用于用户登录。1. 系统 targetsystemd 使用类型为 target 的单元来分组不同单元例如 multi-user.target 包涵 chronyd.service、crond.service、firewalld.service 等服务。target 还可以包涵其他 target例如 graphical.target 包涵 multi-user.targetmulti-user.target 包涵 basic.targetbasic.target 包涵 sysinit.target。使用以下命令查看 target 之间依赖关系[rootcentos7 ~]# systemctl list-dependencies graphical.targetgraphical.target ● ├─accounts-daemon.service ● ├─gdm.service ● ├─initial-setup-reconfiguration.service ● ├─network.service ● ├─rtkit-daemon.service ● ├─systemd-readahead-collect.service ● ├─systemd-readahead-replay.service ● ├─systemd-update-utmp-runlevel.service ● ├─udisks2.service ● └─multi-user.target......# 查看反向依赖[rootcentos7 ~]# systemctl list-dependencies sshd.service --reversesshd.service ● └─multi-user.target ● └─graphical.target2. 系统启动级别传统的 SysVinit 系统定义了 7 个运行级别0-6每个级别有特定的作用具体如下运行级别target作用描述0关机halt系统终止所有进程并关闭电源对应命令shutdown -h now。1emergency.target, rescue.target单用户模式single user mode仅 root 用户可登录无网络服务用于系统修复如密码找回。2多用户模式无 NFS支持多用户登录但不启动网络文件系统NFS部分发行版默认此级别功能与级别 3 相同。3multi-user.target完全多用户模式文本界面启动所有网络服务用户通过命令行登录无图形界面。4预留级别默认未使用可由用户自定义用途。5graphical.target图形化多用户模式在级别 3 的基础上启动图形界面如 GNOME、KDE用户通过图形登录界面访问系统。6重启reboot系统终止所有进程并重启对应命令shutdown -r now。3. 设置系统运行目标/etc/inittab 文件是 CentOS 6 之前版本初始化系统使用的配置文件。# 部分内容如下# Default runlevel. The runlevels used by RHS are:# 0 - halt (Do NOT set initdefault to this)# 1 - Single user mode# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)# 3 - Full multiuser mode# 4 - unused# 5 - X11# 6 - reboot (Do NOT set initdefault to this)## 设置运行级别为5也就是图形化方式启动。id:5:initdefault:设置系统当前运行 target# 设置系统当前运行target为multi-user.target[rootcentos7 ~]# systemctl isolate multi-user.target# 设置系统当前运行target为graphical.target[rootcentos7 ~]# systemctl isolate graphical.target设置系统开机默认运行 target# 查看系统开机默认运行target[rootcentos7 ~]# systemctl get-defaultgraphical.target# 设置系统开机默认运行target[rootcentos7 ~]# systemctl set-default multi-user.target# 重启验证在系统启动时选择其它目标要在启动时选择其他目标将systemd.unittarget.target参数附加到内核命令行。该配置是临时生效的经常用于系统启动过程中故障排除。步骤启动系统 - 按任意键Enter除外中断倒计时 - 光标移至第一个内核条目按e编辑 - 光标移至以linux16开头的行末尾附加systemd.unitmulti-user.target。按Ctrlx使用这些更改进行启动。重置 ROOT 密码以下几种方法可用于设置新的 root 密码系统管理员可以使用 Live CD 启动系统挂载根文件系统然后编辑 /etc/shadow删除 root 账户密码字段或使用已知密码字段替换 root 密码字段。在 CentOS 7 之后版本中可以让 initramfs 运行的脚本在某些点暂停以提供 root 身份的 shell然后在该 shell 中重置 root 密码。方法1rd.break重新启动系统。按任意键Enter除外中断启动加载器倒计时。将光标移至第一个内核条目按e编辑当前条目。将光标移至以linux16开头的行末尾附加rd.break。利用该选项在系统从 initramfs 向实际系统移交控制权前系统将会中断。按Ctrlx进行启动。此时系统会显示 root shell且磁盘上的实际根文件系统以只读方式挂载在 /sysroot。以读/写形式重新挂载 /sysroot。switch_root:/# mount -o remount,rw /sysroot切换 root 位置把 /sysroot 做为文件系统树的根。switch_root:/# chroot /sysroot在 sh-4.2# 中设置新的密码。sh-4.2# passwd root# 或者在 bash sh-4.2# 设置新root密码sh-4.2# echo password | passwd --stdin root提示password 是用户自定义密码。如果系统开启了 SELinux 功能则需要确保所有未标记的文件包括此时的 /etc/shadow)在启动过程中都会重新获得标记。sh-4.2# touch /.autorelabel执行以下命令系统将继续启动。如果系统开启了 SELinux 功能还需要执行完整的 SELinux 重新标记然后再次重新启动。sh-4.2# exitswitch_root:/# exit登录验证。方法2init/bin/bash重新启动系统中断倒计时按e编辑。将光标移至以linux16开头的行末尾附加init/bin/bash。按Ctrlx启动。此时系统会显示 root shell且磁盘上的实际根文件系统以只读方式挂载在 /。以读/写形式重新挂载 /。bash-4.2# mount -o remount,rw /使用以下命令删除 root 密码等进入系统后再重新设置 root 密码。sh-4.2# passwd -d root此时还可以使用 vi 编辑器直接编辑 /etc/shadow 文件复制已知用户的密码记录替换 root 密码。如果系统开启了 SELinux 功能则需要确保所有未标记的文件在启动过程中都会重新获得标记。sh-4.2# touch /.autorelabel执行以下命令系统将继续启动。sh-4.2# exec /usr/lib/systemd/systemd使用 root 登录此时不需要密码。/etc/fstab 引起的系统启动问题1. 环境准备# 设置磁盘分区管理方案 [rootcentos7 ~]# parted /dev/sdb mklabel msdos # 创建分区 [rootcentos7 ~]# parted /dev/sdb unit MiB mkpart primary 1 10241 # 格式化为xfs文件系统 [rootcentos7 ~]# mkfs.xfs /dev/sdb1 # 创建挂载点 [rootcentos7 ~]# mkdir /data01 # 设置持久化挂载 [rootcentos7 ~]# echo /dev/sdb1 /data01 xfs defaults 0 0 /etc/fstab # 挂载并验证 [rootcentos7 ~]# mount -a [rootcentos7 ~]# df -h /data01 文件系统 容量 已用 可用 已用% 挂载点 /dev/sdb1 10G 33M 10G 1% /data012. 故障1挂载点不存在环境准备[rootcentos7 ~]# umount /data01 [rootcentos7 ~]# rmdir /data01重启系统验证# 可以正常进入系统挂载点会被自动创建 [rootcentos7 ~]# df -h /data01 文件系统 容量 已用 可用 已用% 挂载点 /dev/sdb1 10G 33M 10G 1% /data013. 故障2设备名称写错或者找不到设备环境准备[rootcentos7 ~]# vim /etc/fstab # 将原先的sdb1修改为sdb2 /dev/sdb2 /data01 xfs defaults 0 0重启系统验证启动过程中找不到该设备。按esc。1分30秒超时后进入 emergency 模式进行修复。修改为正确的值或者注释该条目确保系统正常启动。然后输入exit继续启动。4. 故障3破坏文件系统环境准备[rootcentos7 ~]# dd if/dev/zero of/dev/sdb1 bs1M count1重启系统验证系统启动过程中尝试修复文件系统修复失败后提示进入 emergency 模式修复。输入 root 密码进入 emergency 模式。执行以下命令修复bash# xfs_repair /dev/sdb1修复完成后输入exit正常启动系统。GRUB2 配置1. grub2 配置文件grub2 的主要配置文件如下/boot/grub2grub2 的主要配置文件所在目录例如 grub.cfg、grubenv、user.cfg。/etc/grub2.cfg是指向 /boot/grub2/grub.cfg 的软连接。不要直接修改 /etc/grub2.cfg 文件该文件由系统自动生成。如果需要自定义这个文件可以通过修改 /etc/grub.d/ 中脚本和 /etc/default/grub 文件然后通过grub2-mkconfig命令生成。使用 efi 启动方式的 grub2 配置文件是 /etc/grub2-efi.cfg。/etc/grub.d/该目录下存放多个数字开头的脚本按照从小到大的顺序执行。例如 00_header 会调用 /etc/default/grub 配置文件来实现最基本的开机界面配置。/etc/default/grub定义 grub 启动部分变量信息例如 grub 启动菜单选择条目的超时时间内核参数等。/boot/grub2/grubenv设定默认启动条目。2. grub 菜单超时时间[rootcentos7 ~]# vim /etc/default/grub # 修改GRUB_TIMEOUT为10 GRUB_TIMEOUT10 # 生效grub2.cfg配置文件 [rootcentos7 ~]# grub2-mkconfig -o /etc/grub2.cfg Generating grub configuration file ... done # 重启 [rootcentos7 ~]# reboot3. kernel 启动参数[rootcentos7 ~]# vim /etc/default/grub # 修改GRUB_CMDLINE_LINUX例如在最后添加参数consolettyS0导致不显示启动过程 GRUB_CMDLINE_LINUXrd.lvm.lvcentos/root rd.lvm.lvcentos/swap rhgb quiet consolettyS0 # consolettyS0: 启动过程信息显示到 ttyS0 终端导致启动过程是tty1上不显示启动消息。 # rhgb启用图形化启动界面Red Hat Graphical Boot。 # quiet减少启动过程中的日志输出只显示重要信息 debug 开启调试模式显示详细启动日志 # 生成grub2.cfg配置文件重启验证 [rootcentos7 ~]# grub2-mkconfig -o /etc/grub2.cfg [rootcentos7 ~]# reboot查看内核启动参数所有内核参数的详细说明可参考 Linux 内核文档CentOS 7 中可通过安装kernel-doc包获取yum install kernel-doc -y文档路径/usr/share/doc/kernel-doc-版本/Documentation/admin-guide/kernel-parameters.txt。查看方式less /usr/share/doc/kernel-doc-3.10.0/Documentation/admin-guide/kernel-parameters.txt注意替换版本为实际内核版本可通过uname -r查看常用参数说明除了rhgb和quiet常见参数包括ro只读挂载根文件系统启动后由系统自动切换为读写rw直接以读写方式挂载根文件系统root指定根文件系统的设备如root/dev/sda1crashkernelauto预留内存用于内核崩溃时的转储net.ifnames0禁用网络接口的“一致性命名规则”如 ens33强制使用传统命名如 eth0便于脚本或传统工具兼容。biosdevname0配合net.ifnames0使用彻底禁用基于 BIOS 的设备命名规则。4. grub 菜单加密# 查看/etc/grub.d/01_users脚本 [rootcentos7 ~]# cat /etc/grub.d/01_users #!/bin/sh -e cat EOF if [ -f \${prefix}/user.cfg ]; then source \${prefix}/user.cfg if [ -n \${GRUB2_PASSWORD} ]; then set superuserscjh export superusers password_pbkdf2 cjh \${GRUB2_PASSWORD} fi fi EOF # 生成grub2密码 [rootcentos7 ~]# grub2-mkpasswd-pbkdf2 Enter password: redhat Reenter password: redhat PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.649DDB2FE50D7D3A0DF829A21887FFD9FB7CC14F0E750B993CFB08B86D0E99AE33D7E121DEC82DD71FF69B2653D9446ED777ADAFB5DAE051685C7B85C3A3A276.8DC92452B738F2007F7254BC884AF34B3C149E62D2054BB09DA970B931AF329BE772648AA0FE15DC8196AED48545F5BF84AAF9EB989CCCD168604B8050988FF0 # 创建文件 [rootcentos7 ~]# vim /boot/grub2/user.cfg GRUB2_PASSWORDgrub.pbkdf2.sha512.10000.649DDB2FE50D7D3A0DF829A21887FFD9FB7CC14F0E750B993CFB08B86D0E99AE33D7E121DEC82DD71FF69B2653D9446ED777ADAFB5DAE051685C7B85C3A3A276.8DC92452B738F2007F7254BC884AF34B3C149E62D2054BB09DA970B931AF329BE772648AA0FE15DC8196AED48545F5BF84AAF9EB989CCCD168604B8050988FF0 # 生成grub2.cfg配置文件重启验证 [rootcentos7 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg [rootcentos7 ~]# reboot效果启动菜单界面按e编辑时需输入用户名 root密码 redhat 才能进入编辑。思考如何解除 grub 菜单加密提示删除 /boot/grub2/user.cfg 或清空 GRUB2_PASSWORD然后重新生成 grub.cfg5. 默认启动条目# 查看启动条目有哪些 [rootcentos7 ~]# grep -o ^menu.*CentOS L.*Core) /etc/grub2.cfg menuentry CentOS Linux (3.10.0-1160.71.1.el7.x86_64) 7 (Core) menuentry CentOS Linux (0-rescue-43c2aa8a5c024d90af4e8da0b3881cb2) 7 (Core) # 修改默认启动条目 [rootcentos7 ~]# vim /boot/grub2/grubenv # 修改saved_entry为相应条目 saved_entryCentOS Linux (0-rescue-43c2aa8a5c024d90af4e8da0b3881cb2) 7 (Core) ...... # 生成grub2.cfg配置文件重启验证 [rootcentos7 ~]# grub2-mkconfig -o /etc/grub2.cfg [rootcentos7 ~]# reboot reboot效果启动菜单界面按e编辑时需输入用户名 root密码 redhat 才能进入编辑。思考如何解除 grub 菜单加密提示删除 /boot/grub2/user.cfg 或清空 GRUB2_PASSWORD然后重新生成 grub.cfg5. 默认启动条目# 查看启动条目有哪些 [rootcentos7 ~]# grep -o ^menu.*CentOS L.*Core) /etc/grub2.cfg menuentry CentOS Linux (3.10.0-1160.71.1.el7.x86_64) 7 (Core) menuentry CentOS Linux (0-rescue-43c2aa8a5c024d90af4e8da0b3881cb2) 7 (Core) # 修改默认启动条目 [rootcentos7 ~]# vim /boot/grub2/grubenv # 修改saved_entry为相应条目 saved_entryCentOS Linux (0-rescue-43c2aa8a5c024d90af4e8da0b3881cb2) 7 (Core) ...... # 生成grub2.cfg配置文件重启验证 [rootcentos7 ~]# grub2-mkconfig -o /etc/grub2.cfg [rootcentos7 ~]# reboot
返回列表