linux-运维进阶-11 存储结构与磁盘划分

linux-运维进阶-11 存储结构与磁盘划分

Linux文件结构

  Linux 文件系统是一个目录树的结构,文件系统结构从一个根目录开始,根目录下可以有任意多个文件和子目录,子目录中又可以有任意多个文件和子目录。Linux 的这种文件系统结构使得一个目录和它包含的文件/子目录之间形成一种层次关系。

1VXmi8.png

物理设备的命名规则

硬件设备 文件名称
IDE设备 /dev/hd[a-d]
SCSI/SATA/U盘 /dev/sd[a-p]
软驱 /dev/fd[0-1]
打印机 /dev/lp[0-15]
光驱 /dev/cdrom
鼠标 /dev/mouse
磁带机 /dev/st0或/dev/ht0

主分区或扩展分区的编号从1开始,到4结束; •逻辑分区从编号5开始。

文件系统

Ext3

​ 一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分之百地保证资料不会丢失。它会把整个磁盘的每个写入动作的细节都预先记录下来,以便在发生异常宕机后能回溯追踪到被中断的部分,然后尝试进行修复。

Ext4

​ Ext3的改进版本,作为RHEL 6系统中的默认文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4文件系统能够批量分配block块,从而极大地提高了读写效率。

XFS

​ 一种高性能的日志文件系统,而且是RHEL 7中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为18EB,这几乎满足了所有需求。

挂载

  在windows操作系统中, 挂载通常是指给磁盘分区(包括被虚拟出来的磁盘分区)分配一个盘符。 第三方软件,如磁盘分区管理软件、虚拟磁盘软件等,通常也附带挂载功能。

​ 在linux操作系统中, 挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。 我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上, 然后通过访问这个目录来访问存储设备。

  在linux 操作系统中,挂载是一个非常重要的功能,使用非常频繁。它指将一个设备(通常是存储设备)挂接到一个已存在的目录上。(这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。)需要理解的是,linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。

举个栗子:

1
2
3
4
5
6
[root@localhost ~]# cd /dev
[root@localhost dev]# ll cdrom
lrwxrwxrwx. 1 root root 3 Jan 24 04:37 cdrom -> sr0
[root@localhost dev]# cd cdrom
-bash: cd: cdrom: Not a directory
[root@localhost dev]#

  如上,我们的/dev目录下有个叫做cdrom的文件(就是指设备,设备也是一种文件),但是我们没办法cd到这个文件(设备)里面去看它究竟包含了哪些东西。所以呢,我们可以新建一个目录/mnt/cdrom/,然后把原来的cdrom文件(设备)挂载到/mnt/cdrom/这个目录底下,此时你可以cd到/mnt/cdrom/目录下看看,多出来一堆东西就是原来的cdrom文件(设备)里包含的东西了。

1
2
3
4
5
6
7
8
[root@localhost dev]# mkdir -p /mnt/cdrom
[root@localhost dev]# ls /mnt/cdrom/
[root@localhost dev]# mount /dev/cdrom /mnt/cdrom/
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost dev]# ls /mnt/cdrom/
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@localhost dev]#

挂载条件

1、挂载点必须是一个目录。

2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。对于其他操作系统建立的文件系统的挂载也是这样。

挂载硬件设备

mount

mount命令用于挂载文件系统,格式为

1
mount 文件系统 挂载目录

临时挂载、使用mount命令来查看mount的挂载情况举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@localhost ~]# cd /mnt
[root@localhost mnt]# mkdir cdrom
[root@localhost mnt]# cd /
[root@localhost /]# mount /dev/cdrom /mnt/cdrom/
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost /]# ls /mnt/cdrom
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL

我们可以使用mount命令来查看mount的挂载情况
[root@localhost /]# cd /mnt/cdrom/
[root@localhost cdrom]# mount | grep /mnt/cdrom #注意这里cdrom后面没有/
/dev/sr0 on /mnt/cdrom type iso9660 (ro,relatime)
[root@localhost cdrom]#
注意:这样挂载的文件系统是临时的,会在重启之后消失!

重启后:
[root@localhost ~]# ls /mnt/cdrom/
[root@localhost ~]#
可以看到,重启后咱们挂载的文件的确消失了!

卸载文件系统(取消挂载)的两种方法

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost ~]# ls /mnt/cdrom/
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@localhost ~]# umount /mnt/cdrom/ #也可以 umount /dev/sr0
[root@localhost ~]# ls /mnt/cdrom/
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# ls /mnt/cdrom/
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@localhost ~]# umount /dev/sr0
[root@localhost ~]# ls /mnt/cdrom/
[root@localhost ~]#

umount 的时候要求目标设备没有在使用中,比如当前没有用户cd到这个目录

