一、简介
● 红帽RHEL8和RHEL7功能区别对比:
1)默认的文件系统RHEL8与RHEL7都是采用XFS;
2)内核版本:RHEL8采用4.18.0-x;RHEL7采用3.10-0-x;RHEL8采用2019-05-07 (Kernel Version 4.18.0-80),RHE7采用2014-06-09 (Kernel Version 3.10.0-123)
3)时间同步:RHEL8只使用Chronyd,不支持NTP部署。RHEL7中Chronyd与NTP两者都支持
4)最大文件支持:RHEL8中XFS文件系统支持的最大文件大小已从500 TiB增加到1024 TiB。
(此最大文件大小仅适用于64位机器。Red Hat Enterprise Linux不支持32位机器上的XFS.);RHEL7中最大. (单独) 文件大小= 500TiB,最大. 文件系统大小 = 500TiB5)软件包管理:红帽8包管理由DNF (YUMv4)完成。yum4基于DNF技术,yum4命令提供了与早期版本中使用的Yum v3的向后兼容性。yum命令只是到dnf的一个符号链接。而红帽7中yum基于3.0.x版本;
另Red Hat Enterprise Linux 8是用RPM 4.14发布的。现在,RPM在开始安装之前验证整个包的内容。其中一些值得注意的功能是:
debuginfo包可以并行安装
支持弱依赖关系
支持丰富的或布尔依赖
支持封装文件超过4 GB的大小
支持文件触发器
构建在RHEL8上的包在压缩负载上使用一个新的SHA-256散列。
而Red Hat Enterprise Linux 7是用RPM 4.11发布的。RPM实用程序在解压时验证单个文件的有效负载内容。
6)大支持的内存:
红帽8支持24TB,64位架构;而红帽7:只支持12TB
7) 默认的网络数据包过滤:
RHEL8使用nftables取代了iptables框架;nftables是默认的网络包过滤,它取代了以前的iptables框架。firewalld守护进程现在使用nftables作为默认后端。这将取代以前使用的“iptables”、“ip6tables”、“arptables”和“ebtables”工具。“nftables”确实为IPv4和IPv6协议提供了一个单一的框架。
而RHEL7 firewalld守护进程使用iptables作为其默认后端。
8)关于默认的数据库,RHEL8和7的区别如下:
MariaDB是Red Hat Enterprise Linux 7中MySQL的默认实现,在RHEL8默认支持的数据库有:
MySQL 8.0
MariaDB 10.3
PostgreSQL 10 and PostgreSQL 9.6
Redis 5.0
9)关于支持的硬件架构,RHEL8和7的区别如下:
RHEL8支持以下硬件架构:AMD and Intel 64-bit architectures、The 64-bit ARM architecture、IBM Power Systems, Little Endian、IBM Z
RHEL7支持以下硬件架构:64-bit AMD、64-bit Intel、IBM POWER7、IBM System z
10)安装镜像:
RHEL 8可以使用以下类型的ISO镜像安装:Binary(二进制) DVD ISO、Boot ISO;在RHEL7中,可用:Boot ISO、Binary(二进制) DVD ISO、Supplementary(追加的) Binary DVD
11) 默认情况下的Cockpit web控制台的安装状态
在RHEL8中,Cockpit是默认安装和可用的。这将在非最小模式下自动安装,并在防火墙中启用所需端口。Cockpit提供了一个增强的框架,可以用来访问/编辑/更改许多系统设置。这提供了通过web接口的访问,可以使用浏览器访问url地址http://:9090进行管理。而在RHEL7系统中,Cockpit默认情况下没有安装,需要通过启用extra和optional存储库通道来安装。
12)默认虚拟机管理
在RHEL8系统中,默认情况下,它由Cockpit管理。如果需要,还可以安装virt-manager。而在RHEL7系统中virt-manager将用于基于KVM的虚拟系统管理。
13)关于CUPS日志,RHEL8和7的区别如下:
RHEL8所有类型的CUPS日志都与来自其他程序的日志一起集中记录在systemd journald守护进程中。要访问CUPS日志,请使用“journalctl -u CUPS”命令。而RHEL7系统上,CUPS日志被存储中 /var/log/cups directory.
nobody用户替换nfsnobody
rhel8系统上,nobody和nfsnobody用户和组合并到nobodyID(65534)中。
在Red Hat Enterprise Linux 7中,有:ID为99的nobody用户和组;nfsnobody用户和组对的ID为65534,这也是默认的内核溢出ID。
14)关于默认版本的控制系统,RHEL8和7的区别如下:
RHEL 8提供以下版本控制系统:Git 2.18、Mercurial 4.8、Subversion 1.10并发版本系统(CVS)和版本控制系统(RCS)在RHEL8中都不可用。而Red Hat Enterprise Linux 7与三个最流行的开源修订控制系统一起发布:Git、SVN和CVS。
15)关于编程语言版本,RHEL8和7的区别如下:
RHEL8新版本编程语言:Python 3、PHP 7.2、Ruby 2.5、Node.js 10
而RHEL7支持以下编辑语言:Python 2 ( 2.7.X)、PHP 5.4、Ruby 2.0.0
16)关于容器技术的支持,RHEL8和7的区别如下:
Docker不包括在RHEL 8.0中。使用容器时,需要使用podman、buildah、skopeo和runc工具。
podman工具已经作为一个完全支持的特性发布了。Docker和Docker Registry是Red Hat Enterprise Linux 7中的Extras订阅频道的一部分。
17)关于开发工具支持,RHEL8和7的区别如下:
RHEL 8提供OpenJDK 11、OpenJDK 8、IcedTea-Web和各种Java工具,如Ant、Maven或Scala。
在RHEL7中,OpenJDK8用作默认的Java开发工具包(JDK),而Java 8用作默认的Java版本。
18)关于NFS配置对比,RHEL8和7的区别如下:
RHEL8的NFS配置文件是/etc/ NFS .conf。
当从RHEL7升级时,Red Hat Enterprise Linux 8尝试自动将所有选项从/etc/sysconfig/nfs转换为/etc/nfs。并不再支持NFS / UDP。而RHEL7中,默认的NFS配置文件是/etc/sysconfig/ NFS
19)在RHEL 8中,Gnome display Manager使用的默认显示服务器是Wayland。X.org服务器是RHEL 7中的默认显示服务器
20)其他:
早期的RHEL版本中使用了elevator内核命令行参数来设置所有设备的磁盘调度程序。在RHEL 8中,该参数被弃用。上游Linux内核已经取消了对elevator参数的支持,但是出于兼容性的原因,RHEL 8中仍然可以使用它。
在RHEL 8中,网络脚本在默认情况下不可用。有一个新版本的ifup和ifdown正在使用,这将需要NetworkManager守护进程运行,并在后端使用nmcli。如果需要早期的网络脚本,则必须安装“network-scripts”包。RHEL 8拥有TCP网络栈版本4.18,可以提供更高的性能、更好的可伸缩性和更稳定的性能。性能得到了提高,特别是在繁忙的TCP服务器与高进入连接速率。除了新的TCP栈之外,还有两种新的TCP拥塞算法。在大多数情况下,BBR和NV可以提供比cubic更低的延迟和更好的吞吐量。
新内核支持5级paging;在早期版本中,有4级分页实现,可以处理48/46位虚拟/物理地址,并且物理总线上限为64TB。在即将推出的Intel处理器中,这些限制已经扩展到57/52位的虚拟/物理内存寻址,具有128 PiB的虚拟地址空间和4 PB的物理内存容量。
以前,Anaconda没有向订阅管理器提供系统用途信息。在Red Hat Enterprise Linux 8.0中,我们可以在安装期间使用Anaconda的system purpose窗口或Kickstart的syspurpose命令设置系统的预期目标。
有一个CodeReady Linux构建器存储库,可用于所有RHEL订阅。这为开发人员提供了额外的包。CodeReady Linux构建器存储库中包含的包不支持生产使用。
8中OpenSSH的版本是7.8p1,与早期版本相比有很多改进。不再支持SSH version 1;默认不开启DNS支持;最小可接受RSA密钥大小设置为1024位;移除 ‘Blowfish’, ‘CAST’, ‘RC4’ ciphers;默认关闭DSA 公钥算法。
RHEL8中不支持数字用户名和组名:useradd和groupadd命令不允许用户名和组名完全由数字字符组成。这是RHEL7中不支持的特性,现在RHEL8完全不支持它。用于管理共享存储逻辑卷的clvmd已被删除,取而代之的是lvmlockd(lvm lock 守护进程)
默认情况下禁用了securetty PAM模块,并且从RHEL8中删除了/etc/securetty文件。
在Red Hat Enterprise Linux 8中,pcs完全支持Corosync 3集群引擎和用于集群通信的Kronosnet (knet)网络抽象层。无法将集群节点从RHEL7就地升级到RHEL8。
Red Hat Customer Portal地址:https://access.redhat.com/
培训:https://training-lms.redhat.com/lmt/clmaRequestExtBooking.prMain?in_sessionid=4300219583915389
中文文档 https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/
软件名称 | 发布时间 | 内核版本 |
---|---|---|
Red Hat Enterprise Linux 8.4 | 2021-05-18 | 4.18.0-305 |
Red Hat Enterprise Linux 7.9 | 2020-09-29 | 3.10.0-1160 |
Red Hat Enterprise Linux 6.10 | 2018-06-19 | 2.6.32-754 |
Red Hat Enterprise Linux 5.11 | 2014-09-16 | 2.6.18-398 |
RHEL 8的新技术特性:
https://www.bilibili.com/video/av288116939/
https://blog.51cto.com/u_15061931/2568967
https://www.redhat.com/en/blog/whats-new-red-hat-enterprise-linux-84
● 扩展了RHEL 8.4对eBPF的支持。
● 在 RHEL 8 默认内核中整合主动式内存压缩,不过默认情况下已被禁用。
● RHEL8 现在支持较新的 Intel 处理器的错误检测和纠正(EDAC)内核模块功能。
● 新的 “kpatch-dnf “包已被添加为DNF插件,用于使用Kpatch应用实时内核补丁更新。
● RHEL8 内核的时间命名空间支持。
● RHEL 8.4现在正式支持突击移除NVMe存储设备。
● 支持 SMB Direct。
● OpenIMPI 2.0.29 与 FreeIPMI 1.6.6 一起到位。
● 由于升级到LibreSwan 4.3,支持TCP传输的IPsec VPN。
● NetworkManager 1.30 软件包也已到位。
● 通过新的 python39 模块支持 Python 3.9。Redis 6和PostgreSQL 13模块现在也可用。
● LLVM 工具集已重新基于 LLVM 11.0。Rust 1.49也已推出。
● 现已支持英特尔Gen12 Tiger Lake显卡。
Red Hat Enterprise Linux 8.4发行说明:中文介绍 https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/
Red Hat Enterprise Linux 8生命周期:
二、正文
2.1、 辅助工具:
软件:VmwareWorkStation 16 下载地址:hh6t
OS:RedHatEnterpriseLinux [RHEL] 8 下载地址 提取码: cqfu;CentOS 8 下载:https://centos.org/download/;国内镜像下载:https://mirrors.tuna.tsinghua.edu.cn/centos/;
https://mirrors.huaweicloud.com/centos/8.4.2105/isos/x86_64/
文件名 | SHA-256校验码(SHA-256 Checksum) |
---|---|
rhel-8.4-x86_64-dvd.iso | 48f955712454c32718dcde858dea5aca574376a1d7a4b0ed6908ac0b85597811 |
rhel-8.4-x86_64-boot.iso | 5fa79f357dab40056e1052cb4b03ff9fe7a502b519df7e3789f8899b3f461945 |
rhel-8.4-x86_64-kvm.qcow2 | df9660e770711f797b311a04946ce45db19843ddb1c60ccadca8b77fa0444e4f |
supp-supplementary-8.4-rhel-8-x86_64-dvd.iso | 70bb5d05d04156fae9e91c47233733514087af93955f229c1dc10be37306e9e9 |
rhel-8.4-source-dvd.iso | d122b6bae905ad8d6707d139f96b44ac02c38e26dd508fae9009a220ec002ff5 |
EPEL源:EPEL是企业版额外的资源包,提供了默认不提供的软件安装包,地址:下载
xshell5.0:下载
VNC-Viewer 5.2.3:下载
2.2、安装linux8.0 虚拟机:
注:先暂时编制系统,避免勾选后,虚拟机会通过默认的安装策略部署最精简的Linux系统,而不会再询问安装有关的配置信息,允许我们自行配置。
下一步,设置网络类型时选:仅主机模式。VM虚拟机软件为用户提供了3种可选的网络模式,分别为桥接模式、NAT模式与仅主机模式,由于当前不需要虚拟机内系统连接互联网,所以此处设置为仅主机模式网络类型,然后点击“下一步”按钮,这三种模式的大致介绍如下:
桥接模式:相当于在物理主机与虚拟机网卡之间架设了一座桥梁,从而可以通过物理主机的网卡访问外网。
NAT模式:让VM虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件模拟的主机可以通过物理主机访问外网,在真机中对应的物理网卡是VMnet8。
仅主机模式:仅让虚拟机的系统之间与物理主机通信,不能访问外网,在真机中对应的物理网卡是VMnet1。
关于更详细的原理区别,可参见:《Vmware workstations中虚拟机三种网络模式图解》
创建好虚拟机,先别开机,点击“CD/DVD(SATA)”选项,在右侧“ISO映像文件”里找到并选中此前已经下载好的RHEL 8系统文件,即iso结尾的文件,不要解压,直接选中即可,如图:
把“USB控制器”、“声卡”、“打印机”设备统统移除掉。移掉声卡后可以避免在输入错误后发出提示声音,确保自己在今后实验中思绪不被打扰。然后单击“确认”按钮。
虚拟化透传开启:安装RHEL 8或CentOS 8系统时,物理电脑的CPU需要支持虚拟化技术(Virtualization Technology),简称VT。这是一种能够让单台计算机分割出多个独立资源区,并让每个资源区按照需要模拟出系统的一项技术,其本质就是通过中间层实现计算机资源的管理和再分配,让系统资源的利用率最大化。
其实有个简单方法进行判断——只要您的电脑不是五六年前购买的,或者价格不低于三千元,那么处理器就肯定支持VT虚拟化的。大多数情况下都是默认已经开启的,只有当安装系统失败时才需要在物理机器的BIOS中手动开启一下,一般是在物理机器开机时多次按下F2或F12键便可进入,如图:
准备完成后,开始准备安装系统:如下在界面中,“Test this media & install Red Hat Enterprise Linux 8.0.0”和“Troubleshooting”的作用分别是校验光盘完整性后再安装以及启动救援模式。此时通过键盘的方向键选择第一个选项“Install Red Hat Enterprise Linux 8.0.0”来直接安装Linux系统。
HEL 8系统提供六种软件基本环境,依次为“带图形化的服务器”、“服务器”、“最小化安装”、“工作站”、“自定义”和“虚拟化”。只要检查下当前模式是默认值“Server with GUI”即可。
上图是进入到KDUMP服务的配置界面中,这个服务是用于收集系统内核崩溃数据的,但由于短时间并不打算调试系统内核参数呢,所以建议取消选中“Enable kdump”选项框,这样的话可以帮助我们节省约160M物理内存,随后单击左上角的“Done”按钮。
安装完成后,如下:
2.3、系统初使用:
1)安装软件:红帽软件包管理器)
rpm -ivh filename.rpm 安装软件
rpm -Uvh filename.rpm 升级软件
rpm -e filename.rpm 卸载软件
rpm -qpi filename.rpm 查询软件描述信息
rpm -qpl filename.rpm 列出软件文件信息
rpm -qf filename 查询文件属于哪个RPM
2)Yum仓库:
Yum软件仓库中的RPM软件包可以是由红帽官方发布的,也可以是第三方发布的,当然也可以是自己编写的;常用命令:
yum repolist all 列出所有仓库
yum list all 列出仓库中所有软件包
yum info 软件包名称 查看软件包信息
yum install 软件包名称 安装软件包
yum reinstall 软件包名称 重新安装软件包
yum update 软件包名称 升级软件包
yum remove 软件包名称 移除软件包
yum clean all 清除所有仓库缓存
yum check-update 检查可更新的软件包
yum grouplist 查看系统中已经安装的软件包组
yum groupinstall 软件包组 安装指定的软件包组
yum groupremove 软件包组 移除指定的软件包组
yum groupinfo 软件包组 查询指定的软件包组信息
注: Yum虽然解决了软件的依赖关系问题,但仍然还是存在着分析不准确、内存占用量大、不能多人同时安装软件等等硬伤。在2015年随着Fedora 22系统的发布,红帽又给了我们一个新的选择——DNF(Dandified YUM),实际就是解决了上述问题的Yum软件仓库的提升版,行业内叫做Yum v4版本;它是一个用于在Fedora、RHEL(Red Hat Enterprise Linux)和其他基于RPM包管理系统的发行版中管理软件包的工具,是yum的下一代版本。
相较于yum,以前安装软件用的是“yum install 软件包名称”,那么现在则是“dnf install 软件包名称”,命令替换成dnf即可。HEL 8系统同时兼容保留了yum和dnf两个命令,在实际操作中随意选择喜欢的执行就好,甚至提示信息都基本一样,感知不到什么区别。
很多时候发行版已默认安装DNF包管理工具,如果没有安装,可执行:yum install dnf -y
比如现场BCLinux For Euler 22.10 LTS(Euler 22.03)已经安装了,4.10.0版本
Installed: dnf-0:4.10.0-3.oe2203.noarch at Wed 22 Mar 2023 02:46:42 AM GMT
Built : http://openeuler.org at Mon 21 Mar 2022 12:00:00 AM GMT
Installed: rpm-0:4.17.0-8.oe2203.x86_64 at Wed 22 Mar 2023 02:46:07 AM GMT
Built : http://openeuler.org at Wed 16 Mar 2022 12:00:00 AM GMT
用法:
alias List or create command aliases
autoremove remove all unneeded packages that were originally installed as dependencies
check check for problems in the packagedb
check-update check for available package upgrades
clean remove cached data
deplist [deprecated, use repoquery --deplist] List package's dependencies and what packages provide them distro-sync synchronize installed packages to the latest available versions downgrade Downgrade a package group display, or use, the groups information help display a helpful usage message history display, or use, the transaction history info display details about a package or group of packages install install a package or packages on your system list list a package or groups of packages makecache generate the metadata cache mark mark or unmark installed packages as installed by user. module Interact with Modules. provides find what package provides the given value reinstall reinstall a package remove remove a package or packages from your system repolist display the configured software repositories repoquery search for packages matching keyword repository-packages run commands on top of all packages in given repository search search package details for the given string shell run an interactive DNF shell swap run an interactive DNF mod for remove and install one spec updateinfo display advisories about packages upgrade upgrade a package or packages on your system upgrade-minimal upgrade, but only 'newest' package match which fixes a problem that affects your system List of Plugin Commands: builddep Install build dependencies for package or spec file changelog Show changelog data of packages config-manager manage dnf configuration options and repositories copr Interact with Copr repositories. debug-dump dump information about installed rpm packages to file debug-restore restore packages recorded in debug-dump file debuginfo-install install debuginfo packages download Download package to current directory groups-manager create and edit groups metadata file needs-restarting determine updated binaries that need restarting playground Interact with Playground repository. repoclosure Display a list of unresolved dependencies for repositories repodiff List differences between two sets of repositories repograph Output a full package dependency graph in dot format repomanage Manage a directory of rpm packages reposync download all packages from remote repo versionlock control package version locks General DNF options: -c [config file], --config [config file] config file location -q, --quiet quiet operation -v, --verbose verbose operation --version show DNF version and exit --installroot [path] set install root --nodocs do not install documentations --noplugins disable all plugins --enableplugin [plugin] enable plugins by name --disableplugin [plugin] disable plugins by name --releasever RELEASEVER override the value of $releasever in config and repo files --setopt SETOPTS set arbitrary config and repo options --skip-broken resolve depsolve problems by skipping packages -h, --help, --help-cmd show command help --allowerasing allow erasing of installed packages to resolve dependencies -b, --best try the best available package versions in transactions. --nobest do not limit the transaction to the best candidate -C, --cacheonly run entirely from system cache, don't update cache
-R [minutes], --randomwait [minutes]
maximum command wait time
-d [debug level], --debuglevel [debug level]
debugging output level
--debugsolver dumps detailed solving results into files
--showduplicates show duplicates, in repos, in list/search commands
-e ERRORLEVEL, --errorlevel ERRORLEVEL
error output level
--obsoletes enables dnf's obsoletes processing logic for upgrade or display capabilities that the package obsoletes for info, list and
repoquery
--rpmverbosity [debug level name]
debugging output level for rpm
-y, --assumeyes automatically answer yes for all questions
--assumeno automatically answer no for all questions
--enablerepo [repo] Enable additional repositories. List option. Supports globs, can be specified multiple times.
--disablerepo [repo] Disable repositories. List option. Supports globs, can be specified multiple times.
--repo [repo], --repoid [repo]
enable just specific repositories by an id or a glob, can be specified multiple times
--enable enable repos with config-manager command (automatically saves)
--disable disable repos with config-manager command (automatically saves)
-x [package], --exclude [package], --excludepkgs [package]
exclude packages by name or glob
--disableexcludes [repo], --disableexcludepkgs [repo]
disable excludepkgs
--repofrompath [repo,path]
label and path to an additional repository to use (same path as in a baseurl), can be specified multiple times.
--noautoremove disable removal of dependencies that are no longer used
--nogpgcheck disable gpg signature checking (if RPM policy allows)
--color COLOR control whether color is used
--refresh set metadata as expired before running the command
-4 resolve to IPv4 addresses only
-6 resolve to IPv6 addresses only
--destdir DESTDIR, --downloaddir DESTDIR
set directory to copy packages to
--downloadonly only download packages
--comment COMMENT add a comment to transaction
--bugfix Include bugfix relevant packages, in updates
--enhancement Include enhancement relevant packages, in updates
--newpackage Include newpackage relevant packages, in updates
--security Include security relevant packages, in updates
--advisory ADVISORY, --advisories ADVISORY
Include packages needed to fix the given advisory, in updates
--bz BUGZILLA, --bzs BUGZILLA
Include packages needed to fix the given BZ, in updates
--cve CVES, --cves CVES
Include packages needed to fix the given CVE, in updates
--sec-severity {
Critical,Important,Moderate,Low}, --secseverity {
Critical,Important,Moderate,Low}
Include security relevant packages matching the severity, in updates
--forcearch ARCH Force the use of an architecture
3)Linux第一个进程
Linux操作系统的开机过程是这样的,先从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程。初始化进程作为Linux系统启动后的第一个正式服务,它需要完成Linux系统中相关的初始化工作,为用户提供合适的工作环境。
红帽RHEL 7/8系统替换掉了熟悉的初始化进程服务System V init,正式采用全新的systemd初始化进程服务。Linux系统在启动时要进行大量的初始化工作,比如挂载文件系统和交换分区、启动各类进程服务等,这些都可以看作是一个一个的单元(Unit),systemd用目标(target)代替了System V init中运行级别的概念,这两者的区别如下表所示。
System V init运行级别 | systemd目标名称 | systemd 目标作用 |
---|---|---|
0 | poweroff.target | 关机 |
1 | rescue.target | 单用户模式 |
2 | multi-user.target | 多用户的文本界面 |
3 | multi-user.target | 多用户的文本界面 |
4 | multi-user.target | 多用户的文本界面 |
5 | graphical.target | 多用户的图形界面 |
6 | reboot.target | 重启 |
emergency | emergency.target | 救援模式 |
想要将系统默认的运行目标修改为“多用户的文本界面”模式,可直接用ln命令把多用户模式目标文件连接到/etc/systemd/system/目录,执行:
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
4)重置用户密码:
重启Linux系统主机并出现引导界面时,按下键盘上的“e”键进入内核编辑界面,
在linux参数这行的最后面追加“rd.break”参数,然后按下“Ctrl + x”组合键来运行修改过的内核程序:
按下图所示,重置密码:
连续按下两次“Ctrl + d”组合键来退出并重启,等待系统再次重启完毕后便可以使用新密码来登录Linux系统了。
今天的文章rhel8.4安装_linux系统具体安装过程[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/85003.html