[步骤] 系统升级 (从 openSUSE Leap 15.6 升级到 openSUSE Leap 16.0)

正文:

步骤一:显示现在的系统版本

# cat /etc/*release*
NAME="openSUSE Leap"
VERSION="15.6"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="15.6"
PRETTY_NAME="openSUSE Leap 15.6"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:15.6"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Leap"
LOGO="distributor-logo-Leap"

(注意:确保显示的系统版本是 openSUSE Leap 15.6)

步骤二:准备升级

2.1 确认已使用的软件库

# zypper ls -d
# | Alias       | Name        | Enabled | GPG Check | Refresh | Priority | Type   | URI
--+-------------+-------------+---------+-----------+---------+----------+--------+-------------------------------------------------------------------------
1 | Debug-OSS   | Debug-OSS   | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/debug/distribution/leap/15.6/repo/oss/
2 | Non-OSS     | Non-OSS     | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/distribution/leap/15.6/repo/non-oss/
3 | OSS         | OSS         | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/distribution/leap/15.6/repo/oss/
4 | Src-Non-OSS | Src-Non-OSS | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/source/distribution/leap/15.6/repo/non-oss/
5 | Src-OSS     | Src-OSS     | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/source/distribution/leap/15.6/repo/oss/


补充:
1) 确保以上软件库已处于 Enabled 状态
2) 手动启动这些软件库的命令如下

# zypper ar -f http://download.opensuse.org/distribution/leap/\$releasever/repo/oss/ OSS
# zypper ar -f http://download.opensuse.org/distribution/leap/\$releasever/repo/non-oss/ Non-OSS
# zypper ar -f http://download.opensuse.org/source/distribution/leap/\$releasever/repo/oss/ Src-OSS
# zypper ar -f http://download.opensuse.org/source/distribution/leap/\$releasever/repo/non-oss/ Src-Non-OSS
# zypper ar -f http://download.opensuse.org/debug/distribution/leap/\$releasever/repo/oss/ Debug-OSS

2.2 刷新已使用的软件库

# zypper ref

(注意:确保刷新成功,否则请检查网络)

2.3 将所有 openSUSE Leap 15.6 软件包更新到最新版本

# zypper -n update

2.4 用 releasever 变量替换所有版本号

# sed -i 's/15.6/${releasever}/g' /etc/zypp/repos.d/*.repo

步骤三:升级系统

3.1 升级系统

# sudo zypper --releasever 16.0 dup

3.2 重启系统

# reboot

参考文献:

https://en.opensuse.org/SDB:System_upgrade
https://github.com/openSUSE/openSUSE-repos/blob/main/opensuse-leap16-repoindex.xml

[步骤] Linux 救援模式软件的安装 (把系统目录当作根目录前)

步骤一:挂载官方镜像

(步骤略)

步骤二:登录拯救模式

2.1 选择通过光盘启动

(步骤略)

2.2 进入拯救模式

(步骤略)

2.3 登录拯救模式

rescue login:root

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

(步骤略)


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

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

# mount <root spartition> /mnt

步骤五:在救援模式将系统的光驱挂载到救援模式的 /mnt/mnt 目录

# mount /dev/sr0 /mnt/mnt

步骤六:重新安装 mount 软件

# rpm -ivh --root=/mnt /mnt/mnt/Module-Basesystem/x86_64/util-linux-2.39.3-150600.2.1.x86_64.rpm

(补充:这里以安装 util-linux-2.39.3-150600.2.1.x86_64.rpm 软件包为例)

步骤七:重启系统

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

bash-4.3# exit

7.2 重启系统

tty1:rescue:~ # reboot

[排错] 解决 Linux 无法进入系统且 Linux 进入救援模式以后挂载系统目录时乱码

报错代码

Linux 无法进入系统,进入拯救模式后乱码

原因分析

mount 命令损坏,导致系统在启动的过程中无法挂载所有需要挂载的分区,例如 /boot 目录、根 “/” 分区等

解决方法

步骤一:挂载官方镜像

(步骤略)

步骤二:登录拯救模式

2.1 选择通过光盘启动

(步骤略)

2.2 进入拯救模式

(步骤略)

2.3 登录拯救模式

rescue login:root

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

(步骤略)


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

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

# mount <root spartition> /mnt

步骤五:在救援模式将系统的光驱挂载到救援模式的 /mnt/mnt 目录

# mount /dev/sr0 /mnt/mnt

步骤六:重新安装 mount 软件

# rpm -ivh --root=/mnt /mnt/mnt/Module-Basesystem/x86_64/util-linux-2.39.3-150600.2.1.x86_64.rpm

(补充:这里以安装 util-linux-2.39.3-150600.2.1.x86_64.rpm 软件包为例)

步骤七:重启系统

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

bash-4.3# exit

7.2 重启系统

tty1:rescue:~ # reboot

[内容] Linux 需要注意的文件权限 (RHEL 9 版)

正文:

内容一:需要注意的文件权限

/run/credentials/ 目录下以 system 开头的文件都是只读文件

# ls -l /run/credentials/
total 0
dr-x------ 2 root root 0 Aug 30 20:36 systemd-sysctl.service
dr-x------ 2 root root 0 Aug 30 20:36 systemd-tmpfiles-setup-dev.service
dr-x------ 2 root root 0 Aug 30 20:36 systemd-tmpfiles-setup.service
......

内容二:查看这些文件的详细信息

# man 8 systemd-tmpfiles
# man 8 systemd-sysctl.service
# man 5 systemd.exec
# man 7 systemd.system-credentials
......

参考文献:

https://access.redhat.com/solutions/7024041