1
2
3
[root@localhost ~]# cd /mnt/cdrom/
[root@localhost cdrom]# umount /mnt/cdrom/
umount: /mnt/cdrom/: not mounted

开机自动挂载

  注意:现在咱们是继续上面的实验继续做,也就是说,上面咱们已经把挂载好的卸载掉了,/mnt/cdrom/现在仅仅是空目录,现在先让它空着就好!呐:

1
2
[root@localhost ~]# ls /mnt/cdrom/
[root@localhost ~]#

接下来咱们开始做开机自动挂载

在/etc目录下有个fstab文件,它里面列出了linux开机时自动挂载的文件系统的列表。

编辑/etc/fstab文件使分区开机自动挂载

1
2
3
[root@localhost cdrom]# vim /etc/fstab 
在文件最后一行加上如下内容:
/dev/sr0 /mnt/cdrom ext4 defaults 0 0
字段 意义
设备文件 一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier)
挂载目录 指定要挂载到的目录,需在挂载前创建好
格式类型 指定文件系统的格式,比如Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设备)等
权限选项 若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async
是否备份 若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检 若为1则开机后自动进行磁盘自检,为0则不自检

mount -a命令可以重新加载fstab文件测试此文件是否修改成功且配置生效,如果哪里出错它会显示出来

1
2
3
4
5
6
7
8
[root@localhost ~]# mount -a
mount: /dev/sr0 is write-protected, mounting read-only
mount: wrong fs type, bad option, bad superblock on /dev/sr0,
missing codepage or helper program, or other error

In some cases useful info is found in syslog - try
dmesg | tail or so.
[root@localhost ~]#

如上,哎,出错了 QAQ。如果刚刚没有用mount -a检查一下就重启,后面就会遇到一系列问题。

  解决思路:把你出错的提示复制下来,百度一下即可。我了个去,刚刚百度花了快十分钟,才找到问题所在,其实虽然从报错字面wrong fs type可以看出是我的文件格式类型写错了,也就是不能写ext4,关键是我也不知道写啥呀。万能的百度上搜到的,原来就是咱们上面敲过的命令:

1
2
[root@localhost cdrom]# mount | grep /mnt/cdrom		#注意这里cdrom后面没有符号/
/dev/sr0 on /mnt/cdrom type iso9660 (ro,relatime)

我刚刚没有认真看它的type是iso9660,于是后面就写错了,现在改正:

1
2
3
[root@localhost ~]# vim /etc/fstab 
最后一行改为:
/dev/sr0 /mnt/cdrom iso9660 defaults 0 0

然后再检查一下,就没有报错了!同时顺带检查了一下挂载情况,的确挂载成功了!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@localhost ~]# mount -a
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.3G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sr0 906M 906M 0 100% /mnt/cdrom
[root@localhost ~]#
[root@localhost ~]# ls /mnt/cdrom/
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@localhost ~]#

重启

1
[root@localhost ~]# reboot

再次检查

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost ~]# ls /mnt/cdrom/
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.3G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.6M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sr0 906M 906M 0 100% /mnt/cdrom
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0

可以看到,上面的挂载并未消失,所以这个开机自动挂载是成功滴!

磁盘分区

fdisk工具:

  在Linux系统中,管理硬盘设备最常用的方法就当属fdisk命令了。fdisk命令用于管理磁盘分区它提供了集添加、删除、转换分区等功能于一身的“一站式分区服务”,格式为

1
fdisk  [磁盘名称]

题目:添加一块20G硬盘,分出一个5G大小的分区,分区格式分别为xfs,将分区通过UUID永久挂载到/mnt/note目录

首先,查看硬盘及分区信息

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@localhost ~]# fdisk -l 

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bf707

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM

Disk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

[root@localhost ~]#

可以看出,Disk /dev/sda: 21.5 GB说明只有一块磁盘,我们现在给它加上第二块磁盘:

然后再次查看硬盘及分区信息:

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
[root@localhost ~]# fdisk -l 

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bf707

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

[root@localhost ~]#

可以看到多出了Disk /dev/sdb: 21.5 GB的另一块磁盘。咱们接下来就在这个新磁盘上完成题目要求

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# 1.使用fdisk分出一个大小为5G的分区

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

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x802025ce

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

