Linux基础笔记18 | 磁盘分区管理

打印 上一主题 下一主题

主题 905|帖子 905|积分 2715

fdisk 分区工具

fdisk 这个古老的软件并不认识 GPT ,所以 fdisk 只支持 MBR 的分区模式,且磁盘小于2T,大于了就不能使用 fdisk 进行分区了
新磁盘的分区

一块新加的磁盘的分区方式
查抄系统中需要分区的磁盘
fdisk -l

对新磁盘进行磁盘分区
fdisk /dev/sdb
进入交互式分区界面

键入 m 获取帮助信息

常用的下令选项


  • d:删除一个分区
  • n:添加一个新分区
  • q:退出而不保存更改
  • w:将分区表写入磁盘并退出
  • m:打印帮助菜单
  • p:打印分区表信息
  • v:验证分区表
分区过程
  1. 命令(输入 m 获取帮助):n                                                                                # n:新建一个分区
  2. Partition type:
  3.    p   primary (0 primary, 0 extended, 4 free)
  4.    e   extended
  5. Select (default p): p                                                                                # p:分区类型是主分区
  6. 分区号 (1-4,默认 1):1                                                                         # 选择分区号
  7. 起始 扇区 (2048-104857599,默认为 2048):                                        # 起始扇区(默认就好)
  8. 将使用默认值 2048
  9. Last 扇区, +扇区 or +size{K,M,G} (2048-104857599,默认为 104857599):+10G        # 分区大小
  10. 分区 1 已设置为 Linux 类型,大小设为 10 GiB
  11. 命令(输入 m 获取帮助):w                                                        # 写入磁盘并退出
  12. The partition table has been altered!
  13. Calling ioctl() to re-read partition table.
  14. 正在同步磁盘。
  15. [root@vm10 ~]#
复制代码
查看新建的分区
fdisk -l

格式化新建的分区
mkfs.xfs /dev/sdb1 或者mkfs.ext4 /dev/sdb1 不同文件系统类型(正常来说不应该加 -f ,-f 意思是强制覆盖现有的文件系统)

末了挂载使用
mount /dev/sdb1 /home/ceshi/:将分区 sdb1 挂载在 /home/ceshi 目次下

以上就是完备的一个新磁盘从分区到被系统使用的一个参考过程!
原有磁盘基础上分区

有时间会遇到有些磁盘还剩一点空间,需要在原来基础上增加分区,详细可以参考以下分区流程
确定待增加分区的磁盘信息
fdisk -l

进入分区交互界面

接着分新的分区即可
  1. [root@vm10 home]# fdisk /dev/sdb
  2. 欢迎使用 fdisk (util-linux 2.23.2)。
  3. 更改将停留在内存中,直到您决定将更改写入磁盘。
  4. 使用写入命令前请三思。
  5. 命令(输入 m 获取帮助):n                                                                                        # 键入 n
  6. Partition type:
  7.    p   primary (1 primary, 0 extended, 3 free)                                                # 键入 p
  8.    e   extended
  9. Select (default p): p
  10. 分区号 (2-4,默认 2):                                                                                # 默认回车就行
  11. 起始 扇区 (20973568-104857599,默认为 20973568):                        # 默认回车就行
  12. 将使用默认值 20973568
  13. Last 扇区, +扇区 or +size{K,M,G} (20973568-104857599,默认为 104857599):+10G        # 设置分区大小
  14. 分区 2 已设置为 Linux 类型,大小设为 10 GiB
  15. 命令(输入 m 获取帮助):w                                                # 写入磁盘
  16. The partition table has been altered!
  17. Calling ioctl() to re-read partition table.
  18. WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.                # 有报错
  19. The kernel still uses the old table. The new table will be used at
  20. the next reboot or after you run partprobe(8) or kpartx(8)
  21. 正在同步磁盘。
  22. [root@vm10 home]#
  23. [root@vm10 home]# partprobe /dev/sdb
复制代码
如遇到以上报错信息可通过partprobe /dev/sdb解决
   partprobe 下令用于重读分区表,将磁盘分区表变化信息通知内核,请求操作系统重新加载分区表。
  查看新的分区信息
fdisk -l

再格式化成对应的文件系统,挂载使用就行
df -h

逻辑分区的参考

