[步骤] Linux 救援模式软件的安装

步骤一:挂载官方镜像

(步骤略)

步骤二:登录拯救模式

2.1 进入拯救模式

(步骤略)

2.2 登录拯救模式

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 --bind /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 --bind /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 --bind /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 --bind /run /mnt/run

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

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

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

tty1:rescue:~ /bash # 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

步骤六:在系统模式安装软件

6.1 在系统模式挂载官方镜像

6.1.1 在系统模式创建用于挂载镜像的 /media 目录
bash-4.3# mkdir /media
6.1.2 在系统模式挂将官方镜像挂载到 /media 目录
bash-4.3# mount /dev/dvd /media

6.2 在系统模式安装 RPM 文件 (软件包)

6.2.1 在系统模式拷贝 RPM 文件 (软件包) 到当前目录
bash-4.3# cp /media/suse/x86_64/rpm-4.11.2-16.21.1.x86_64.rpm .

(补充:这里以拷贝 rpm-4.11.2-16.21.1.x86_64.rpm RPM 文件 (软件包) 为例)

6.2.2 在系统模式创建用于提取 rpm 文件 (软件包) 的 pkg 目录
bash-4.3# mkdir pkg
6.2.3 在系统模式进入 pkg 目录
bash-4.3# cd pkg
6.2.4 在系统模式提取 rpm 文件 (软件包) 里的子文件
bash-4.3# rpm2cpio ../rpm-4.11.2-16.21.1.x86_64.rpm | cpio -ivd

(补充:这里以提取 rpm-4.11.2-16.21.1.x86_64.rpm RPM 文件 (软件包) 为例)

6.2.5 在系统模式将提取的 RPM 文件 (软件包) 里的子文件拷贝到 /bin 目录
bash-4.3# cp bin/rpm /bin/

参考文献:

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

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

报错代码

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

解决方法

步骤一:挂载官方镜像

(步骤略)

步骤二:登录拯救模式

2.1 进入拯救模式

(步骤略)

2.2 登录拯救模式

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 --bind /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 --bind /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 --bind /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 --bind /run /mnt/run

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

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

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

tty1:rescue:~ /bash # 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

步骤六:在系统模式修复 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>

步骤七:重启系统

bash-4.3# reboot

参考文献:

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

[命令] GNOME 命令 gnome-terminal (打开新的命令行终端)

案例一:打开新的命令行终端,在 1 个新的窗口上运行

# gnome-terminal

案例二:打开新的命令行终端,并自定义窗口的大小和位置,在 1 个新的窗口上运行

# gnome-terminal --geometry=120*80+20+10

(补充:这里以打开新的命令行终端,并将终端窗口设置为宽 120,高 80,左偏移量 20,上偏移量 80 为例)

案例三:最大化打开新的命令行终端,在 1 个新的窗口上运行

# gnome-terminal --maximize

案例四:全屏话化打开新的命令行终端,在 1 个新的窗口上运行

# gnome-terminal --full-screen

案例五:打开新的命令行终端,并设置标题,在 1 个新的窗口上运行

# gnome-terminal --title="Eternal Center"

(补充:这里以打开新的命令行终端,并将终端窗口名命名为 Eternal Center 为例)

案例六:同时打开多个新的命令行终端,在 1 个新的窗口上运行

6.1 同时打开 2 个新的命令行终端,在新的窗口上运行 (每 1 个窗口 1 个新的命令行终端)

# gnome-terminal --window --window

6.2 同时打开 4 个新的命令行终端,在新的窗口上运行 (每 1 个窗口 2 个新的命令行终端)

# gnome-terminal --window --tab --window --tab