玄子Share-引导过程与服务控制

玄子Share-引导过程与服务控制

Linux操作系统引导过程

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

系统初始化进程

  • init 进程
    • 由 Linux 内核加载运行 /sbin/init 程序
    • init 进程是系统中第一个进程
    • init 进程的 PID(进程标记)号永远为 1
  • Systemd
    • Systemd是Linux操作系统的一种init软件
    • CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
    • CentOS7中运行的第一个init进程是/lib/systemd/systemd

Systemd 单元类型

单元类型扩展名说明
Service.service描述一个系统服务
Socket.socket描述一个进程间通信的套接字
Device.device描述一个内核识别的设备文件
Mount.mount描述一个文件系统的挂载点
Automount.automount描述一个文件系统的自动挂载点
Swap.swap描述一个内存交换设备或交换文件
Path.path描述一个文件系统中文件或目录
Timer.timer描述一个定时器(用于实现类似cron的调度任务)
Snapshot.snapshot用于保存一个systemd的状态
Scope.scope使用systemd的总线接口以编程的方式创建外部进程
Slice.slice描述居于Cgroup的一组通过层次组织的管理系统进程
Target.target描述一组systemd的单元

运行级别所对应的 Systemd 目标

文件路径: /lib/systemd/system/ 和 /usr/lib/systemd/system/

运行级别Systemd的target说明
0shutdown.target关机状态,使用该级别时将会关闭主机
1rescue.target单用户模式,不需要密码验证即可登录系统,多用于系统维护
2multi-user.target不支持网络的多用户模式。默认等同于3
3multi-user.target字符界面的完整多用户模式,大多数服务器主机运行在此级别
4multi-user.target系统未使用。默认等同于3
5graphical.target图形界面的多用户模式,提供了图形桌面操作环境
6reboot.target重新启动,使用该级别时将会重启主机

系统启动类故障排除

修复MBR扇区故障

  • 故障原因
    • 病毒、木马等造成的破坏
    • 不正确的分区操作、磁盘读写误操作
  • 故障现象
    • 找不到引导程序,启动中断
    • 无法加载操作系统,开机后黑屏
  • 解决思路
    • 应提前作好备份文件
    • 以安装光盘引导进入急救模式
    • 从备份文件中恢复
# 虚拟机新添加一块磁盘,然后开机
fdisk -l
# 查看新添加磁盘
fdisk /dev/sdb
# 进行磁盘分区管理:n,p,1,默认,默认,w
partx  /dev/sdb
# 更新内核关于磁盘分区表的信息
mkfs.ext4 /dev/sdb1
# 格式化分区为 CentOS6 默认类型 ext4
mkdir /backup
# 创建挂载点目录
mount /dev/sdb1 /backup/
# 挂载分区至挂载点目录
mount | tail -1
# 查看分区挂载情况
dd if=/dev/sda of=/backup/sda.mbr.bak bs=512 count=1
# 备份 MBR;bs=512 MBR 默认 512 大小;count=1 复制一份
ls -hl /backup/sda.mbr.bak 
# 查看备份文件信息
dd if=/dev/zero of=/dev/sda bs=512 count=1
# 模拟 MBR 被破坏的故障
reboot
# 重启系统

重启进入系统前确保,已勾选连接选项

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

重启系统后选择第三项,进入急救模式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

键盘按下,选择语言模式为简体中文

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

保持默认,回车

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

键盘按下取消网络设置,回车

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

选择Continue,回车

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

按下回车,输入如下命令

mkdir /tempdir
# 重新创建挂载点目录
mount /dev/sdb1 /tempdir
# 挂载分区
dd if=/tempdir/sda.mbr.bak of=/dev/sda bs=512 count=1
# 从之前备份的 MBR 恢复
reboot
#  重启

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

重启后进入登录界面,修复完毕

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

修复GRUB引导故障

  • 故障原因
    • MBR中的GRUB引导程序遭到破坏
    • grub.conf文件丢失、引导配置有误
  • 故障现象
    • 系统引导停滞,显示“grub>” 提示符
  • 解决思路
    • 尝试手动输入引导命令
    • 进入急救模式,重写或者从备份中恢复
    • grub.conf向 MBR 扇区中重建grub程序

进入系统前确保,已勾选连接选项

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

开机进入系统,以此执行如下命令