# 2.格式化磁盘为xfs格式
[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1310720, 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


# 3.用partprobe命令将修改写入硬盘
[root@localhost ~]# partprobe

# 4.用blkid命令查看分区的UUID
[root@localhost ~]# blkid | grep /dev/sdb1
/dev/sdb1: UUID="081fb70a-c886-4926-bc0d-0e94a9c31687" TYPE="xfs"

# 5.修改/etc/fstab达到开机挂载的目的
[root@localhost ~]# tail -n 1 /etc/fstab
UUID="081fb70a-c886-4926-bc0d-0e94a9c31687" /mnt/note xfs defaults 0 0
# 6.使用mount -a命令测试fstab挂载是否成功
[root@localhost ~]# mount | grep /dev/sdb1
[root@localhost ~]# mount -a
[root@localhost ~]# mount | grep /dev/sdb1
/dev/sdb1 on /mnt/note type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
[root@localhost ~]#

df -h

用于查看文件系统的使用情况

1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.3G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sr0 906M 906M 0 100% /mnt/cdrom
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb1 5.0G 33M 5.0G 1% /mnt/note
[root@localhost ~]#

du -sh

用于查看文件数据占用量的du命令,其格式为

1
du [选项] [文件]
1
2
3
4
[root@localhost ~]# cd /
[root@localhost /]# du -sh /root
4.9M /root
[root@localhost /]#

交换分区

  题目:添加一个3G大小的交换分区,删除原先系统里的交换分区fstab挂载(如下图有“swap”的那一行),然后再用mount -a命令重新挂载fstab文件,还要敲下面的命令关闭当前系统生效的交换分区

1
2
3
4
5
6
[root@localhost ~]# swapoff /dev/mapper/centos-swap 
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 974 126 693 7 155 680
Swap: 0 0 0
[root@localhost ~]#

1.首先添加一块3G的分区sdb2

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
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
Partition number (2-4, default 2):
First sector (10487808-41943039, default 10487808):
Using default value 10487808
Last sector, +sectors or +size{K,M,G} (10487808-41943039, default 41943039): +3G
Partition 2 of type Linux and of size 3 GiB is set

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 16: Device or resource busy.
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.
[root@localhost ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xbfd160d1

Device Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
/dev/sdb2 10487808 16779263 3145728 83 Linux
[root@localhost ~]# partprobe
注意:最后一条命令别忘了敲!

2.将分区格式化为交换分区

1
2
3
4
5
6
7
8
9
[root@localhost ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 3145724 KiB
no label, UUID=3060761d-8f1b-4222-96ba-2d2a101864ae
[root@localhost ~]# swapon /dev/sdb2
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 974 128 687 7 158 675
Swap: 3071 0 3071
[root@localhost ~]#

3.让交换分区能开机启动生效

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# blkid | grep /dev/sdb2
/dev/sdb2: UUID="3060761d-8f1b-4222-96ba-2d2a101864ae" TYPE="swap"
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# init 6
重启后:
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 976 119 718 6 138 695
Swap: 3071 0 3071
# 看到我们设置的虚拟内存,生效

磁盘配额

  为了限制用户在分区上使用磁盘的容量,利用磁盘限额技术来限制,一般应用场景有网盘、邮箱,还有网络论坛用户上传文件限制等等。

修改/etc/fstab中的类型字段来开启分期的磁盘配额功能

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
[root@localhost ~]# vim /etc/fstab 
[root@localhost ~]# grep note /etc/fstab
UUID="081fb70a-c886-4926-bc0d-0e94a9c31687" /mnt/note xfs defaults,uquota 0 0
# 重启使分区的磁盘配额功能
[root@localhost ~]# reboot
[root@localhost ~]# xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 aaa' /mnt/note/
# 其中软限制为3m,硬限制为6m

[aaa@localhost root]$ cd /mnt/note/
# 生成一个4M的文件
[aaa@localhost note]$ dd if=/dev/zero of=4mfile bs=1M count=4
记录了4+0 的读入
记录了4+0 的写出
4194304字节(4.2 MB)已复制,0.00425314 秒,986 MB/秒
[eagle@localhost note]$ ll
总用量 4096
-rw-rw-r--. 1 aaa afeng 4194304 8月 14 17:18 4mfile
[aaa@localhost note]$ ll -h
总用量 4.0M
-rw-rw-r--. 1 aaa afeng 4.0M 8月 14 17:18 4mfile
[aaa@localhost note]$
# 生成一个3M的文件,报错失败,最终这个文件只生成出来2M
[aaa@localhost note]$ dd if=/dev/zero of=3mfile bs=1M count=3
dd: 写入"3mfile" 出错: 超出磁盘限额
记录了3+0 的读入
记录了2+0 的写出
2097152字节(2.1 MB)已复制,0.00378417 秒,554 MB/秒
[aaa@localhost note]$ ll -h
总用量 6.0M
-rw-rw-r--. 1 aaa afeng 2.0M 8月 14 17:19 3mfile
-rw-rw-r--. 1 aaa afeng 4.0M 8月 14 17:18 4mfile
欢迎打赏,谢谢
------ 本文结束------
0%