按照我们之前说的,MBR 方式的分区最多支持4个分区,如何进行更多分区操作呢?
先看下 “p+p+p+p” 情况下继续分区的情况
提示如果要创建4个以上的分区,必须使用一个扩展分区类型

我们删除一个主分区,创建一个扩展分区,通过扩展分区创建出逻辑分区
  1. 命令(输入 m 获取帮助):n
  2. Partition type:
  3.    p   primary (3 primary, 0 extended, 1 free)
  4.    e   extended
  5. Select (default e): e                                                                                ## 键入 e 创建出一个扩展分区
  6. 已选择分区 4
  7. 起始 扇区 (62916608-104857599,默认为 62916608):
  8. 将使用默认值 62916608
  9. Last 扇区, +扇区 or +size{K,M,G} (62916608-104857599,默认为 104857599):+10G        # 设置扩展分区大小
  10. 分区 4 已设置为 Extended 类型,大小设为 10 GiB
  11. 命令(输入 m 获取帮助):n                                        ## 再次创建新分区,这个时候就是逻辑分区了
  12. All primary partitions are in use
  13. 添加逻辑分区 5
  14. 起始 扇区 (62918656-83888127,默认为 62918656):
  15. 将使用默认值 62918656
  16. Last 扇区, +扇区 or +size{K,M,G} (62918656-83888127,默认为 83888127):+5G        ## ;逻辑分区大小不超过扩展分区
  17. 分区 5 已设置为 Linux 类型,大小设为 5 GiB
  18. 命令(输入 m 获取帮助):w
  19. The partition table has been altered!
  20. Calling ioctl() to re-read partition table.
  21. WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
  22. The kernel still uses the old table. The new table will be used at
  23. the next reboot or after you run partprobe(8) or kpartx(8)
  24. 正在同步磁盘。
  25. [root@vm10 home]# partprobe /dev/sdb
复制代码

实验以下扩展分区巨细是否限制了逻辑分区巨细
确实是和扩展分区巨细相关联的

基于下令行非交互式创建分区方法

   方法参考:
  Linux管理文件系统(2):分区和创建文件系统 | 骏马金龙 (junmajinlong.com)
  基于表述输出和管道传输
现在对一块完备的磁盘进行演示
echo -e "n\np\n1\n\n+10G\nw"|fdisk /dev/sdb


  • \n:换行,所以基于下令行的分区方式很简单的
  • 新建分区–分区类型为主分区–分区号是1–起始扇区回车选择默认–分区巨细是10G–保存更改信息
  1. [root@vm10 home]# echo -e "n\np\n1\n\n+10G\nw"|fdisk /dev/sdb
  2. 欢迎使用 fdisk (util-linux 2.23.2)。
  3. 更改将停留在内存中,直到您决定将更改写入磁盘。
  4. 使用写入命令前请三思。
  5. 命令(输入 m 获取帮助):Partition type:
  6.    p   primary (0 primary, 0 extended, 4 free)
  7.    e   extended
  8. Select (default p): 分区号 (1-4,默认 1):起始 扇区 (2048-104857599,默认为 2048):将使用默认值 2048
  9. Last 扇区, +扇区 or +size{K,M,G} (2048-104857599,默认为 104857599):分区 1 已设置为 Linux 类型,大小设为 10 GiB
  10. 命令(输入 m 获取帮助):The partition table has been altered!
  11. Calling ioctl() to re-read partition table.
  12. 正在同步磁盘。
  13. [root@vm10 home]#
复制代码

parted 分区工具

为了能支持大于2T的磁盘空间,需要使用 GPT 格式进行分区,需要用到 parted 工具了


  • parted 工具,每一步操作都是直接写入磁盘的,不同于 fdisk 和 gdisk 需要从内存的结果保存到磁盘中
新磁盘下的分区

进入 parted 分区界面
parted /dev/sdb

键入”help“查看帮助

进行分区操作
  1. (parted) mklabel                        ## 设置分区类型为 gpt
  2. 新的磁盘标签类型? gpt                       
  3. 警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want
  4. to continue?
  5. 是/Yes/否/No? yes
  6. (parted) mkpart                                ## 开始分区
  7. 分区名称?  []? p                        ## 分区类型
  8. 文件系统类型?  [ext2]? xfs        ## 文件系统类型
  9. 起始点? 1                                ## 磁盘的1M开始分区,默认单位是1M
  10. 结束点? 10G                        ## 到10GB的位置截至
  11. (parted)
  12. (parted) q                                ## 退出
  13. 信息: You may need to update /etc/fstab.