cd /boot/grub
# 进入到 grub 目录
mv grub.conf grub.conf.bak
# 同目录下执行 mv 命令相当于重名操作,模拟 grub 损坏
init 0
# 关闭系统

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

右键系统,电源,选择打开电源时进入固件,即 BIOSS 模式,提一句,这里右键很容易选错虚拟机,启动前确认一下

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

键盘按下选择boot,按下选中CD-ROM Drive按下Shift +调整至第一位,按下F10报错退出

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

进入安装选择界面,使用同样的方式进入急救模式到 shell 页面,输入如下命令

chroot /mnt/sysimage
# 从急救系统切换到代修复的 Linux 根目录
cd /boot/grub
# 切换到  grub 目录
mv grub.conf.bak grub.conf
# 同样使用 mv 命令重命名恢复 grub.conf
exit
# 退出
reboot
# 重启

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

重启后,仍然进入安装界面,因为:BIOSS 设置CD-ROM Drive为启动项第一位,需要重新以固件模式启动并恢复BIOSS 设置

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

+Hard Drive调整至第一位,F10保存退出

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

重启后等待时间较长,需要重新扫描 grub,等待后进入登录界面,修复完毕

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

/etc/inittab文件丢失

遗忘root用户密码

  • 故障原因
    • 遗忘root用户的密码
  • 故障现象
    • 无法进行需要root权限的管理操作
    • 若没有其他可用帐号,将无法登录系统
  • 解决思路
    • 引导进入单用户模式,然后重设密码
      • grub > kernel … single 或 s 或 1
    • 或进入急救模式,然后重设密码
方式1

进入系统前确保,已勾选连接选项

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因为系统没有启动问题,无法进入安装界面,所以用 BIOSS 启动并将CD-ROM Drive 设置到第一位,F10保存退出

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

重启后进入安装界面,使用同样的方式进入急救模式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

进入 shell 界面,输入如下命令,关机后记得恢复 BIOSS 设置,将+Hard Drive调整至第一位,F10保存退出

chroot /mnt/sysimage
# 从急救系统切换到代修复的 Linux 根目录
passwd root
# 修改 root 密码
exit
# 退出
reboot
# 重启

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

重启后进入登录界面,修复完毕,使用刚修改的 root 密码登录

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方式2

正常开机,在读秒期内,键盘按下E

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

再次按下E

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

选择第二项,键盘按下E

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

后面加上数字1,回车

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

键盘按下B键,进入单用户模式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

进入单用户模式,使用passwd命令重置 root 密码

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

重启后进入登录界面,修复完毕,使用刚修改的 root 密码登录

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

系统文件类故障排除

修复文件系统

  • 故障原因

    • 非正常关机、突然断电、设备读写失误等
    • 文件系统的超级块(super-block)信息被破坏
  • 故障现象

    • 无法向分区中读取或写入数据
    • 启动后提示“Give root password for maintenance”
  • 解决思路

    • 根据提示输入root口令,进入修复状态
    • 使用fsck命令进行修复
# 虚拟机新添加一块磁盘,然后开机
fdisk -l
# 查看新添加磁盘
fdisk /dev/sdb
# 进行磁盘分区管理:n,p,1,默认,默认,w
partx  /dev/sdb
# 更新内核关于磁盘分区表的信息
mkfs.ext4 /dev/sdb1
# 格式化分区为 CentOS6 默认类型 ext4
mkdir /kgc
# 创建挂载点目录
mount /dev/sdb1 /kgc
# 挂载分区至挂载点目录
mount | tail -1
# 查看分区挂载情况
dd if=/dev/zero of=/dev/sdb1 bs=512 count=4
# 损坏 sdb1 分区
mount /dev/sdb1 /kgc
# 重新挂载分区 mount:you must specify the filesystemtype
fsck -y -t ext4 /dev/sdb1
# 使用 fsck 命令修复 sdb1 指定修复分区格式为 ext4
mount /dev/sdb1 /kgc
# 再次尝试挂载
mount | tail -1
# 查看分区挂载情况

磁盘资源耗尽故障

  • 故障原因

    • 磁盘空间已被大量的数据占满,空间耗尽
    • 虽然还有可用空间,但文件数i节点耗尽
  • 故障现象

    • 无法写入新的文件,提示“… : 设备上没有空间”
    • 部分程序无法运行,甚至系统无法启动
  • 解决思路

    • 清理磁盘空间,删除无用、冗余的文件
    • 转移或删除占用大量i节点的琐碎文件
    • 进入单用户模式、急救模式进行修复
    • 为用户设置磁盘配额
