[排错] 解决重启系统后无法进入系统,并提示 “/grub2/i386-pc/normoal.mod not found gpt”

报错代码

/grub2/i386-pc/normoal.mod not found gpt

解决方法

步骤一:挂载官方镜像

(步骤略)

步骤二:登录拯救模式

2.1 选择通过光盘启动

(步骤略)

2.2 进入拯救模式

(步骤略)

2.3 登录拯救模式

rescue login:root

步骤三:在救援模式确定系统的根 “/” 目录分区

(步骤略)


补充:
1) 物理分区可以使用 lsblk 命令、fdisk -l 或 cat /proc/partitions 命令辅助确定
2) 逻辑分区还可以可以使用 pvs 命令、lvs 命令或 lvdisplay 命令辅助确定

步骤四:在救援模式将系统的分区挂载到救援模式的 /mnt 目录

4.1 在救援模式将系统的根 “/” 分区挂载到救援模式的 /mnt 目录

tty1:rescue:~ # mount <root spartition> /mnt


补充:
1) 如果是物理分区,系统的根 “/” 分区就在救援模式的 /dev/ 目录里,例如救援模式的 /dev/sda1
2) 如果是逻辑分区,Rocky Linux & RHEL 的系统根 “/” 分区就是救援模式里的 /dev/<volume group>/<logical volume> 例如救援模式里的 /dev/vg/lv,openSUSE & SUSE 的系统根 “/” 分区就是救援模式里的 /dev/mapper/<volume group>-<logical volume> 例如救援模式里的 /dev/mapper/vg-lv

4.2 在救援模式将救援模式的 /dev 目录关联到救援模式的 /mnt/dev 目录

tty1:rescue:~ # mount --rbind /dev /mnt/dev


补充:
1) 此时所有对救援模式的 /mnt/dev 目录的访问都会变成对救援模式的 /dev 目录的访问
2) 步骤 4.2、步骤 4.3 和步骤 4.4 也可以用以下命令代替:

tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done

4.3 在救援模式将救援模式的 /proc 目录关联到救援模式的 /mnt/proc 目录

tty1:rescue:~ # mount --rbind /proc /mnt/proc


补充:
1) 此时所有对救援模式的 /mnt/proc 目录的访问都会变成对救援模式的 /proc 目录的访问
2) 步骤 4.2、步骤 4.3 和步骤 4.4 也可以用以下命令代替:

tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done

4.4 在救援模式将救援模式的 /sys 目录关联到救援模式的 /mnt/sys 目录

tty1:rescue:~ # mount --rbind /sys /mnt/sys


补充:
1) 此时所有对救援模式的 /mnt/sys 目录的访问都会变成对救援模式的 /sys 目录的访问
2) 步骤 4.2、步骤 4.3 和步骤 4.4 也可以用以下命令代替:

tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done

4.5 在救援模式将救援模式的 /run 目录关联到救援模式的 /mnt/run 目录 (选做)

tty1:rescue:~ # mount --rbind /run /mnt/run

(补充:此时所有对救援模式的 /mnt/run 目录的访问都会变成对救援模式的 /run 目录的访问)

步骤五:将当前的根 “/” 目录从救援模式的根 “/” 目录切换到系统的根 “/” 目录

5.1 将当前的根 “/” 目录从救援模式的根 “/” 目录切换到系统的根 “/” 目录

tty1:rescue:~ # chroot /mnt

(补充:这里以 /mnt 作为系统根 “/” 目录为例)

5.2 在系统模式挂载所有需要开机自动挂载的目录

bash-4.3# mount -a

5.3 在系统模式确认当前根 “/” 目录下的目录

bash-4.3# ls
bin boot dev home lib lib64 mnt opt proc root run sbin selinux srv sys tmp usr var

(补充:这里显示的是常见的 Linux 根 “/” 目录 下的目录)

步骤六:在系统模式修复 GRUB2

6.1 在系统模式确定系统的 GRUB2 目录分区

(步骤略)