复制代码
查看分区后的信息

格式化后挂载文件系统使用
  1. mkfs.xfs -f /dev/sdb1
  2. mount /dev/sdb1 /home/ceshi
复制代码

原有磁盘下继续分区

进入交互式中
parted /dev/sdb

键入 print 打印分区信息

分区过程
  1. (parted) print
  2. Model: VMware, VMware Virtual S (scsi)
  3. Disk /dev/sdb: 53.7GB
  4. Sector size (logical/physical): 512B/512B
  5. Partition Table: gpt
  6. Disk Flags:
  7. Number  Start   End     Size    File system  Name  标志
  8. 1      1049kB  10.0GB  9999MB  xfs          p
  9. (parted) mkpart                                                                ## 开始分区
  10. 分区名称?  []? p                                                        ## 分区类型
  11. 文件系统类型?  [ext2]? xfs                                        ## 文件系统
  12. 起始点? 10000                                                                ## 起始点:上一个分区下一个点
  13. 结束点? 20G                                                        ## 空间大小
  14. (parted) print                                                                ## 打印分区表
  15. Model: VMware, VMware Virtual S (scsi)
  16. Disk /dev/sdb: 53.7GB
  17. Sector size (logical/physical): 512B/512B
  18. Partition Table: gpt
  19. Disk Flags:
  20. Number  Start   End     Size    File system  Name  标志
  21. 1      1049kB  10.0GB  9999MB  xfs          p
  22. 2      10.0GB  20.0GB  9999MB               p
  23. (parted)
复制代码
格式化后挂载使用
  1. mkfs.xfs -f /dev/sdb2
  2. mount /dev/sdb2 /home/ceshi1
复制代码

多个分区的实验

来看看 gpt 下能够分区的数量
重复上面的操作进行分区操作,可以看到我分出来了很多很多主分区,基本不受限制了

基于下令行非交互式创建分区

一次只能一个动作
  1. parted /dev/sdb mklabel gpt
  2. parted /dev/sdb mkpart p xfs 1 10G
  3. parted /dev/sdb mkpart p xfs 10G 20G
复制代码

LVM 磁盘分区管理

LVM 相关概念与实现机制

Logical Volume Manager:LVM ,弹性分区,随时随地对分区进行扩缩容


  • 大多数发行版都会内置这个东西
  • 基于内核的一种逻辑卷管理器
  • 实用于管理大存储装备
相关概念

  • PV:Physical Volume 物理卷

    • 磁盘分区后还未格式化成文件系统的时间可以通过 pvcreate 下令创建为 pv
    • pv 要求分区的 system ID为 8e,即 LVM 格式的系统标识符


  • VG:Volume Group 卷组

    • 多个 PV 组合起来,通过 vgcreate 下令创建成卷组
    • 创建 VG 的时间,会将所有空间按照指定巨细的 PE 分别为很多个 PE
    • LVM 模式下的存储都是以 PE 为单元

  • PE:Physical Extend

    • 数据都是存储的地方

  • LV:Logical Volume

    • VG 中有很多 PE 单元,可以指定多少个 PE 或者巨细来再次分别,分别后统称为 LV,LV 就相称于分别了分区了,对 LV 在进行文件系统格式化就可以拿来使用了

  • LE:logical extent

    • LV 中的逻辑存储单元,和 PE 巨细是一样的,从 VG 中分别 LV,就是分配 PE 单元,只不外分别 LV 后,PE 就被称之为 LE 了

实现机制


  • 一个简单的图解



  • LV 中的 PE 可能来自多个 PV,在向 LV 写入数据时间,分几种机制

    • 线性模式:先写完来自于同一个PV 的 PE,再写来自下一个 PV 的 PE
    • 条带模式:一份数据拆分成多份,分别写入该 LV 对应的每个 PV 中,读写性能好
    • 默认使用的线性模式,因为扩缩容方便,LVM 最有效的也就是动态扩缩容

