磁盘和文件系统,硬盘的物理结构

科技资讯 投稿 50400 0 评论

磁盘和文件系统,硬盘的物理结构

磁盘结构

硬盘的物理结构

  • 盘片:硬盘有多个盘片,每盘片有2面(正反两面)

  • 磁头:每面一个磁头,并不是只有一个磁头,磁头也 不会碰到盘面,磁头等于盘片数量

硬盘的数据结构

  • 扇区:盘片被分为多个扇形区域,每个扇区存放512 字节的数据(扇区越多容量越大)

  • 磁道:同一盘片不同半径的同心圆

  • 柱面:不同盘片相同半径构成的圆(柱面和磁道数量 相同)

硬盘存储容量

  • 硬盘存储容量=磁头数(8个2进制)×磁道(柱面) 数×每道扇区数(6个二进制)×每扇区字节数

  • 1柱面=512 * 扇区数/磁头数×磁道=51263255=7.84M

  • 可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域

硬盘接口的类型

  • IDE:133MB/s,并行接口,早期家用电脑

  • SCSI:640MB/s,并行接口,早期服务器

  • SATA:6Gbps,SATA数据端口与电源(长的,数据 线短的)端口是分开的,即需要两条线,一条数据 线,一条电源线

  • SAS:6Gbps,SAS是一整条线,数据端口与电源端 口是一体化的,SAS中是包含供电线的,而SATA中不 包含供电线。SATA标准其实是SAS标准的一个子集,二者可兼容,SATA硬盘可以插入SAS主板上,反之不行。

机械与固态硬盘

机械硬盘

固态硬盘

Solid State Drive,用固态电子存 储芯片阵列而制成的硬盘,由控制单元和存储单 元(FLASH芯片、DRAM芯片)组成。固态硬盘在接 口的规范和定义、功能及使用方法上与普通硬盘的 完全相同,在产品外形和尺寸上也与普通硬盘一致

区别

  • 相较于HDD,SSD在防震抗摔、传输速率、功耗、重 量、噪音上有明显优势,SSD传输速率性能是HDD 的2倍

  • 相较于SSD,HDD在价格、容量占有绝对优势 硬盘有价,数据无价,目前SSD不能完全取代HHD

#此处的8代表设备的类型 8后的数字代表第几类的 第几块设备

brw-rw----. 1 root disk 8, 1 8月   1 08:49 /dev/sda1
brw-rw----. 1 root disk 8, 2 8月   1 08:49 /dev/sda2

MBR与磁盘分区

为什么分区

  • 优化I/O性能

  • 实现磁盘空间配额限制

  • 提高修复速度

  • 隔离系统和程序

  • 安装多个OS

  • 采用不同文件系统

主引导记录

  • MBR位于硬盘第一个物理区处

  • MBR中包含硬盘的主引导程序和硬盘分区表

  • 分区表有4个分区记录区,每个分区记录区占16个字节

Linux中将硬盘、分区等设备均表示为文件

  • /dev/:硬件设备文件所在的目录

  • hd:表示IDE设备(sd表示scsi设备)

  • a:硬盘的顺序号,表示的第几块硬盘,以a、b、c…表示

  • 5:分区的顺序号,表示第一块硬盘接口的第五个分区

磁盘分区结构

  • 硬盘中的主分区数目只有4个

  • 主分区和扩展分区的序号限制在1~4

  • 扩展分区再分为逻辑分区

  • 逻辑分区的序号将始终从5开始

  • 扩展分区一定是主分区

  • 主分区不一定是扩展分区

文件系统

概述

是操作系统用于明确存储设备或分区上的文件的使用方 法和数据结构;即在存储设备上组织使用文件的 方法。操作系统中负责管理和存储文件信息的软件结构 称为文件管理系统,简称文件系统 从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进 行保护和检索的系统。具体地说,它负责为用户建立文 件,存入、读出、修改、转储文件,控制文件的 存取,安全控制,日志,压缩,加密等。

[root@localhost ~]# cat /proc/filesystems //查看当前系统支持的文件类型
nodev sysfs
nodev rootfs
nodev ramfs
nodev bdev
nodev proc
nodev cgroup
nodev cpuset
nodev tmpfs
nodev devtmpfs
nodev debugfs
nodev securityfs
nodev sockfs
nodev pipefs
nodev anon_inodefs
nodev configfs
nodev devpts
nodev hugetlbfs
nodev autofs
nodev pstore
nodev mqueue
nodev selinuxfs
xfs
nodev rpc_pipefs
nodev nfsd
fuseblk
nodev fuse
nodev fusectl
iso9660

