如何使用fdisk与parted对不同容量硬盘分区
一、简介
通常我们用的比较多的一般都是fdisk工具来进行分区,但是现在由于磁盘越来越廉价,而且磁盘空间越来越大;而fdisk工具他对分区是有大小限制的,它只能划分小于2T的磁盘。如果使用fdisk对大于2T的磁盘分区,虽然可以分区,但仅识别2T的空间,所以磁盘容量超过2T的话,就使用Parted工具来实现对GPT磁盘进行分区操作。
GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition table的4*16个字节,只留第一个16个字节,类似于扩展分区,真正的partitiontable在512字节之后,GPT磁盘没有四个主分区的限制。
下面是实际演练,分别使用fdisk与parted对不同容量硬盘进行分区。
二、fdisk分区(2T容量以下硬盘使用)
1、查看当前磁盘情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 133G 31G 96G 25% /
tmpfs 16G 9.9G 5.9G 63% /dev/shm
/dev/sda1 504M 43M 436M 9% /boot
/dev/sda5 2.7T 2.4T 204G 93% /data
/dev/sdb1 2.7T 2.4T 204G 93% /data
[root@bidw tmp] # fdisk -l
Disk /dev/sda : 299.4 GB, 299439751168 bytes
255 heads, 63 sectors /track , 36404 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical /physical ): 512 bytes / 512 bytes
I /O size (minimum /optimal ): 512 bytes / 512 bytes
Disk identifier: 0x000ccf41
Device Boot Start End Blocks Id System
/dev/sda1 * 1 66 524288 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 66 1371 10485760 82 Linux swap / Solaris
/dev/sda3 1371 18888 140704768 83 Linux
/dev/sda4 18888 36405 140705792 5 Extended
/dev/sda5 18888 36405 140704768 83 Linux
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb' ! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sdb : 2999.0 GB, 2998960914432 bytes
255 heads, 63 sectors /track , 364602 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical /physical ): 512 bytes / 512 bytes
I /O size (minimum /optimal ): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 1 267350 2147483647+ ee GPT
Disk /dev/sdc : 1999.8 GB, 1999844147200 bytes
81 heads, 63 sectors /track , 765421 cylinders
Units = cylinders of 5103 * 512 = 2612736 bytes
Sector size (logical /physical ): 512 bytes / 512 bytes
I /O size (minimum /optimal ): 512 bytes / 512 bytes
Disk identifier: 0x42d69282
|
可以看到/dev/sdc是需要分区的
2、使用fdisk进行分区
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
[root@bidw tmp] # fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xc1b09294.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode ( command 'c' ) and change display units to
sectors ( command 'u' ).
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
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)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-243133, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-243133, default 243133):
Using default value 243133
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re- read partition table.
WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
|
3、格式化为ext4系统
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
[root@bidw tmp] # mkfs.ext4 /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type : Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
122060800 inodes, 488242944 blocks
24412147 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
14900 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
|
然后查看磁盘情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
[root@bidw tmp] # fdisk -l
Disk /dev/sda : 299.4 GB, 299439751168 bytes
255 heads, 63 sectors /track , 36404 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical /physical ): 512 bytes / 512 bytes
I /O size (minimum /optimal ): 512 bytes / 512 bytes
Disk identifier: 0x000ccf41
Device Boot Start End Blocks Id System
/dev/sda1 * 1 66 524288 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 66 1371 10485760 82 Linux swap / Solaris
/dev/sda3 1371 18888 140704768 83 Linux
/dev/sda4 18888 36405 140705792 5 Extended
/dev/sda5 18888 36405 140704768 83 Linux
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb' ! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sdb : 2999.0 GB, 2998960914432 bytes
255 heads, 63 sectors /track , 364602 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical /physical ): 512 bytes / 512 bytes
I /O size (minimum /optimal ): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 1 267350 2147483647+ ee GPT
Disk /dev/sdc : 1999.8 GB, 1999844147200 bytes
81 heads, 63 sectors /track , 765421 cylinders
Units = cylinders of 5103 * 512 = 2612736 bytes
Sector size (logical /physical ): 512 bytes / 512 bytes
I /O size (minimum /optimal ): 512 bytes / 512 bytes
Disk identifier: 0x42d69282
Device Boot Start End Blocks Id System
/dev/sdc1 1 765634 1953513560 83 Linux
|
可以看到/dev/sdc1已经格式化完成
4、挂载
1
2
3
4
5
6
7
8
9
|
[root@bidw tmp] # mount /dev/sdc1 /u01
[root@bidw tmp] # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 133G 32G 95G 25% /
tmpfs 16G 9.9G 5.9G 63% /dev/shm
/dev/sda1 504M 43M 436M 9% /boot
/dev/sda5 2.7T 2.4T 204G 93% /data
/dev/sdb1 2.7T 2.4T 204G 93% /data
/dev/sdc1 1.8T 196M 1.7T 1% /u01
|
可以看到/dev/sdc1已经挂载到/u01目录
5、把挂载信息放入fstab里
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
[root@bidw tmp] # cat /etc/fstab
"/etc/fstab" 19L, 979C #
# /etc/fstab
# Created by anaconda on Sat Dec 29 12:06:41 2012
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=bcc682b0-5a55-4df8-8f7f-2ebfca7e0bf9 / ext4 defaults 1 1
UUID=f75b95fb-78cf-4070-b629-a5b1983edc83 /boot ext4 defaults 1 2
UUID=5743454b-f226-4c7c-8ad4-bf8db690572b /data xfs defaults 1 2
UUID=e9ea4e7a-d959-4c63-a562-dc059d58ac08 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults,size=16G 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sdb1 /data ext3 defaults 0 0
|
然后对最新的配置生效一下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[root@bidw tmp] # mount -a
[root@bidw tmp] # mount
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,size=16G)
/dev/sda1 on /boot type ext4 (rw)
/dev/sda5 on /data type xfs (rw)
/dev/sdb1 on /data type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /sys/kernel/config type configfs (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdc1 on /u01 type ext4 (rw)
|
6、测试一下新分区对象
1
2
3
4
5
6
7
8
9
10
11
|
[root@bidw tmp] # cd /u01
[root@bidw u01] # ll
total 16
drwx------ 2 root root 16384 Jul 21 09:49 lost+found
[root@bidw u01] # touch test
[root@bidw u01] # ll
total 16
drwx------ 2 root root 16384 Jul 21 09:49 lost+found
-rw-r--r-- 1 root root 0 Jul 21 10:03 test
[root@bidw u01] # rm test
rm : remove regular empty file ` test '? y
|
三、parted分区(2T容量以上硬盘使用)
1、查看分区情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
root@ip-10-10-27-116: /home
02:36:30 # fdisk -l
Disk /dev/sda : 999.7 GB, 999653638144 bytes
255 heads, 63 sectors /track , 121534 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical /physical ): 512 bytes / 512 bytes
I /O size (minimum /optimal ): 512 bytes / 512 bytes
Disk identifier: 0x00045789
Device Boot Start End Blocks Id System
/dev/sda1 * 1 131 1048576 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 131 4309 33554432 82 Linux swap / Solaris
/dev/sda3 4309 121535 941620224 83 Linux
Disk /dev/sdb : 2999.0 GB, 2998960914432 bytes
255 heads, 63 sectors /track , 364602 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical /physical ): 512 bytes / 512 bytes
I /O size (minimum /optimal ): 512 bytes / 512 bytes
Disk identifier: 0x00000000
|
可以看到/dev/sdb是需要分区的,磁盘容量为3t,fdisk没办法分区,只能使用parted进行gpt分区了
下面是当前已经在用的磁盘情况
1
2
3
4
5
6
|
root@ip-10-10-27-116: /home
02:38:04 # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 884G 2.0G 838G 1% /
tmpfs 32G 0 32G 0% /dev/shm
/dev/sda1 1008M 56M 902M 6% /boot
|
2、使用parted进行分区
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
root@ip-10-10-27-116: /home
02:38:06 # parted /dev/sdb
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Error: /dev/sdb : unrecognised disk label
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) print
Model: DELL PERC H710P (scsi)
Disk /dev/sdb : 2999GB
Sector size (logical /physical ): 512B /512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 2999GB 2999GB primary
(parted) quit
Information: You may need to update /etc/fstab .
|
1
2
3
4
5
6
7
8
9
10
11
|
介绍一下各个命令的意思
p
是打印磁盘信息,查看分区的情况,找到起始和结束位置。
mklabel gpt
是进行gpt类型分区
mkpart primary 0% 100%
是primary指分区类型为主分区,0是分区开始位置,100%是分区结束位置。相同的命令为:mkpart primary 0-1 或者是:mkpart primary 0 XXXXXX结束的空间
print
打印当前分区,查看分区设置是否正确
quit
退出
|
在看看当前已用硬盘情况,可用看到/dev/sdb还是没有挂载
1
2
3
4
5
6
7
|
root@ip-10-10-27-116: /home
02:44:05 # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 884G 2.0G 838G 1% /
tmpfs 32G 0 32G 0% /dev/shm
/dev/sda1 1008M 56M 902M 6% /boot
root@ip-10-10-27-116: /home
|
看看磁盘分区情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
02:44:07 # fdisk -l
Disk /dev/sda : 999.7 GB, 999653638144 bytes
255 heads, 63 sectors /track , 121534 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical /physical ): 512 bytes / 512 bytes
I /O size (minimum /optimal ): 512 bytes / 512 bytes
Disk identifier: 0x00045789
Device Boot Start End Blocks Id System
/dev/sda1 * 1 131 1048576 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 131 4309 33554432 82 Linux swap / Solaris
/dev/sda3 4309 121535 941620224 83 Linux
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb' ! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sdb : 2999.0 GB, 2998960914432 bytes
255 heads, 63 sectors /track , 364602 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical /physical ): 512 bytes / 512 bytes
I /O size (minimum /optimal ): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 1 267350 2147483647+ ee GPT
|
可用看到/dev/sdb1已经进行了gpt类型分区
3、格式化为ext4系统
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
02:44:12 # mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type : Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
183042048 inodes, 732167680 blocks
36608384 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
22344 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
root@ip-10-10-27-116: /home
02:47:23 # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 884G 2.0G 838G 1% /
tmpfs 32G 0 32G 0% /dev/shm
/dev/sda1 1008M 56M 902M 6% /boot
|
4、挂载
创建挂载目录data
1
2
3
4
5
6
7
8
9
10
11
12
|
root@ip-10-10-27-116: /home
02:49:38 # mkdir /data
然后挂载 /dev/sdb1 到 /data 目录
root@ip-10-10-27-116: /home
02:50:36 # mount /dev/sdb1 /data
root@ip-10-10-27-116: /home
02:50:41 # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 884G 2.0G 838G 1% /
tmpfs 32G 0 32G 0% /dev/shm
/dev/sda1 1008M 56M 902M 6% /boot
/dev/sdb1 2.7T 201M 2.6T 1% /data
|
5、加入fstab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
root@ip-10-10-27-116: /home
02:51:39 # cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Aug 27 13:39:16 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=1bc74b58-1fbe-4f65-9790-d02abc23d461 / ext4 defaults 1 1
UUID=ebbbaa89-e509-4fef-8763-be6eed9408c7 /boot ext4 defaults 1 2
UUID=98417724-a1c5-4f9a-9750-85beda11e4e1 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sdb1 /data ext4 defaults 0 0
|
生效一下
1
2
3
4
5
6
7
8
|
02:51:43 # mount -a
root@ip-10-10-27-116: /home
02:51:45 # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 884G 2.0G 838G 1% /
tmpfs 32G 0 32G 0% /dev/shm
/dev/sda1 1008M 56M 902M 6% /boot
/dev/sdb1 2.7T 201M 2.6T 1% /data
|
6、测试
1
2
3
4
5
6
7
8
9
10
|
11:04:13 # cd /data
root@ip-10-10-27-116: /data
11:06:44 # echo "this is test">test
root@ip-10-10-27-116: /data
11:06:52 # cat test
this is test
root@ip-10-10-27-116: /data
11:06:54 # rm test
rm : remove regular file ` test '? y
root@ip-10-10-27-116: /data
|
其实本文主要介绍的就是如何对不同容量的硬盘使用不同方法进行分区,并对每一步骤都有解释,希望对各位有帮助。
本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1547325,如需转载请自行联系原作者
如何使用fdisk与parted对不同容量硬盘分区相关推荐
- centos通过parted对2T以上硬盘分区并对根目录进行扩容
GPT的分区表很好了解决了传统MBR无法逾越2TB的限制.但是在Linux系统中,传统的fdisk命令无法支持gpt分区方式,这时候我们就要用到parted命令 需求: 将一个4t的硬盘(sdb)分为 ...
- Linux fdisk命令详解:给硬盘分区
1.命令及其意义 命令:fdisk 意义:在安装操作系统的过程中已经对系统硬盘进行了分区,但如果新添加了一块硬盘,为了避免麻烦,重新安装操作系统,就可以使用fdisk命令来完成分区. 注意:千万不要在 ...
- linux centos fedora 扩展硬盘分区操作命令 fdisk df lvm pvcreate vgcreate lvcreate
linux centos fedora 扩展 硬盘分区 lvm fdisk df pvcreate vgcreate lvcreate 操作 命令 一.硬盘分区 在Linux系统中一个硬盘分区上限为1 ...
- 【linux磁盘分区--格式化】fdisk,parted,mkfs.ext3
磁盘分区完成后,一般就需要对分区进行格式化 磁盘分区命令主要有两个: fdisk :最大支持不超过2T分区: parted :支持GPT,适用于大容量分区: 分区指令的选择: 在RHEL系统上,用fd ...
- Linux笔记 No.17---(磁盘分区fdisk,gdisk,parted、格式化mkfs,mke2fs、挂载mount、卸载umount、df、du、lsof命令)
文章目录 一.磁盘 (一)机械硬盘(HDD) 1.基本组成 2.逻辑结构 (二)固态硬盘(SSD) 二.硬盘分区 (一)基本概念 1. MBR(MS-DOS 主引导记录区)方案 2.GPT(GUID ...
- fdisk和parted对磁盘的分区总结
文章目录 1 磁盘要做什么操作后才能存放数据 2 查看Linux系统下识别到了哪些磁盘 3 MBR类型的分区表介绍和fdisk的实践 3.1 一块磁盘最多可以分几个主分区 3.2 一块磁盘最多可分几个 ...
- 超过2t硬盘分区_磁盘挂载问题:Fdisk最大只能创建2T分区的盘,超过2T使用parted...
需求说明: 云服务器上买了一块8T的磁盘,准备挂载到服务器上的/data目录下. parted命令说明 # parted /dev/vdb 对/dev/sdb进行分区或管理操作 parted创建分区里 ...
- fdisk和parted命令区别
文章目录 系列文章目录 前言 一.pandas是什么? 二.使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 二者都可以对linux的硬盘进行分区,但是二者细节 ...
- 云主机挂载硬盘 - 开机自动挂载 fdisk and parted
fdisk 挂载小于2T的存储 2020 备注: 64位系统没有大小限制,因此除非有业务上划分的需要,可以不用parted. 直接对整块盘格式化,然后挂载. 1.查看已挂载的信息: less /pr ...
最新文章
- 虚拟机VMware操作系统安装
- Python基本语法_基本数据类型_字典类型详解
- MyBatis自动生成代码之generatorConfig配置文件及其详细解读
- java 基础学习——基本语法(三)
- 趣学python3(19)-函数-Lambda
- 如何跑通第一个 DataStream 作业?
- EmEditor学习
- android10唯一识别,Android 10 如何获取唯一值?
- 网页传世服务器端,传世服务端文件分析
- python打印一个对象的所有属性_python打印出所有的对象/模块的属性代码详解
- oppo 手机侧滑快捷菜单_[图]OPPO又出脑洞设计:弹出/侧滑第二块手机屏幕
- mac下缺乏make wget怎么办?
- 20分钟理解React Native For Android原理
- [技巧心得] 嵌套选择器优先级
- Android实现组件之间同步的回调通信
- 7-8 阅览室 (20 point(s))
- 小京东商城用什么版本的php,最新2018小京东多用户通用商城网源码商城带手机版ecshop源码程序...
- [Excel] 数据透视表
- (亲测)躺着破解IDM下载权限,治疗不用破解补丁的强迫症们
- 电商系统如何搭建会员体系/会员制玩法?