LVM 相关下令解析

PV
下令说明pvcreate创建 PVpvscan列出所有的 PVpvdisplay列出 PV 属性pvremove移除 PVpvmove移除 PV 中的数据
  1. [root@vm10 home]# pvdisplay
  2.   --- Physical volume ---
  3.   PV Name               /dev/sda2
  4.   VG Name               centos
  5.   PV Size               <19.00 GiB / not usable 3.00 MiB
  6.   Allocatable           yes (but full)
  7.   PE Size               4.00 MiB
  8.   Total PE              4863
  9.   Free PE               0
  10.   Allocated PE          4863
  11.   PV UUID               LeNFHF-2miV-2oYy-KDxG-Y0JQ-V2eS-ldi1ny
  12.   --- Physical volume ---
  13.   PV Name               /dev/sda3
  14.   VG Name               centos
  15.   PV Size               80.00 GiB / not usable 4.00 MiB
  16.   Allocatable           yes
  17.   PE Size               4.00 MiB
  18.   Total PE              20479
  19.   Free PE               1279
  20.   Allocated PE          19200
  21.   PV UUID               7QUzi3-FbDr-m3ud-YYOn-7IFS-gCmk-3IVEDW
  22. [root@vm10 home]# pvscan
  23.   PV /dev/sda2   VG centos          lvm2 [<19.00 GiB / 0    free]
  24.   PV /dev/sda3   VG centos          lvm2 [<80.00 GiB / <5.00 GiB free]
  25.   Total: 2 [98.99 GiB] / in use: 2 [98.99 GiB] / in no VG: 0 [0   ]##PV 的总容量/已经使用的/未使用的
  26. [root@vm10 home]# pvdisplay -m
  27.   --- Physical volume ---
  28.   PV Name               /dev/sda2
  29.   VG Name               centos
  30.   PV Size               <19.00 GiB / not usable 3.00 MiB
  31.   Allocatable           yes (but full)
  32.   PE Size               4.00 MiB
  33.   Total PE              4863
  34.   Free PE               0
  35.   Allocated PE          4863
  36.   PV UUID               LeNFHF-2miV-2oYy-KDxG-Y0JQ-V2eS-ldi1ny
  37.   --- Physical Segments ---
  38.   Physical extent 0 to 511:                                        ## 0-511个PE在使用
  39.     Logical volume      /dev/centos/swap
  40.     Logical extents     0 to 511                  ## 该PE在LV中的第0个LE位置上,这个地方是用满了的
  41.   Physical extent 512 to 4862:
  42.     Logical volume      /dev/centos/root
  43.     Logical extents     0 to 4350
  44.   --- Physical volume ---
  45.   PV Name               /dev/sda3
  46.   VG Name               centos
  47.   PV Size               80.00 GiB / not usable 4.00 MiB
  48.   Allocatable           yes
  49.   PE Size               4.00 MiB
  50.   Total PE              20479
  51.   Free PE               1279
  52.   Allocated PE          19200
  53.   PV UUID               7QUzi3-FbDr-m3ud-YYOn-7IFS-gCmk-3IVEDW
  54.   --- Physical Segments ---
  55.   Physical extent 0 to 19199:                                        ## 0-19199个PE在使用
  56.     Logical volume      /dev/centos/root
  57.     Logical extents     4351 to 23550                        ## PE在第4351个LE位置上
  58.   Physical extent 19200 to 20478:                        ## 19200-20478序号的PE没被使用
  59.     FREE
  60. [root@vm10 home]#
复制代码
VG
下令说明vgcreate创建 VGvgscan列出所有的 VGvgdisplay列出 VG 属性vgremove移除 VG,删除 VGvgreduce从 VG 中移除 PVvgextend将 PV 添加到 VG 中vgchange修改 VG 属性

  • vgscan 征采有几个 vg 并显示 vg 的基本属性
  • vgcreate 是创建 vg
  • vgdisplay 是列出 vg 的详细信息
  • vgremove 是删除整个v g
  • vgextend 用于扩展 vg 即将 pv 添加到 vg 中
  • vgreduce 是将 pv 移除出 vg
  • vgchange 用于改变 vg 的属性,如修改 vg 的状态为激活状态或未激活状态