文件系统的组成

  • 内核中的模块:ext4, xfs, vfat

  • Linux的虚拟文件系统:VFS

  • 用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat

XFS

  • 根据所记录的日志在很短的时间内迅速恢复磁盘文件内容

  • 用优化算法,日志记录对整体文件操作影响非常小

  • 是一个全64-bit的文件系统,最大可以支持8EB的文件系统,1EB=1024PB1PB=1024TB(这里才到 TB1TB=1024GB)

  • 而支持单个文件则达到8EB能以接近裸设备I/O的性能 存储

swap

  • swap交换分区是系统RAM的补充,swap 分区支持虚拟内存。

  • 当没有足够的 RAM 保存系统处理的数据时会将数据写入 swap 分区,当系统缺乏swap 空间时,内核会因 RAM 内存耗尽而终止进程。

  • 配置过多 swap 空间会造成存储设备处于分配状态但闲置,造成浪费,过多swap 空间还会掩盖内存不足。

FAT16、FAT32

  • FAT32指的是文件分配表是采用32位二进制数记录管理的磁盘文件管理方式,因FAT类文件系统的核心是文件分配表,命名由此得来。

  • FAT32是从FAT和FAT16发展而来的,优点是稳定性和兼容性好,能充分兼容Win 9X及以前版本,且维护方便。

  • 缺点是安全性差,且最大只能支持32GB分区,单个文件也只能支持最大4GB。

NTFS(xfs)