# 虚拟机新添加一块磁盘(磁盘容量给小点 0.1 ),然后开机
fdisk -l
# 查看新添加磁盘
fdisk /dev/sdb
# 进行磁盘分区管理:n,p,1,默认,默认,w
partx  /dev/sdb
# 更新内核关于磁盘分区表的信息
mkfs.ext4 /dev/sdb1
# 格式化分区为 CentOS6 默认类型 ext4
mkdir /data
# 创建挂载点目录
mount /dev/sdb1 /data
# 挂载分区至挂载点目录
mount | tail -1
# 查看分区挂载情况
df -i /data
# Ifree 剩余节点空间
vim /killInode.sh
# 编写脚本文件自动生成,把剩余空间填充完
#! bin/bash
i=1
while [ $i -le 26197 ]
do
	touch /data/file$i
	let i++
done
cd /
# 切换到根目录
./killInode.sh &
# 执行脚本文件 & 后台执行
# 若提示无权限,则执行 chmod /killInode.sh 755 分配执行权限
df -i /data
# 查看剩余空间,显示全部占用
cp  /etc/passwd /data
# 复制文件到 data 无法复制,空间全部占用
rm -rf /data/file?
# 删除部分文件
cp  /etc/passwd /data
# 重新复制,复制成功
df -i /data
# 再次查看剩余空间

检测磁盘坏道

  • 故障原因
    • 磁盘设备中存在坏道(逻辑的或物理的)
  • 故障现象
    • 读取磁盘中的数据时,磁盘设备发出异常声响。
    • 访问磁盘中的某个文件时,反复读取且出错,提示文件损坏。
    • 对于新建立的分区无法完成格式化。
    • 系统使用该磁盘时频繁死机
badblocks -sv /dev/sdb
# 扫描磁盘坏道 Pass completed, 0 bad blocks found.

系统服务管理

重启操作

  • 基于CentOS 6 的重启操作
    • init 6
    • reboot
    • shutdown -r now
  • 基于CentOS 7 的重启操作
    • init 6
    • reboot
    • shutdown -r now
    • systemctl reboot

关机操作

  • 基于CentOS 6 的关机操作
    • init 0
    • poweroff
    • shutdown -h now
    • halt -p
  • 基于CentOS 7 的关机操作
    • init 0
    • poweroff
    • shutdown -h now
    • halt -p
    • systemctl poweroff

系统服务控制

systemctl  控制类型 服务名称
# CentOS7
service 服务名称 控制类型
# CentOS6
  • start:启动
  • stop:停止
  • restart:重新启动r
  • eload:重新加载
  • status:查看服务状态

查看Linux系统的运行级别

  • runlevel 命令(6)

    • 两个参数,第一个参数表示上次使用运行级别(默认N),第二个参数表示当时使用运行级别
  • systemctl 工具(7)

    • systemctl 查看默认的运行级别 target

临时切换运行级别

  • init 参数运行级别对应数字(6)
    • init 3 :从桌面切换到字符终端
    • init 5 :从字符终端切换到桌面
  • systemctl 工具参数具体 rarget(7)
    • systemctl isolate multi-user.target :从桌面环境切换到字符终端
    • systemctl isolate graphical-user.target :从字符终端切换到桌面

设置永久运行级别

基于CentOS 6

  • 将系统的运行级别永久设置为多用户字符终端,对应的运行级别是3

    • 修改配置文件:vim /etc/inittab
    • id:5:initdefault: (修改id就是运行级别)
  • 将系统的运行级别永久设置为多用户桌面环境,对应的运行级别是5

    • 修改配置文件:vim /etc/inittab

    • id:3:initdefault: (修改id就是运行级别)

基于CentOS 7

  • 将系统的运行级别永久设置为多用户字符终端,对应的运行级别是 3

    • ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
    • systemctl get-defaults
  • 将系统的运行级别永久设置为多用户桌面环境,对应的运行级别是 5

    • ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
    • systemctl get-defaults
systemctl  set-default multi-user.target
# 设置字符页面
systemctl  set-default graphical.target
# 设置图形页面

系统服务介绍

linux 系统中,有一些特殊程序,启动后会持续在后台运行,等待用户或其他软件调用,这种程序称为服务

  • 系统服务:服务的对象是linux系统本身
  • 网络服务:服务的对象是网络中的客户端