LV
下令说明lvcreate创建 LVlvscan扫描并列出所有的 LVlvdisplay列出 LV 属性信息lvremove移除 LV,即删除 LVlvreduce(lvresize)缩小 LV 容量lvextend(lvresize)增大 LV 容量lvresize改变 LV 容量 LVM 分区过程参考

根据上述的下令操作方法,来进行一个 LVM 分区过程
查看需要进行分区的磁盘信息
fdisk -l

先使用 fdisk 进行标准化分区,不需要格式化

此中2个分区创建一个 PV
  1. [root@vm10 home]# pvcreate /dev/sdb1 /dev/sdb2
  2. WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
  3.   Wiping xfs signature on /dev/sdb1.
  4. WARNING: xfs signature detected on /dev/sdb2 at offset 0. Wipe it? [y/n]: y
  5.   Wiping xfs signature on /dev/sdb2.
  6.   Physical volume "/dev/sdb1" successfully created.
  7.   Physical volume "/dev/sdb2" successfully created.
  8. [root@vm10 home]#
复制代码

创建一个测试 VG
  1. [root@vm10 home]# vgcreate test_vg /dev/sdb{1,2}
  2.   Volume group "test_vg" successfully created
  3. [root@vm10 home]# vgdisplay test_vg
  4.   --- Volume group ---
  5.   VG Name               test_vg
  6.   System ID
  7.   Format                lvm2
  8.   Metadata Areas        2
  9.   Metadata Sequence No  1
  10.   VG Access             read/write
  11.   VG Status             resizable
  12.   MAX LV                0
  13.   Cur LV                0
  14.   Open LV               0
  15.   Max PV                0
  16.   Cur PV                2
  17.   Act PV                2
  18.   VG Size               19.99 GiB
  19.   PE Size               4.00 MiB
  20.   Total PE              5118
  21.   Alloc PE / Size       0 / 0
  22.   Free  PE / Size       5118 / 19.99 GiB
  23.   VG UUID               3YMuNV-Jxmr-rgdN-gl5z-YRRw-IGq1-gSiZqW
  24. [root@vm10 home]#
复制代码
创建 lv
  1. [root@vm10 home]# lvcreate -n test_lv1 -L 1G test_vg        ## -n指定lv名称 -L 指定大小 -l 指定PE数量
  2.   Logical volume "test_lv1" created.
  3. [root@vm10 home]# lvcreate -n test_lv2 -l 2000 test_vg
  4.   Logical volume "test_lv2" created.
  5. [root@vm10 home]# lvdisplay
  6.   --- Logical volume ---
  7.   LV Path                /dev/test_vg/test_lv1
  8.   LV Name                test_lv1
  9.   VG Name                test_vg
  10.   LV UUID                1A2yQf-9Mr7-ri1Y-gzK4-oyj6-Nr4C-WEjQ43
  11.   LV Write Access        read/write
  12.   LV Creation host, time vm10, 2022-09-08 15:08:47 +0800
  13.   LV Status              available
  14.   # open                 0
  15.   LV Size                1.00 GiB
  16.   Current LE             256
  17.   Segments               1
  18.   Allocation             inherit
  19.   Read ahead sectors     auto
  20.   - currently set to     8192
  21.   Block device           253:2
  22.   --- Logical volume ---
  23.   LV Path                /dev/test_vg/test_lv2
  24.   LV Name                test_lv2
  25.   VG Name                test_vg
  26.   LV UUID                OM2Jvm-uYDa-9LMH-8uhP-QVwo-vqF5-LUMK3E
  27.   LV Write Access        read/write
  28.   LV Creation host, time vm10, 2022-09-08 15:09:18 +0800
  29.   LV Status              available
  30.   # open                 0
  31.   LV Size                7.81 GiB
  32.   Current LE             2000
  33.   Segments               1
  34.   Allocation             inherit
  35.   Read ahead sectors     auto
  36.   - currently set to     8192
  37.   Block device           253:3
  38.   --- Logical volume ---
  39.   LV Path                /dev/centos/swap
  40.   LV Name                swap
  41.   VG Name                centos
  42.   LV UUID                SGdwb8-TfNw-arTQ-ic4M-OwAB-1G68-PMYdBS
  43.   LV Write Access        read/write
  44.   LV Creation host, time localhost.localdomain, 2022-07-20 13:57:18 +0800
  45.   LV Status              available
  46.   # open                 2
  47.   LV Size                2.00 GiB
  48.   Current LE             512
  49.   Segments               1
  50.   Allocation             inherit
  51.   Read ahead sectors     auto
  52.   - currently set to     8192
  53.   Block device           253:1
  54.   --- Logical volume ---
  55.   LV Path                /dev/centos/root
  56.   LV Name                root
  57.   VG Name                centos
  58.   LV UUID                3GSliK-ZJFv-hKnR-756n-z1wR-bUfc-2c0tiU
  59.   LV Write Access        read/write
  60.   LV Creation host, time localhost.localdomain, 2022-07-20 13:57:19 +0800
  61.   LV Status              available
  62.   # open                 1
  63.   LV Size                <92.00 GiB
  64.   Current LE             23551
  65.   Segments               2
  66.   Allocation             inherit
  67.   Read ahead sectors     auto
  68.   - currently set to     8192
  69.   Block device           253:0
  70. [root@vm10 home]#