EXT4

  • 适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区是ext 文件系统的最新版。

  • 提供了很多新的特性,包 括纳秒级时间戳、创建和使用巨型文件 (16TB、最大1EB的文件系统,以及速度的提升 1EB=1024PB=1024TB

JFS

  • 主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。

  • 单个文件最大限制16TB,该文件系统最大支持 1PB的容量。1PB=1024TB

分区工具

fdisk

格式

fdisk -l [磁盘设备]     //非交互式查看磁盘分区
 
 fdisk [磁盘设备]        //交互式查看和管理磁盘分区

非交互式查看磁盘分区

[root@localhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 8, 0 8月   1 08:49 /dev/sda
brw-rw----. 1 root disk 8, 1 8月   1 08:49 /dev/sda1
brw-rw----. 1 root disk 8, 2 8月   1 08:49 /dev/sda2
[root@localhost ~]# fdisk -l /dev/sda

Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理:512 字节 / 512 字节
I/O 大小(最小/***:512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009766d

/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   125829119    61864960   8e  Linux LVM

交互式查看和管理磁盘分区

常用指令
指令 作用
m 打印出菜单
p 打印出当前分区表
n 新建一个分区
d 删除一个分区
t 改变分区的属性,系统ID
w 保存
q 不保存退出
示例  

[root@localhost ~]           # fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2。

使用写入命令前请三思。

命令(输入 m 获取帮助:m     //m指令打印出菜单
命令操作
a   toggle a bootable flag
b   edit bsd disklabel
c   toggle the dos compatibility flag
d   delete a partition
g   create a new empty GPT partition table
G   create an IRIX (SGI partition table
l   list known partition types
m   print this menu
n   add a new partition
o   create a new empty DOS partition table
p   print the partition table
q   quit without saving changes
s   create a new empty Sun disklabel
t   change a partition's system id

u   change display/entry units

v   verify the partition table

w   write table to disk and exit

x   extra functionality (experts only

命令(输入 m 获取帮助:p             //p指令打印出当前分区表

磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理:512 字节 / 512 字节
I/O 大小(最小/***:512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009766d

设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   125829119    61864960   8e  Linux LVM

blkid

可以查看块设备属性信息

[root@localhost ~]# blkid
/dev/sda1: UUID="1003453c-ed08-492a-bac5-76fd0e006c5d" TYPE="xfs"
/dev/sda2: UUID="4zS7ZS-vwuG-OXJz-rvsT-zmn9-pszq-u5Wqd7" TYPE="LVM2_member"
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/centos-root: UUID="dbfa8769-3674-4dca-9ea2-ce4d5d08a176" TYPE="xfs"
/dev/mapper/centos-swap: UUID="cc343a9d-2526-43ec-ae59-a927a4c8e9ec" TYPE="swap"
/dev/mapper/centos-home: UUID="fe129d06-2d94-456a-b126-728f0c61d9db" TYPE="xfs"

mkfs

选项

  • -t      {ext2|ext3|ext4|xfs} 指定文件系统类型

  • -b     {1024|2048|4096} 指定块 block 大小

  • -L   ‘LABEL’ 设置卷标

  • -j      ext3,相当于 -t mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3-i

  • -i      为数据空间中每多少个字节创建一个 inode;不应该小于block大小

  • -N     指定分区中创建多少个inode

  • -I      一个inode记录占用的磁盘空间大小,128---4096

  • -m     默认5%,为管理人员预留空间占总空间的百分比

  • -O     FEATURE[,...] 启用指定特性-O ^FEATURE 关闭指定

示例

[root@localhost ~]# ls /sbin/mkfs*     //查看当前系统支持哪些文件系统类型
 /sbin/mkfs         /sbin/mkfs.ext2  /sbin/mkfs.fat    /sbin/mkfs.vfat
 /sbin/mkfs.btrfs   /sbin/mkfs.ext3  /sbin/mkfs.minix  /sbin/mkfs.xfs
 /sbin/mkfs.cramfs  /sbin/mkfs.ext4  /sbin/mkfs.msdos
 [root@localhost ~]# mkfs.xfs /dev/sdb1      //将sdb1格式化为XFS文件系统
 meta-data=/dev/sdb3              isize=512    agcount=4, agsize=655360 blks
          =                       sectsz=512   attr=2, projid32bit=1
          =                       crc=1        finobt=0, sparse=0
 data     =                       bsize=4096   blocks=2621440, imaxpct=25
          =                       sunit=0      swidth=0 blks
 naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
 log      =internal log           bsize=4096   blocks=2560, version=2
          =                       sectsz=512   sunit=0 blks, lazy-count=1
 realtime =none                   extsz=4096   blocks=0, rtextents=0

fsck.FS_TYPE
fsck -t FS_TYPE
-a 自动修复
-r 交互式修复错误

mkswap

特殊的文件系统,缓解内存不足,为了个别应为程序加 内存有点浪费

添加交换分区的空间

  • mkswap + 分区

  • swapon +分区 开启 -a 全部

  • swapoff +分区 关闭 -a 全部

正在设置交换空间版本 1,大小 = 6289404 KiB
 无标签,UUID=2b59e021-35a5-489a-9450-849917a9850a
 [root@localhost ~]# swapon -s             //显示所有启用的交换分区,目前只显示系统原有的交换分区
 文件名                          类型            大小    已用    权限
 /dev/dm-1                               partition       4194300 0       -1
 [root@localhost ~]# swapon /dev/sdb6      //启用交换分区
 [root@localhost ~]# swapon -s             //此时查看,显示了刚刚启用的交换分区
 文件名                          类型            大小    已用    权限
 /dev/dm-1                               partition       4194300 0       -1
 /dev/sdb6                               partition       6289404 0       -2
 [root@localhost ~]# swapoff /dev/sdb6     //不使用后可以停用交换分区
 [root@localhost ~]# swapon -s             //查看所有交换分区,/dev/sdb6已不显示
 文件名                          类型            大小    已用    权限
 /dev/dm-1                               partition       4194300 0       -1

lsblk

[root@localhost ~]# lsblk -d -o name,rota
#查看当前硬盘是什么模式 固态 机械 1 机械 0 固态
NAME ROTA
sda     1
sr0     1

挂载与解挂载

mount

格式

示例

[root@localhost ~]# df -h                            //查看磁盘情况,已成功挂载
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   10G  4.9G  5.2G   49% /
devtmpfs                 897M     0  897M    0% /dev
tmpfs                    912M     0  912M    0% /dev/shm
tmpfs                    912M  9.1M  903M    1% /run
tmpfs                    912M     0  912M    0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M   18% /boot
tmpfs                    183M     0  183M    0% /run/user/0
tmpfs                    183M   40K  183M    1% /run/user/1005
/dev/sr0                 4.3G  4.3G     0  100% /run/media/Amy/CentOS 7 x86_64
/dev/sdb1                 10G   33M   10G    1% /opt/aa

挂载规则

  • 一个挂载点同一时间只能挂载一个设备

  • 一个挂载点同一时间挂载了多个设备,只能看到最后

  • 一个设备的数据,其它设备上的数据将被隐藏

  • 一个设备可以同时挂载到多个挂载点

  • 通常挂载点一般是已存在空的目录

umount

格式

umount 挂载点目录

[root@localhost opt]# umount /dev/sdb1   //将sdb1解除挂载
 [root@localhostopt]# df -h                //查看磁盘情况,已成功解挂载
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   10G  4.9G  5.2G   49% /
devtmpfs                 897M     0  897M    0% /dev
tmpfs                    912M     0  912M    0% /dev/shm
tmpfs                    912M  9.1M  903M    1% /run
tmpfs                    912M     0  912M    0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M   18% /boot
tmpfs                    183M     0  183M    0% /run/user/0
tmpfs                    183M   40K  183M    1% /run/user/1005

永久挂载

UUID 可以确保唯一

 [root@localhost ~]# blkid       //查看硬件设备的UUID
 /dev/sda1: UUID="87263b93-1e10-49c6-a30c-2b80b6b17038" TYPE="xfs"
 /dev/sda2: UUID="NOm6dB-M1Oe-2DBL-JyAF-p9by-VTLr-14MAfJ" TYPE="LVM2_member"
 /dev/sdb1: UUID="e0b714cd-c33e-42b2-a051-1e1f3333b4b7" TYPE="xfs"
 /dev/sdb5: UUID="f9f897a8-ae5d-4ec3-a48f-33e2757213ae" TYPE="xfs"
 /dev/sdb6: UUID="2b59e021-35a5-489a-9450-849917a9850a" TYPE="swap"
 /dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
 /dev/mapper/centos-root: UUID="d0d8117f-e6af-46de-985e-910fafd9d4a2" TYPE="xfs"
 /dev/mapper/centos-swap: UUID="8a01eff6-7570-42db-ba4d-a7ff11acbdb3" TYPE="swap"

[root@localhost ~]# vim /etc/fstab     //修改配置文件 #将sdb1加入配置文件 UUID=e0b714cd-c33e-42b2-a051-1e1f3333b4b7 /data/aa xfs  defaults        0 0
以 “/dev/mapper/centos-root / xfs defaults 0 0” 为例
-   字段1:设备名或设备卷标名、或设备的UUID(建议使用UUID,可使用lsbik命令查看)。

-   字段3:文件系统类型,如 XFS、swap 等。

-   字段5:表示文件系统是否需要 dump 备份(dump是一个备份工具)。一般设为1时表示需要,设为0时将被dump忽略。

磁盘分区完整步骤

第一步:检测并确认新硬盘

 [root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
 [root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host2/scan
 [root@localhost ~]# lsblk     //查看块设备,已识别到新硬盘sdb
 NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 sda               8:0    0   60G  0 disk
 ├─sda1            8:1    0    1G  0 part /boot
 └─sda2            8:2    0   14G  0 part
   ├─centos-root 253:0    0   10G  0 lvm  /
   └─centos-swap 253:1    0    4G  0 lvm  [SWAP]
 sdb               8:16   0   20G  0 disk
 sr0              11:0    1  4.2G  0 rom

第二步:设置硬盘分区

欢迎使用 fdisk (util-linux 2.23.2。

使用写入命令前请三思。

使用磁盘标识符 0x8fd606b5 创建新的 DOS 磁盘标签。

Partition type:
p   primary (0 primary, 0 extended, 4 free
e   extended
Select (default p:
Using default response p
分区号 (1-4,默认 1:
起始 扇区 (2048-125829119,默认为 2048:
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-125829119,默认为 125829119:+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB

Partition type:
p   primary (1 primary, 0 extended, 3 free
e   extended
Select (default p:
Using default response p
分区号 (2-4,默认 2:
起始 扇区 (20973568-125829119,默认为 20973568:
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-125829119,默认为 125829119:+10G
分区 2 已设置为 Linux 类型,大小设为 10 GiB

Partition type:
p   primary (2 primary, 0 extended, 2 free
e   extended
Select (default p:
Using default response p
分区号 (3,4,默认 3:
起始 扇区 (41945088-125829119,默认为 41945088:
将使用默认值 41945088
Last 扇区, +扇区 or +size{K,M,G} (41945088-125829119,默认为 125829119:+10G
分区 3 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助:N
Partition type:
p   primary (3 primary, 0 extended, 1 free
e   extended
Select (default e:
Using default response e
已选择分区 4
起始 扇区 (62916608-125829119,默认为 62916608:
将使用默认值 62916608
Last 扇区, +扇区 or +size{K,M,G} (62916608-125829119,默认为 125829119:+10G
分区 4 已设置为 Extended 类型,大小设为 10 GiB

The partition table has been altered!

正在同步磁盘。

[root@localhost ~]# lsblk
NAME       MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda          8:0    0   60G  0 disk
├─sda1       8:1    0    1G  0 part /boot
└─sda2       8:2    0   59G  0 part
├─centos-root
253:0    0 38.3G  0 lvm  /
├─centos-swap
253:1    0    2G  0 lvm  [SWAP]
└─centos-home
253:2    0 18.7G  0 lvm  /home
sdb          8:16   0   60G  0 disk
├─sdb1       8:17   0   10G  0 part
├─sdb2       8:18   0   10G  0 part
├─sdb3       8:19   0   10G  0 part
└─sdb4       8:20   0    1K  0 part
sr0         11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64

第三步:为分区指定文件系统(格式化)

将/dev/sdb1 格式化为XFS文件系统——mkfs.xfs命令

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=655360 blks
=                       sectsz=512   attr=2, projid32bit=1
=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=1

将/dev/sdb2 格式化为交换文件系统——mkswap命令

正在设置交换空间版本 1,大小 = 6289404 KiB
 无标签,UUID=2b59e021-35a5-489a-9450-849917a9850a

 [root@localhost ~]# swapon -s          //显示所有启用的交换分区,目前只显示系统原有的交换分区
 文件名                          类型            大小    已用    权限
 /dev/dm-1                               partition       4194300 0       -1
 [root@localhost ~]# swapon /dev/sdb2    //启用交换分区
 [root@localhost ~]# swapon -s           //此时查看,显示了刚刚启用的交换分区
 文件名                          类型            大小    已用    权限
 /dev/dm-1                               partition       4194300 0       -1
 /dev/sdb2                               partition       6289404 0       -2
 
 [root@localhost ~]# swapoff /dev/sdb2   //不使用后可以停用交换分区
 [root@localhost ~]# swapon -s           //查看所有交换分区,/dev/sdb6已不显示
 文件名                          类型            大小    已用    权限
 /dev/dm-1                               partition       4194300 0       -1

第四步:挂载文件系统

方式一:使用mount命令一次性挂载

[root@localhost /]# cd /data
 [root@localhost data]# mkdir aa       //在/data目录下创建子目录aa
 [root@localhost data]# ls
 aa
 [root@localhost opt]# mount /dev/sdb1 /data/aa   //将sdb1挂载到aa目录下
 [root@localhost ~]# df -Th      //查看磁盘情况并显示文件系统类型,可看到已成功挂载
 文件系统                类型      容量  已用  可用 已用% 挂载点
 /dev/mapper/centos-root xfs        10G  4.9G  5.2G   49% /
 devtmpfs                devtmpfs  897M     0  897M    0% /dev
 tmpfs                   tmpfs     912M     0  912M    0% /dev/shm
 tmpfs                   tmpfs     912M  9.1M  903M    1% /run
 tmpfs                   tmpfs     912M     0  912M    0% /sys/fs/cgroup
 /dev/sda1               xfs      1014M  179M  836M   18% /boot
 tmpfs                   tmpfs     183M     0  183M    0% /run/user/0
 tmpfs                   tmpfs     183M   40K  183M    1% /run/user/1005
 /dev/sr0                iso9660   4.3G  4.3G     0  100% /run/media/Amy/CentOS 7 x86_64
 /dev/sdb1               xfs        10G   33M   10G    1% /opt/aa

方式二:永久挂载

 [root@localhost ~]# blkid       //查看硬件设备的UUID
 /dev/sda1: UUID="87263b93-1e10-49c6-a30c-2b80b6b17038" TYPE="xfs"
 /dev/sda2: UUID="NOm6dB-M1Oe-2DBL-JyAF-p9by-VTLr-14MAfJ" TYPE="LVM2_member"
 /dev/sdb1: UUID="e0b714cd-c33e-42b2-a051-1e1f3333b4b7" TYPE="xfs"
 /dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
 /dev/mapper/centos-root: UUID="d0d8117f-e6af-46de-985e-910fafd9d4a2" TYPE="xfs"
 /dev/mapper/centos-swap: UUID="8a01eff6-7570-42db-ba4d-a7ff11acbdb3" TYPE="swap" 
 [root@localhost ~]# vim /etc/fstab     //修改配置文件
 #将sdb1和sdb2加入配置文件
 UUID=e0b714cd-c33e-42b2-a051-1e1f3333b4b7 /data/aa xfs  defaults        0 0

编程笔记 » 磁盘和文件系统,硬盘的物理结构

赞同 (29) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