补充:
1) 物理分区可以使用 lsblk 命令、fdisk -l 或 cat /proc/partitions 命令辅助确定
2) 逻辑分区还可以可以使用 pvs 命令、lvs 命令或 lvdisplay 命令辅助确定

6.2 在系统模式修复 GRUB2

bash-4.3# grub2-install <disk which GRUB2 in>

6.3 在系统模式修复 /boot/grub2/grub.cfg

bash-4.3# grub2-mkconfig -o /boot/grub2/grub.cfg

步骤七:重启系统

7.1 从当前系统的根 “/” 目录切换回救援模式的根 “/” 目录

bash-4.3# exit

7.2 重启系统

bash-4.3# reboot

补充:boot 分区的文件系统损坏的情况

如果以上步骤都不起作用,且 /boot 是单独分区的话,则可能是 boot 分区的文件系统损坏,可以尝试以下补充:

1) 重复本文步骤五和之前步骤的内容
2) 将 /boot 目录里的内容全部拷贝出来
3) 取消挂载 /boot 目录的分区
4) 将挂载 /boot 目录的分区重新格式化成 ext4 格式
5) 格式化后分区的 UUID 会改变,所以需要更新 /etc/fstab 文件中挂载 /boot 目录分区的 UUID
6) 将格式化后的分区重新挂载 /boot 目录
7) 将刚刚从 /boot 目录拷贝出来的内容拷贝回 /boot 目录
8) 重复此文的步骤六

(注意:不建议使用 Btrfs 文件系统给 /boot 目录分区)

参考文献:

https://www.suse.com/support/kb/doc/?id=000018770

[步骤] Linux 用户开机自动登录 (GNOME 版)

步骤一:创建用于自动登录的用户

1.1 创建用于自动登录的用户

# useradd monitor

(补充:这里以创建 monitor 用户为例)

1.2 清空用于自动登录用户的密码

# passwd -d monitor

(补充:这里以清空 monitor 用户的密码为例)

步骤二: 设置 Linux 用户开机自动登录

如果是 Rocky Linux & RHEL:

# vim /etc/gdm/custom.conf

在:

......
[daemon]
......

下面添加以下内容:

......
AutomaticLoginEnable=True
AutomaticLogin=monitor
......

如果是 openSUSE & SUSE:

# vim /etc/gdm/custom.conf

将以下内容:

......
DISPLAYMANAGER_AUTOLOGIN=""
......

修改为:

......
DISPLAYMANAGER_AUTOLOGIN="monitor"
......

(补充:这里以设置 monitor 用户开机自动登录为例)

步骤三:重启系统

# reboot

[步骤] Linux 自动退出时间的设置

步骤一:确认目前正在使用的解释器是 /bin/bash

# echo $SHELL
/bin/bash

步骤二:临时设置多久以后会自动退出

# export TMOUT=30

(补充:这里以设置 30 秒后会自动退出为例)

步骤三:永久设置多久以后会自动退出

3.1 修改 /etc/bash.bashrc 配置文件

# vim /etc/bash.bashrc

添加以下内容:

......
TMOUT=900 ; export TMOUT

3.2 修改 /etc/profile 配置文件

# vim /etc/profile

添加以下内容:

......
TMOUT=900 ; export TMOUT

[内容] Linux 图形桌面 (Fedora 版)

内容一:Xfce 图形桌面

1.1 Xfce 的安装方法

# dnf install @xfce-desktop-enviroment

或者:

# yum groupinstall "Xfce Desktop"

或者:

# dnf group install -y "Xfce Desktop"

1.2 Xfce 的简介

Fedora Xfce 定制版展示了 Xfce 桌面,Xfce 桌面追求快速和轻巧,同时用户界面友好并有精彩的视觉盛宴。

1.3 Xfce 的展示和介绍网站

https://spins.fedoraproject.org/xfce/

内容二:LXDE 图形桌面

2.1 LXDE 的安装方法

# dnf install @lxde-desktop

或者:

# yum groupinstall "LXDE Desktop"

或者:

# dnf group install -y "LXDE Desktop"

2.2 LXDE 的简介