系统服务优化启动过程

基于CentOS 6

  • ntsysv工具
    • 命令模式:ntsysv --level 运行级别 服务名称
  • chkconfig 配置工具
    • 命令模式:chkconfig --level 运行级别 服务名称 开启或禁用 (on/off)

基于CentOS 7

  • ntsysv 工具
    • 提供一个交互式、可视化窗口
    • 可以在字符终端运行
    • 便于集中管理多个服务
  • systemctl 工具
    • 不提供交互式、可视化窗口
    • 管理单个服务效率更高

系统服务的启动和控制

ntsysv 系统服务管理工具

ntsysv                         
# 用于管理当前运行级别中的服务 
ntsysv --level  2345
# 对指定运行级别中的服务进行管理
# 有*号代表开机自启动

Centos6 服务开机自启动控制-chkconfig

查看系统服务的开机启动状态

chkconfig  --list  
# 服务名称

设置系统服务的开机启动状态

chkconfig  --level 2345   服务名称  on
# 将服务设置为开机启动
chkconfig  --level 2345   服务名称  off
# 将服务设置为开机不启动

Centos7 服务开机自启动控制-systemctl

查看系统服务的开机启动状态

systemctl is-enabled 服务名称

设置系统服务的开机启动状态

systemctl  enable   服务名称       
# 将服务设置开机自启动
systemctl  disable  服务名称       
# 将服务设置开机不启动
systemctl  enable   服务名称 --now  
# 将服务启动并设置开机自启动
systemctl  disable  服务名称 --now  
# 将服务关闭并设置开机不启动
systemctl  enable   服务名称 服务名称  服务名称
# 批量设置将服务设置开机自启动

查看系统中所有以激活的系统服务

systemctl  list-units  --type=service

玄子Share-引导过程与服务控制 2024-03-23

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/583328.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux开发 第十二篇】搭建JavaEE环境

搭建开发环境 搭建javaEE环境 搭建javaEE环境 在Linux下开发JavaEE需要安装软件包: 安装jdk 安装步骤: 在opt目录下创建jdk目录通过xftp上床到jdk目录中进入到jdk目录中,解压jdk压缩包在/usr/local下创建java目录将解压完成的jdk文件移动…

SpringBoot框架学习笔记(一):依赖管理和自动配置

本文为个人笔记,仅供学习参考之用,如有不当之处请指出。 本文基于springboot2.5.3版本,开发环境需要是 jdk 8 或以上,maven 在 3.5 1 SpringBoot 基本介绍 1.1 官方文档 (1) 官网 : https://spring.io/pr…

张朝阳对话华为Fellow陈海波:万物智联时代,鸿蒙如何实现“换道超车”?

随着智能终端设备的普及和万物智联时代的加速到来,鸿蒙生态的高速发展正引发全行业的关注。 搜狐创始人、董事局主席兼CEO、物理学博士张朝阳与华为Fellow、基础软件首席科学家陈海波带来了一场关于鸿蒙生态的公开课。鸿蒙技术架构有哪些领先性?HarmonyOS发布5年来…

compose调用系统分享功能分享图片文件

compose调用系统分享功能图片文件 简介UI界面提供给外部程序的文件访问权限创建FileProvider设置共享文件夹 通用分享工具虚拟机验证结果参考 本系列用于新人安卓基础入门学习笔记,有任何不同的见解欢迎留言 运行环境 jdk17 andriod 34 compose material3 简介 本案…

Hadoop3:集群搭建及常用命令与shell脚本整理(入门篇,从零开始搭建)

一、集群环境说明 1、用VMware安装3台Centos7.9虚拟机 2、虚拟机配置:2C,2G内存,50G存储 3、集群架构 从表格中,可以看出,Hadoop集群,主要有2部分,一个是HDFS服务,一个是YARN服务 …

[系统安全] 六十.威胁狩猎 (1)APT攻击检测及防御与常见APT组织的攻击案例分析

您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系…

四、管道与重定向

四、管道与重定向 1 重定向 0,标准输入(键盘) 1,标准输出 2,标准错误, 3,进程在执行过程中打开的其他文件。 &:表示正确错误混合输出1.1 输出重定向 (覆盖,追加) > ----覆盖 >> ----追加 正确输出: 1> 1>> 等价…