复制代码
格式化成文件系统并挂载使用


LVM 的扩容操作

扩容的实质


  • 将 vg 中闲置的 PE 添加到 lv 中
  • 没有闲置的 pe,可以添加 pv,将 pv 空间加入到 vg 中
实验操作1参考:vg 中还有未被使用的 pe

  • 查看 vg 中的使用情况:还有2862 个 pe 没有使用,大约11G巨细

  • 直接将闲置的 pe 添加到 lv 中:-l 使用PE数量进行添加;-L 使用巨细进行添加

  • 调解文件系统巨细:is OK

实验操作2参考:vg 中没有可分配的 pe

  • 查看 vg 中的使用情况:用完了

  • 用完了我们就需要把额外的 pv 添加到 vg 当中去

    • 再利用分区出来的 sdb3 和sdb4 创建一个 pv

       

    • 创建 pv

       

    • 将创建好的 pv 添加到 vg 中


  • 再次查看 vg 的使用情况:有了闲置的 pe

  • 对 lv 进行添加后,重新调解文件系统巨细:is ok

LVM 的缩容操作

理论来说,我们不考虑磁盘的缩容操作


  • 只能用 ext4 的文件格式来演示
  • xfs 的文件系统只能扩容,不能缩容,如果要缩容,就只能备份数据后,删掉重修 lv,再把数据规复已往
我们先把之前的操作都取消
着实也不必如此,就当练习了

我们再来创建基于 ext4 类型的文件系统


查看 LVM 基本相关信息:我们要将 /dev/sdb4 的10G这个磁盘给缩容掉

先卸载装备

使用 resize2fs 紧缩文件系统的容量为目的巨细

缩容 lv

再次查看 PV 上的闲置 PE情况
闲置的 pe 分布在sdb3 和sdb4上,所以我们就可以直接直接移除sdb4的pv

从 vg 中移除 pv

再删除 pv 就可以了:又是一个正常的分区

验证一下缩容后的是否能够正常使用:is OK


LVM 中的 snapshot 快照技能

   参考链接:使用LVM | 骏马金龙 (junmajinlong.com)
  

  • 类似于软件的还原时间点功能
  • 针对某一个lv逻辑卷操作
  • 快照卷的巨细应该尽量等同于 LV 逻辑卷的容量
  • 功能仅一次有效,一旦被还原后则会主动立即删除
先看下LVM 中的 VG 信息
可以看到已经使用了2000个PE,大约7.8个G,还剩大约12个G

在挂载目次下准备文件

天生快照卷


  • -L 参数指定切割巨细

查看快照卷

模拟数据故障

挂载快照
题目处置惩罚:无法挂载这个磁盘(2个逻辑卷使用的UUID一样了,xfs文件系统不允许,加参数再挂载一下)



还原数据
可以从挂载点里面拷贝数据已往了,这就是最简单的使用方法了

合并快照的方式

  • 准备好测试数据


  • 做一下快照


  • 模拟故障


  • 卸载逻辑卷挂载点和快照卷


  • 合并快照(要确定卸载了挂载点):合并以后就会删除快照


  • 重新挂载逻辑卷:被破坏的数据规复了


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表