LXDE,全名为“轻量级 X11 桌面环境”,是一款极速轻快、实用而且低功耗的桌面环境。

2.3 LXDE 的展示和介绍网站

https://spins.fedoraproject.org/lxde/

内容三:LXQt 图形桌面

3.1 LXQt 的安装方法

# dnf install @lxqt-desktop

或者:

# yum groupinstall "LXQt Desktop"

或者:

# dnf group install -y "LXQt Desktop"

3.2 LXQt 的简介

Fedora LXQt 提供了一个轻量、完整的 LXQt 桌面环境。

3.3 LXQt 的展示和介绍网站

https://spins.fedoraproject.org/zh_Hans_CN/lxqt/

内容四:Cinnamon 图形桌面

4.1 Cinnamon 的安装方法

# dnf install @cinnamon-desktop

或者:

# yum groupinstall "Cinnamon Desktop"

或者:

# dnf group install -y "Cinnamon Desktop"

4.2 Cinnamon 的简介

Cinnamon 是一种提供高级创新功能并且尊重传统的用户习惯的Linux桌面环境。

4.3 Cinnamon 的展示和介绍网站

https://spins.fedoraproject.org/cinnamon/

内容五:MATE 图形桌面

5.1 MATE 的安装方法

# dnf install @mate-desktop

或者:

# yum groupinstall "MATE Desktop"

或者:

# dnf group install -y "MATE Desktop"

5.2 MATE 的简介

MATE Compiz 是一款轻量、强大,专为高效率和高性能打造的桌面环境。

5.3 MATE 的展示和介绍网站

https://spins.fedoraproject.org/mate-compiz/

内容六:Sugar 图形桌面

Sugar 的安装方法

# yum groupinstall "Sugar Desktop Environment"

或者:

# dnf group install -y "Sugar Desktop Environment"

内容七:Deepin 图形桌面

Deepin 的安装方法

# yum groupinstall "Deepin Desktop"

或者:

# dnf group install -y "Deepin Desktop"

内容八:i3 图形桌面

8.1 i3 的安装方法

# yum groupinstall "i3 desktop"

或者:

# dnf group install -y "i3 desktop"

8.2 i3 的简介

Fedora i3 定制版提供了流行的 i3 平铺窗口管理器。其使得 i3 对于那些不想用鼠标、触摸板,或是其他指点设备的无论是新手还是高级用户都易于访问且更具吸引力。

8.3 i3 的展示和介绍网站

https://spins.fedoraproject.org/i3/

内容九:Basic 图形桌面

Basic 的安装方法

# yum groupinstall "Basic Desktop"

或者:

# dnf group install -y "Basic Desktop"

内容十:Pantheon 图形桌面

Pantheon 的安装方法

# yum groupinstall "Pantheon Desktop"

或者:

# dnf group install -y "Pantheon Desktop"

内容十一:KDE 图形桌面

KDE 的安装方法

# dnf install @KDE-desktop

或者:

# yum groupinstall "KDE Plasma Workspaces"

或者:

# dnf group install -y "KDE Plasma Workspaces"

内容十二:GNOME 图形桌面

GNOME 的安装方法

# dnf install @gnome

或者:

# yum groupinstall "GNOME"

或者:

# dnf group install -y "GNOME"

[内容] 全球公共免费 DNS

AdGuard

94.140.14.14
94.140.14.15
94.140.15.15
94.140.15.16

Cloudflare

1.0.0.1
1.0.0.2
1.0.0.3
1.1.1.1
1.1.1.2
1.1.1.3

COMODO

8.20.247.20
8.26.56.26

DNS Watch

84.200.69.80
84.200.70.40

Dyn

216.146.35.35
216.146.36.36

Level 3

209.244.0.3
209.244.0.4

Neustar

156.154.70.1
156.154.71.1

FreeDNS

37.235.1.174
37.235.1.177

Google

8.8.4.4
8.8.8.8

OpenDNS

208.67.220.220
208.67.222.222

SAFEDNS

195.46.39.39
195.46.39.40

Symantec

199.85.126.10
199.85.137.10