Git 仓库内容操作

Git 仓库内容操作 | CoderMast编程桅杆Git 仓库内容操作 添加文件到暂存区 使用如下指令将工作区的文件添加到暂存区,告诉 Git 在下次 commit 时哪些文件做出了修改。 commit 指令详看后续 添加一个或多个文件到暂存区: 添加指定目录到暂存区 添加当前目…

ffmpeg与sdl的个人笔记

说明 这里的ffmpeg基础知识和sdl基础知识仅提及与示例代码相关的知识点, 进阶可学习雷神的博客。 https://blog.csdn.net/leixiaohua1020 当然,如代码写的有问题或有更好的见解,欢迎指正! 音视频基础知识 在学习音视频理论知识时&#xff…

CSS中设置透明度的2个属性:opacity,RGBA以及它们的区别

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合…

试用了三个Ai音乐工具,我的偶像河图要完蛋了

试了三个生成音乐的ai工具,分别是爆火的suno,后期新秀udio,还有我们国内的天工。 先说感受,suno和天工我觉得稍微靠前,udio可能我的配置风格有问题,啪啪啪连选了好几个风格,生成的东西有点怪。 我随手写了…

【机器学习基础1】什么是机器学习、预测模型解决问题的步骤、机器学习的Python生态圈

文章目录 一. 什么是机器学习1. 概念2. 机器学习算法分类 二. 利用预测模型解决问题的步骤三. 机器学习的Python生态圈 一. 什么是机器学习 1. 概念 机器学习(Machine Learning,ML)是一门多领域的交叉学科,涉及概率论、统计学、…

深度学习 --- stanford cs231学习笔记(一)

stanford cs231学习笔记(一) 1,先是讲到了机器学习中的kNN算法,然后因为kNN分类器的一些弊端,引入了线性分类器。 kNN算法的三大弊端: (1),计算量大,当特征比较多时表示性差 (2),训练时耗时少…

01 - 安装Kettle

下载安装包 我这边提供的安装包是绿色版的,开箱即用 Kettle.exe 阿里云盘分享 提取码: 8sd5 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。 启动步骤 解压 双击Spo…

注意力机制(四)(多头注意力机制)

​🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀《深度学习基础知识》 相关专栏: ⚽《机器学习基础知识》 🏐《机器学习项目实战》 🥎《深度学习项目实…

Python | Leetcode Python题解之第55题跳跃游戏

题目&#xff1a; 题解&#xff1a; class Solution:def canJump(self, nums: List[int]) -> bool:n, rightmost len(nums), 0for i in range(n):if i < rightmost:rightmost max(rightmost, i nums[i])if rightmost > n - 1:return Truereturn False

闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子

前言 一个在实际应用中 EF Core 集成 FluentValidation 进行数据校验的例子。 Step By Step 步骤 创建一个 Asp.Net Core WebApi 项目 引用以下 Nuget 包 FluentValidation.AspNetCore Microsoft.AspNetCore.Identity.EntityFrameworkCore Microsoft.EntityFrameworkCore.Re…

Unity 合并子物体获得简化Mesh

合并子物体获得简化Mesh &#x1f959;环境&#x1f96a;Demo &#x1f959;环境 PackageManager安装Editor Coroutines 导入插件&#x1f448; &#x1f96a;Demo 生成参数微调&#xff1a;Assets/EasyColliderEditor/Scripts/VHACDSettings/VHACDSettings.asset

TDengine高可用架构之TDengine+Keepalived

之前在《TDengine高可用探讨》提到过&#xff0c;TDengine通过多副本和多节点能够保证数据库集群的高可用。单对于应用端来说&#xff0c;如果使用原生连接方式&#xff08;taosc&#xff09;还好&#xff0c;当一个节点下线&#xff0c;应用不会受到影响&#xff1b;但如果使用…

Kafka 3.x.x 入门到精通(03)——Kafka基础生产消息

Kafka 3.x.x 入门到精通&#xff08;03&#xff09;——对标尚硅谷Kafka教程 2. Kafka基础2.1 集群部署2.2 集群启动2.3 创建主题2.4 生产消息2.4.1 生产消息的基本步骤2.4.2 生产消息的基本代码2.4.3 发送消息2.4.3.1 拦截器2.4.3.1.1 增加拦截器类2.4.3.1.2 配置拦截器 2.4.3…
最新文章