伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

Linux磁盘分区文件系统挂载及逻辑卷管理

来源:本站原创 浏览:91次 时间:2022-11-12
1、MBR分区表1.1 恢复有备份的分区表

初始化服务器:先备份centos8系统(192.168.209.110)上的/dev/sda的MBR分区表,破坏后,通过备份文件恢复。

1)查看110主机的/dev/sda分区表前512字节;

2)备份110主机的/dev/sda分区表的64个字节,并备份到111主机上的/data目录中;

3)破坏掉110主机上的/dev/sda分区表,并重启系统;

4)重启后不能正常进入系统;

5)虚拟机里设置centos8光盘镜像;

6)设置光盘启动;

7)选择Troubleshooting模式;

8)选择Rescue a CentOS Linux system;

9)选择3 Skip to shell;

10)进入系统后,查看没有ip地址

11)配置IP地址,使用ip a 或ifconfig命令

12)将209.111备份的sda.img文件复制过来

13)导入sda.img到/dev/sda分区的64字节

4)重启后正常

1.2 恢复无备份的分区表

初始化服务器:未备份centos8系统(192.168.209.110)上的/dev/sda的MBR分区表,被破坏后,通过其他相同配置的服务器(209.111)分区表来恢复。

1)跳过/dev/sda分区表的446字节,查看后面的66字节

2)跳过/dev/sda分区表的446字节,破坏后面的64字节

3)启动后无法进入系统

4)开机按ESC键,选择光盘启动

5)选择Troubleshooting模式

6)选择Rescue a CentOS Linux system

7)选择3 Skip to shell

8)配置IP地址,使用ip a 或ifconfig命令

9)在209.111服务器上备份其分区表的后64字节

10)复制209.111服务器上的分区表备份sda111.img到本地服务器(209.110)

11)写入到209.110服务器的分区表中,重启后正常

2、创建文件系统2.1 文件系统概念

文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。

从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等。

支持的文件系统:

各种文件系统:https://en.wikipedia.org/wiki/Comparison_of_file_systems

2.2 文件系统类型

Linux 常用文件系统:

  • ext2:Extended file system 适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区
  • ext3:是 ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复
  • ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升。
  • xfs:SGI,支持最大8EB的文件系统
  • swap
  • iso9660 光盘
  • btrfs(Oracle)
  • reiserfs

Windows 常用文件系统:

  • FAT32
  • NTFS
  • exFAT

Unix:

  • FFS(fast)
  • UFS(unix)
  • JFS2

网络文件系统:

  • NFS
  • CIFS

集群文件系统:

  • GFS2
  • OCFS2(oracle)

分布式文件系统:

  • fastdfs
  • ceph
  • moosefs
  • mogilefs
  • glusterfs
  • Lustre

RAW:

  • 未经处理或者未经格式化产生的文件系统

常用的文件系统特性:

FAT32:

  • ==最多只能支持16TB的文件系统和4GB的文件==

NTFS:

  • ==最多只能支持16EB的文件系统和16EB的文件==

EXT3:

  • 最多只能支持==32TB的文件系统和2TB的文件==,实际只能容纳2TB的文件系统和16GB的文件
  • Ext3目前只支持32000个子目录
  • Ext3文件系统使用32位空间记录块数量和 inode数量
  • 当数据写入到Ext3文件系统中时,Ext3的数据块分配器每次只能分配一个4KB的块

EXT4:

  • EXT4是Linux系统下的日志文件系统,是EXT3文件系统的后继版本
  • ==Ext4的文件系统容量达到1EB,而支持单个文件则达到16TB==
  • 理论上支持无限数量的子目录
  • Ext4文件系统使用64位空间记录块数量和 inode数量
  • Ext4的多块分配器支持一次调用分配多个数据块
  • 修复速度更快

XFS

  • 根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
  • 用优化算法,日志记录对整体文件操作影响非常小
  • ==是一个全64-bit的文件系统,最大可以支持8EB的文件系统,而支持单个文件则达到8EB==
  • 能以接近裸设备I/O的性能存储数据

查前支持的文件系统:

[root@centos8 ~]# cat /proc/filesystemsnodev   sysfsnodev   rootfsnodev   ramfsnodev   bdevnodev   procnodev   cpusetnodev   cgroupnodev   cgroup2nodev   tmpfsnodev   devtmpfsnodev   configfsnodev   debugfsnodev   tracefsnodev   securityfsnodev   sockfsnodev   daxnodev   bpfnodev   pipefsnodev   hugetlbfsnodev   devptsnodev   autofsnodev   pstorenodev   mqueue        xfs        ext3        ext2        ext4[root@centos7 ~]# ls /lib/modules/`uname -r`/kernel/fsbinfmt_misc.ko.xz  cachefiles  cifs    dlm    ext4  fscache  gfs2   jbd2   mbcache.ko.xz  nfs_common  nls   pstore      udf     btrfs  ceph  cramfs   exofs  fat    fuse     isofs  lockd       nfs   nfsd        overlayfs  squashfs  xfs
2.3 文件系统选择管理2.3.1 创建文件系统mkfs

创建文件管理工具

  • mkfs命令:
mkfs.FS_TYPE /dev/DEVICE    ext4    xfs    btrfs    vfatmkfs -t FS_TYPE /dev/DEVICE    -L 'LABEL'      #设定卷标,分区的描述信息,一般用挂载点命名,一目了然#示例:mkfs.xfs /dev/sdb1  #创建/dev/sdb1分区的文件系统为xfs,若提示已有其他文件系统,加-f选项mkfs.xfs /dev/sdb1 -f   #创建后,自动分配一个UUID,32个(16进制)*4=128位(二进制),唯一性lsblk -f    #查看文件系统mkfs.ext4 /dev/sdb === mkfs -t ext4 /dev/sdb    #两个命令等价
  • mke2fs:ext系列文件系统专用管理工具(逐渐淘汰)

常用选项:

-t {ext2|ext3|ext4|xfs}         #指定文件系统类型-b {1024|2048|4096}             #指定块 block 大小,文件占用的最小单位-L 'LABEL'                      #设置卷标-j          #相当于 -t ext3, mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3-i          #为数据空间中每多少个字节创建一个inode;不应该小于block大小-N          #指定分区中创建多少个inode-I          #一个inode记录占用的磁盘空间大小,128---4096-m          #默认5%,为管理人员预留空间占总空间的百分比-O FEATURE[,...]        #启用指定特性-O ^FEATURE             #关闭指定特性

范例:查看文件块大小

1)ext4文件系统tune2fs -l /dev/sda1block size:     4096(4K)    #文件占用的最小单位是4K,即使1个字节的文件也要占用4K2)xfs文件系统xfs_info /data(挂载点)或xfs_info /dev/sda2bsize=40963)指定block大小mkfs.ext4 -b 1024   #如果该分区中,都是1k左右的小文件,则设置块大小为1k,节省空间

范例:创建文件系统并修改文件系统

1)初始化硬盘/dev/sdb的分区[root@centos7 ~]# echo -e 'n\np\n1\n\n+500M\nw\n' |fdisk /dev/sdb[root@centos7 ~]# echo -e 'n\np\n2\n\n+400M\nw\n' |fdisk /dev/sdb[root@centos7 ~]# lsblkNAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsdb               8:16   0    2G  0 disk├─sdb1            8:17   0  500M  0 part└─sdb2            8:18   0  400M  0 part2)查看sdb的分区文件系统类别[root@centos7 ~]# lsblk -fNAME            FSTYPE      LABEL           UUID                 MOUNTPOINTsdb├─sdb1      #sdb1和sdb2均无文件系统└─sdb23)创建文件系统[root@centos7 ~]# mkfs.xfs /dev/sdb1[root@centos7 ~]# mkfs.ext4 /dev/sdb2[root@centos7 ~]# lsblk -fNAME            FSTYPE      LABEL   UUID                             MOUNTPOINTsdb├─sdb1          xfs                 f2964200-c6b8-49af-a507-7be6a1da8db9└─sdb2          ext4                39b10cb6-ff63-46b2-a037-b952ad8d38ab
2.3.2 查看和管理分区信息1、ext系列文件系统工具1)tune2fs

tune2fs:重新设定ext系列文件系统可调整参数的值

常用选项:

备注:主要使用-l查看ext系列文件系统的元数据-l          #查看指定文件系统超级块信息;super block-L 'LABEL'  #修改卷标-m          #修预留给管理员的空间百分比-j          #将ext2升级为ext3-O          #文件系统属性启用或禁用, –O ^has_journal-o          #调整文件系统的默认挂载选项,–o ^acl-U UUID     #修改UUID号

范例:

tune2fs -l /dev/sda1    #查看ext系列分区的文件系统元数据tune2fs -m number /dev/sda1 #修改预留空间百分比,如1代表1%tune2fs -o acl /dev/sda1    #添加acl权限tune2fs -o ^acl /dev/sda1   #禁用acl权限tune2fs -O ^has_journal /dev/sda1   #禁用has_journal,但不能在挂载的分区上禁用,提示错误tune2fs -O has_journal /dev/sdb2    #启用has_journaltune2fs -U 

范例:

1) -l[root@centos7 ~]# lsblk -fNAME            FSTYPE      LABEL   UUID                         MOUNTPOINTsdb├─sdb1          xfs                 f2964200-c6b8-49af-a507-7be6a1da8db9└─sdb2          ext4                39b10cb6-ff63-46b2-a037-b952ad8d38ab[root@centos7 ~]# tune2fs -l /dev/sdb1  #sdb1分区类型是xfs的,不能查看tune2fs 1.42.9 (28-Dec-2013)tune2fs: Bad magic number in super-block while trying to open /dev/sdb1Couldn't find valid filesystem superblock.[root@centos7 ~]# tune2fs -l /dev/sdb2  #查看sdb2分区的元数据2) -L[root@centos7 ~]# tune2fs -L test /dev/sdb2tune2fs 1.42.9 (28-Dec-2013)[root@centos7 ~]# lsblk -fNAME            FSTYPE      LABEL     UUID                          MOUNTPOINTsdb├─sdb1          xfs                   f2964200-c6b8-49af-a507-7be6a1da8db9└─sdb2          ext4        test      39b10cb6-ff63-46b2-a037-b952ad8d38ab3) -m[root@centos7 ~]# tune2fs -l /dev/sdb2Filesystem OS type:       LinuxInode count:              102400Block count:              409600Reserved block count:     20480                 #默认保留空间为5%[root@centos7 ~]# tune2fs -m 1 /dev/sdb2tune2fs 1.42.9 (28-Dec-2013)Setting reserved blocks percentage to 1% (4096 blocks)[root@centos7 ~]# tune2fs -l /dev/sdb2Filesystem OS type:       LinuxInode count:              102400Block count:              409600Reserved block count:     4096                  #修改保留空间为1%4) -O[root@centos7 ~]# tune2fs -O ^has_journal /dev/sdb2tune2fs 1.42.9 (28-Dec-2013)[root@centos7 ~]# tune2fs -l /dev/sdb2tune2fs 1.42.9 (28-Dec-2013)
2)dumpe2fs

dumpe2fs:显示ext文件系统信息,将磁盘块分组管理

常用选项:

-h      #查看超级块元数据信息,不显示分组信息,同tune2fs -l

范例:查看ext文件系统的元数据和分组信息

[root@centos7 ~]# dumpe2fs /dev/sdb1dumpe2fs 1.42.9 (28-Dec-2013)dumpe2fs: Bad magic number in super-block while trying to open /dev/sdb1Couldn't find valid filesystem superblock.[root@centos7 ~]# dumpe2fs /dev/sdb2dumpe2fs 1.42.9 (28-Dec-2013)Filesystem volume name:   <none>Last mounted on:          <not available>Filesystem UUID:          39b10cb6-ff63-46b2-a037-b952ad8d38abFilesystem magic number:  0xEF53Filesystem revision #:    1 (dynamic)Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isizeFilesystem flags:         signed_directory_hashDefault mount options:    user_xattr acl    #有acl功能权限Filesystem state:         cleanErrors behavior:          ContinueFilesystem OS type:       LinuxInode count:              102400            #节点数量Block count:              409600            #块数量,总的空间Reserved block count:     20480             #被保留的空间,为root保留,默认5%的空间Free blocks:              386144Free inodes:              102389First block:              1Block size:               1024              #块大小,centos8上是4096Fragment size:            1024Group descriptor size:    64Reserved GDT blocks:      256Blocks per group:         8192Fragments per group:      8192Inodes per group:         2048Inode blocks per group:   256Flex block group size:    16Filesystem created:       Mon Feb 22 14:24:22 2021Last mount time:          n/aLast write time:          Mon Feb 22 14:24:22 2021Mount count:              0Maximum mount count:      -1Last checked:             Mon Feb 22 14:24:22 2021Check interval:           0 (<none>)Lifetime writes:          8 MBReserved blocks uid:      0 (user root)Reserved blocks gid:      0 (group root)First inode:              11Inode size:               128       #文件的描述信息占用128字节,centos8里是256字节Journal inode:            8Default directory hash:   half_md4Directory Hash Seed:      b7c3b5e3-dd55-4fe3-86c5-ef6bf6a2a312Journal backup:           inode blocksJournal features:         (none)Journal size:             8MJournal length:           8192Journal sequence:         0x00000001Journal start:            0以上和tune2fs -l /dev/sda1查询的元数据相同下面是分组数据,包括超级块(Primary superblock)和多个备份超级块(Backup superblock)Group 0: (Blocks 1-8192)  Checksum 0x68b6, unused inodes 2037  Primary superblock at 1, Group descriptors at 2-5  Reserved GDT blocks at 6-261  Block bitmap at 262 (+261), Inode bitmap at 278 (+277)  Inode table at 294-549 (+293)  3789 free blocks, 2037 free inodes, 2 directories, 2037 unused inodes  Free blocks: 4404-8192  Free inodes: 12-2048Group 1: (Blocks 8193-16384) [INODE_UNINIT]  Checksum 0xf5fa, unused inodes 2048  Backup superblock at 8193, Group descriptors at 8194-8197  Reserved GDT blocks at 8198-8453  Block bitmap at 263 (bg #0 + 262), Inode bitmap at 279 (bg #0 + 278)  Inode table at 550-805 (bg #0 + 549)  7931 free blocks, 2048 free inodes, 0 directories, 2048 unused inodes  Free blocks: 8454-16384  Free inodes: 2049-4096...省略...

centos6上,手动分区后默认没有acl权限(安装OS时的分区有acl权限),需要手动添加。centos7、8后,会自动包含acl权限。

3)blkid

blkid 可以查看块设备属性信息

格式:

blkid [OPTION]... [DEVICE]blkid   #显示有文件系统的分区,会显示TYPE文件类型lsblk -f    #也可以显示分区的文件系统

范例:

[root@centos7 ~]# blkid/dev/sda1: UUID="4d6ce1ba-16ec-4d37-951c-afd012231267" TYPE="xfs"/dev/sda2: UUID="H4mKHO-71FU-bAUR-InNX-ji0g-nuN3-BjOQLe" TYPE="LVM2_member"/dev/sdb1: UUID="f2964200-c6b8-49af-a507-7be6a1da8db9" TYPE="xfs"/dev/sdb2: LABEL="test" UUID="39b10cb6-ff63-46b2-a037-b952ad8d38ab" TYPE="ext4"/dev/mapper/centos-root: UUID="5753dc79-bc4e-4514-9eb7-56e5bbaa5dff" TYPE="xfs"/dev/mapper/centos-swap: UUID="da97a9bd-58d9-4770-92d8-07b6bd64ac1c" TYPE="swap"[root@centos7 ~]# lsblk -fNAME            FSTYPE      LABEL    UUID                                MOUNTPOINTsda├─sda1          xfs                 4d6ce1ba-16ec-4d37-951c-afd012231267    /boot└─sda2          LVM2_member         H4mKHO-71FU-bAUR-InNX-ji0g-nuN3-BjOQLe  ├─centos-root xfs                 5753dc79-bc4e-4514-9eb7-56e5bbaa5dff    /  └─centos-swap swap                da97a9bd-58d9-4770-92d8-07b6bd64ac1c    [SWAP]sdb├─sdb1          xfs                 f2964200-c6b8-49af-a507-7be6a1da8db9└─sdb2          ext4        test    39b10cb6-ff63-46b2-a037-b952ad8d38ab

常用选项:

  • -U UUID 根据指定的UUID来查找对应的设备
  • -L LABEL 根据指定的LABEL来查找对应的设备

范例:

[root@centos7 ~]# blkid -L test/dev/sdb2[root@centos7 ~]# blkid -U f2964200-c6b8-49af-a507-7be6a1da8db9/dev/sdb1[root@centos7 ~]# blkid -U "39b10cb6-ff63-46b2-a037-b952ad8d38ab"/dev/sdb2
4)e2label

e2label:只管理ext系列文件系统的LABEL

e2label DEVICE [LABEL]e2label /dev/sdb2 test  #修改sdb2的卷标为test

范例:

[root@centos7 ~]# e2label /dev/sdb1 TESTe2label: Bad magic number in super-block while trying to open /dev/sdb1Couldn't find valid filesystem superblock.[root@centos7 ~]# e2label /dev/sdb2 TEST
5)findfs

findfs :查找分区

findfs [options] LABEL=<label>findfs [options] UUID=<uuid>

范例:

[root@centos7 modules]# findfs LABEL=test/dev/sdb2[root@centos7 modules]# findfs UUID=39b10cb6-ff63-46b2-a037-b952ad8d38ab/dev/sdb2
2、xfs文件系统工具
[root@centos7 modules]# xfs_xfs_admin      xfs_copy       xfs_estimate   xfs_fsr        xfs_info       xfs_logprint   xfs_metadump   xfs_ncheck     xfs_repair     xfs_bmap       xfs_db         xfs_freeze     xfs_growfs     xfs_io         xfs_mdrestore  xfs_mkfile     xfs_quota      xfs_rtcp
1)xfs_info

xfs_info:显示示挂载或已挂载的 xfs 文件系统信息

xfs_info mountpoint|devname

范例:

[root@centos7 ~]# lsblk -fNAME            FSTYPE      LABEL   UUID                             MOUNTPOINTsda├─sda1          xfs                 4d6ce1ba-16ec-4d37-951c-afd012231267    /boot└─sda2          LVM2_member         H4mKHO-71FU-bAUR-InNX-ji0g-nuN3-BjOQLe  ├─centos-root xfs                 5753dc79-bc4e-4514-9eb7-56e5bbaa5dff    /  └─centos-swap swap                da97a9bd-58d9-4770-92d8-07b6bd64ac1c    [SWAP]sdb├─sdb1          xfs                 f2964200-c6b8-49af-a507-7be6a1da8db9└─sdb2          ext4                39b10cb6-ff63-46b2-a037-b952ad8d38ab[root@centos7 ~]# xfs_info /dev/sdb1        #未挂载,无法查询xfs_info: /dev/sdb1 is not a mounted XFS filesystem[root@centos7 ~]# xfs_info /dev/sda1        #sda1的xfs文件系统信息meta-data=/dev/sda1              isize=512    agcount=4, agsize=65536 blks         =                       sectsz=512   attr=2, projid32bit=1         =                       crc=1        finobt=0 spinodes=0data     =                       bsize=4096   blocks=262144, imaxpct=25         =                       sunit=0      swidth=0 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=1log      =internal               bsize=4096   blocks=2560, version=2         =                       sectsz=512   sunit=0 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0
2.3.3 文件系统检测和修复

文件系统夹故障常发生于死机或者非正常关机之后,挂载为文件系统标记为“no clean”

==注意:一定不要在挂载状态下执行下面命令修复==

fsck: File System Checkfsck.FS_TYPEfsck -t FS_TYPE

注意:FS_TYPE 一定要与分区上的文件类型相同

常用选项:

-a      #自动修复-r      #交互式修复错误
1、e2fsck:ext系列文件专用的检测修复工具
-y      #自动回答为yes-f      #强制修复-p      #自动进行安全的修复文件系统问题
2、实例:修改破坏的ext文件系统

1)centos7系统

[root@centos7 ~]# mkdir /data/sdb2;mount /dev/sdb2 /data/sdb2[root@centos7 ~]# lsblk -fNAME            FSTYPE      LABEL    UUID                               MOUNTPOINTsda├─sda1          xfs                  4d6ce1ba-16ec-4d37-951c-afd012231267   /boot└─sda2          LVM2_member          H4mKHO-71FU-bAUR-InNX-ji0g-nuN3-BjOQLe  ├─centos-root xfs                  5753dc79-bc4e-4514-9eb7-56e5bbaa5dff   /  └─centos-swap swap                 da97a9bd-58d9-4770-92d8-07b6bd64ac1c   [SWAP]sdb├─sdb1          xfs                  f2964200-c6b8-49af-a507-7be6a1da8db9└─sdb2          ext4        test     39b10cb6-ff63-46b2-a037-b952ad8d38ab   /data/sdb2sr0             iso9660     CentOS 7 x86_64 2018-11-26-14-22-58-00[root@centos7 ~]# cp /etc/fstab /data/sdb2[root@centos7 ~]# cp /etc/fstab /data/sdb2/f1[root@centos7 ~]# ls /data/sdb2/f1  fstab  lost+found[root@centos7 ~]# dd if=/dev/zero of=/dev/sdb2 bs=1M count=11+0 records in1+0 records out1048576 bytes (1.0 MB) copied, 0.00267759 s, 392 MB/s[root@centos7 ~]# ls /data/sdb2[root@centos7 ~]# tune2fs -l /dev/sdb2tune2fs 1.42.9 (28-Dec-2013)tune2fs: Bad magic number in super-block while trying to open /dev/sdb2Couldn't find valid filesystem superblock.[root@centos7 ~]# dfFilesystem          1K-blocks               Used        Available   Use%  Mounted on/dev/sdb2      18446744073709530478  18446744073709144336  382046   00%  /data/sdb2[root@centos7 ~]# umount /data/sdb2[root@centos7 ~]# e2fsck /dev/sdb2 -ye2fsck 1.42.9 (28-Dec-2013)test: ***** FILE SYSTEM WAS MODIFIED *****test: 11/102400 files (0.0% non-contiguous), 23445/409600 blocks[root@centos7 ~]# tune2fs -l /dev/sdb2tune2fs 1.42.9 (28-Dec-2013)...正常显示,省略...[root@centos7 ~]# mount /dev/sdb2 /data/sdb2/[root@centos7 ~]# ls /data/sdb2/        #虽然恢复了,但文件未找回lost+found[root@centos7 ~]#

2)centos8系统

[root@centos8 ~]# mount /dev/sdb2 /mnt[root@centos8 ~]# cp /etc/fstab /mnt/f1[root@centos8 ~]# cp /etc/fstab /mnt/f2[root@centos8 ~]# ls /mntf1 f2 lost+found[root@centos8 ~]# dd if=/dev/zero of=/dev/sdb2 bs=1M count=11+0 records in1+0 records out1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00128317 s, 817 MB/s[root@centos8 ~]# ls /mnt[root@centos8 ~]# tune2fs -l /dev/sdb2tune2fs 1.44.6 (5-Mar-2019)tune2fs: Bad magic number in super-block while trying to open /dev/sdb2[root@centos8 ~]# umount /mnt[root@centos8 ~]# e2fsck /dev/sdb2 -ye2fsck 1.44.6 (5-Mar-2019)test: ***** FILE SYSTEM WAS MODIFIED *****test: 13/131072 files (0.0% non-contiguous), 26158/524288 blocks[root@centos8 ~]# mount /dev/sdb2 /mnt[root@centos8 ~]# ls /mnt       ##数据不一定能恢复,破坏的时候,如果覆盖了文件,那就不能恢复了f1 f2 lost+found[root@centos8 ~]# cat /mnt/f1UUID=f7f53add-b184-4ddc-8d2c-5263b84d1e15 / xfs defaults 0 0UUID=5c2216e3-ae34-444e-aa60-83cbaebb47e7 /boot ext4 defaults 1 2UUID=9a2293a8-9277-4b18-bae1-498e0b9da145 /data xfs defaults 0 0UUID=eebe3bc7-6d52-4ad9-86aa-916f1a123fd4 swap swap defaults 0 0[root@centos8 ~]#
3、xfs_repair:xfs文件系统专用检测修复工具
-f      #修复文件-n      #只检查-d      #允许修复只读的挂载设备,在单用户(init 1)下修复 / 时使用,然后立即reboot
2.4 挂载

挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为

卸载:为解除此关联关系的过程

把设备关联挂载点:mount Point

挂载点下原有文件在挂载完成后会被临时隐藏,因此,挂载点目录一般为空

进程正在使用中的设备无法被卸载

2.4.1 挂载文件系统mount

格式:

mount [-fnrsvw] [-t vfstype] [-o options] device mountpointdevice      #指明要挂载的设备mountpoint  #挂载点目录必须事先存在,建议使用空目录#设备文件:          例如:/dev/sda5#卷标:-L 'LABEL'   例如 -L 'MYDATA'#UUID: -U 'UUID'   例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'#伪文件系统名称:proc, sysfs, devtmpfs, configfs

mount常用命令选项

-t vsftype          #指定要挂载的设备上的文件系统类型-r readonly         #只读挂载-w read and write   #读写挂载-n                  #不更新/etc/mtab,mount不可见-a              #自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)-L 'LABEL'          #以卷标指定挂载设备-U 'UUID'           #以UUID指定要挂载的设备-B, --bind          #绑定目录到另一个目录上-o options:(挂载文件系统的选项),多个选项使用逗号分隔    async           #异步模式,内存更改时,写入缓存区buffer,过一段时间再写到磁盘中,效率高,但不安全    sync            #同步模式,内存更改时,同时写磁盘,安全,但效率低下    atime/noatime   #包含目录和文件    diratime/nodiratime     #目录的访问时间戳    auto/noauto     #是否支持开机自动挂载,是否支持-a选项    exec/noexec     #是否支持将文件系统上运行应用程序    dev/nodev       #是否支持在此文件系统上使用设备文件    suid/nosuid     #是否支持suid和sgid权限    remount         #重新挂载    ro/rw           #只读、读写    user/nouser     #是否允许普通用户挂载此设备,/etc/fstab使用    acl/noacl       #启用此文件系统上的acl功能    loop            #使用loop设备    _netdev         #当网络可用时才对网络资源进行挂载,如:NFS文件系统    defaults        #相当于rw, suid, dev, exec, auto, nouser, async

挂载规则:

  • 一个挂载点同一时间只能挂载一个设备
  • 一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏
  • 一个设备可以同时挂载到多个挂载点
  • 通常挂载点一般是已存在的空目录

范例:

一个设备可以同时挂载到多个挂载点[root@centos7 ~]# lsblkNAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsdb               8:16   0    2G  0 disk├─sdb1            8:17   0  500M  0 part└─sdb2            8:18   0  400M  0 part[root@centos7 ~]# mkdir /mnt/test[root@centos7 ~]# mount /dev/sdb1 /mnt/test[root@centos7 ~]# ls /mnt/test/[root@centos7 ~]# lsblkNAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsdb               8:16   0    2G  0 disk├─sdb1            8:17   0  500M  0 part /mnt/test└─sdb2            8:18   0  400M  0 part[root@centos7 ~]# touch /mnt/test/f{1..5}.txt[root@centos7 ~]# ls /mnt/testf1.txt  f2.txt  f3.txt  f4.txt  f5.txt[root@centos7 ~]# mkdir /mnt/sdb1;mount /dev/sdb1 /mnt/sdb1[root@centos7 ~]# lsblkNAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTdb               8:16   0    2G  0 disk├─sdb1            8:17   0  500M  0 part /mnt/sdb1└─sdb2            8:18   0  400M  0 part[root@centos7 ~]# mount/dev/sdb1 on /mnt/test type xfs (rw,relatime,attr2,inode64,noquota)/dev/sdb1 on /mnt/sdb1 type xfs (rw,relatime,attr2,inode64,noquota)[root@centos7 ~]# ls /mnt/test/f1.txt  f2.txt  f3.txt  f4.txt  f5.txt[root@centos7 ~]# ls /mnt/sdb1/f1.txt  f2.txt  f3.txt  f4.txt  f5.txt[root@centos7 ~]# rm -f /mnt/test/f5.txt[root@centos7 ~]# ls /mnt/sdb1/f1.txt  f2.txt  f3.txt  f4.txt[root@centos7 ~]#一个挂载点同一时间只能挂载一个设备一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏#挂载点test同时挂载了sdb1和sdb2两个设备,只能看到最后一个设备sdb2的数据,sdb1的数据被隐藏,当取消sdb2的挂载后,恢复sdb1的挂载数据。[root@centos7 ~]# mount /dev/sdb2 /mnt/test     #把sdb2挂载到test[root@centos7 ~]# ls /mnt/test                  #没有文件,这是挂载的sdb2lost+found[root@centos7 ~]# mount /dev/sdb1 on /mnt/test type xfs (rw,relatime,attr2,inode64,noquota) /dev/sdb1 on /mnt/sdb1 type xfs (rw,relatime,attr2,inode64,noquota)/dev/sdb2 on /mnt/test type ext4 (rw,relatime,data=ordered)[root@centos7 ~]# ls /mnt/sdb1/                 #原来挂载的sdb1不变f1.txt  f2.txt  f3.txt  f4.txt[root@centos7 ~]# touch /mnt/test/sdb2.txt[root@centos7 ~]# ls /mnt/testlost+found  sdb2.txt[root@centos7 ~]# umount /dev/sdb2              #取消挂载[root@centos7 ~]# ls /mnt/test/                 #恢复挂载sdb1f1.txt  f2.txt  f3.txt  f4.txt通常挂载点一般是已存在的空目录,如果该目录有文件,可以隐藏该目录的文件。[root@centos7 ~]# mkdir /mnt/test2[root@centos7 ~]# touch /mnt/test2/test2.txt    #在此目录下创建test2文件[root@centos7 ~]# ls /mnt/testf1.txt  f2.txt  f3.txt  f4.txt[root@centos7 ~]# ls /mnt/test2test2.txt[root@centos7 ~]# mount /dev/sdb2 /mnt/test2    #挂载sdb2到test2目录[root@centos7 ~]# mount/dev/sdb1 on /mnt/test type xfs (rw,relatime,attr2,inode64,noquota)/dev/sdb1 on /mnt/sdb1 type xfs (rw,relatime,attr2,inode64,noquota)/dev/sdb2 on /mnt/test2 type ext4 (rw,relatime,data=ordered)[root@centos7 ~]# ls /mnt/test2                 #test2显示的就是sdb2设备的文件lost+found  sdb2.txt[root@centos7 ~]# umount /mnt/test2             #取消挂载后,显示原目录的文件[root@centos7 ~]# ls /mnt/test2test2.txt

使用UUID和LABEL来挂载

范例:

1)UUID挂载[root@centos7 ~]# umount -a[root@centos7 ~]# blkid/dev/sda1: UUID="4d6ce1ba-16ec-4d37-951c-afd012231267" TYPE="xfs"/dev/sda2: UUID="H4mKHO-71FU-bAUR-InNX-ji0g-nuN3-BjOQLe" TYPE="LVM2_member"/dev/sdb1: UUID="f2964200-c6b8-49af-a507-7be6a1da8db9" TYPE="xfs"/dev/sdb2: LABEL="test" UUID="39b10cb6-ff63-46b2-a037-b952ad8d38ab" TYPE="ext4"[root@centos7 ~]# mount UUID="f2964200-c6b8-49af-a507-7be6a1da8db9" /mnt/test[root@centos7 ~]# mount/dev/sdb1 on /mnt/test type xfs (rw,relatime,attr2,inode64,noquota)[root@centos7 ~]# lsblkNAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsdb               8:16   0    2G  0 disk├─sdb1            8:17   0  500M  0 part /mnt/test└─sdb2            8:18   0  400M  0 part[root@centos7 ~]# ls /mnt/testf1.txt  f2.txt  f3.txt  f4.txt2)LABEL挂载[root@centos7 ~]# lsblk -fNAME            FSTYPE      LABEL      UUID                             MOUNTPOINTsdb├─sdb1          xfs                    f2964200-c6b8-49af-a507-7be6a1da8db9└─sdb2          ext4        test       39b10cb6-ff63-46b2-a037-b952ad8d38ab[root@centos7 ~]# mount LABEL=test /mnt/sdb2mount: mount point /mnt/sdb2 does not exist[root@centos7 ~]# mount LABEL=test /mnt/test2/[root@centos7 ~]# ls /mnt/test2lost+found  sdb2.txt[root@centos7 ~]# mount/dev/sdb2 on /mnt/test2 type ext4 (rw,relatime,data=ordered)

范例:只读挂载

-r  只读挂载[root@centos7 ~]# umount /dev/sdb2[root@centos7 ~]# mount -r LABEL=test /mnt/test2[root@centos7 ~]# touch /mnt/test2/123touch: cannot touch ‘/mnt/test2/123’: Read-only file system[root@centos7 ~]# rm -f /mnt/test2/sdb2.txtrm: cannot remove ‘/mnt/test2/sdb2.txt’: Read-only file system[root@centos7 ~]# mount/dev/sdb2 on /mnt/test2 type ext4 (ro,relatime,data=ordered)        #ro只读[root@centos7 ~]#[root@centos7 ~]# mount -o remount,rw /mnt/test2        #修改挂载权限为rw[root@centos7 ~]# touch /mnt/test2/123[root@centos7 ~]# ls /mnt/test2123  lost+found  sdb2.txt[root@centos7 ~]# mount/dev/sdb2 on /mnt/test2 type ext4 (rw,relatime,data=ordered)    #rw读写权限

范例:目录挂载

-B:目录挂载#把/etc目录挂载到/mnt/etc下[root@centos7 ~]# mkdir /mnt/etc;mount -B /etc /mnt/etc[root@centos7 ~]# ll /etc/issue /mnt/etc/issue-rw-r--r-- 1 root root 23 Apr  8  2020 /etc/issue-rw-r--r-- 1 root root 23 Apr  8  2020 /mnt/etc/issue[root@centos7 ~]# echo 'welcome to magedu' >>/mnt/etc/issue     #修改/mnt/etc/issue文件内容[root@centos7 ~]# cat /etc/issue    #/etc/issue随之改变\SKernel \r on an \mwelcome to magedu[root@centos7 ~]# ll /etc/issue /mnt/etc/issue      #文件相同-rw-r--r-- 1 root root 41 Feb 23 13:20 /etc/issue-rw-r--r-- 1 root root 41 Feb 23 13:20 /mnt/etc/issue[root@centos7 ~]# ll /etc/issue /mnt/etc/issue -i   #节点号也相同16778149 -rw-r--r-- 1 root root 41 Feb 23 13:20 /etc/issue16778149 -rw-r--r-- 1 root root 41 Feb 23 13:20 /mnt/etc/issue备注:当发现两个文件的节点号相同,但链接数还是1的时候,那么可以查看mount挂载[root@centos7 ~]# mount/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)/dev/mapper/centos-root on /mnt/etc type xfs (rw,relatime,attr2,inode64,noquota)

范例:noatime

-o 修改访问时间权限[root@centos7 ~]# mount /dev/sdb1 /mnt/sdb1[root@centos7 /]# mount     #时间权限为relatime  实时更新/dev/sdb1 on /mnt/sdb1 type xfs (rw,relatime,attr2,inode64,noquota)[root@centos7 /]# echo 'hello' >/mnt/sdb1/f1.txt[root@centos7 /]# ll /mnt/sdb1 --time=atime -ttotal 4-rw-r--r-- 1 root root 6 Feb 23 10:11 f1.txt-rw-r--r-- 1 root root 0 Feb 23 10:11 f2.txt-rw-r--r-- 1 root root 0 Feb 23 10:11 f3.txt-rw-r--r-- 1 root root 0 Feb 23 10:11 f4.txt[root@centos7 /]# mount -o remount,noatime /mnt/sdb1    #时间权限修改为noatime,不更新[root@centos7 /]# mount/dev/sdb1 on /mnt/sdb1 type xfs (rw,noatime,attr2,inode64,noquota)[root@centos7 /]# stat /mnt/sdb1/f1.txt  File: ‘/mnt/sdb1/f1.txt’  Size: 6               Blocks: 8          IO Block: 4096   regular fileDevice: 811h/2065d      Inode: 67          Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2021-02-23 10:11:00.817035877 +0800Modify: 2021-02-23 13:57:04.344601237 +0800Change: 2021-02-23 13:57:04.344601237 +0800 Birth: -[root@centos7 /]# stat /mnt/sdb1/f2.txt  File: ‘/mnt/sdb1/f2.txt’  Size: 0               Blocks: 0          IO Block: 4096   regular empty fileDevice: 811h/2065d      Inode: 68          Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2021-02-23 10:11:00.817035877 +0800Modify: 2021-02-23 10:11:00.817035877 +0800Change: 2021-02-23 10:11:00.817035877 +0800 Birth: -[root@centos7 /]# cat /mnt/sdb1/f2.txt[root@centos7 /]# ll /mnt/sdb1 --time=atime -ttotal 4-rw-r--r-- 1 root root 6 Feb 23 10:11 f1.txt-rw-r--r-- 1 root root 0 Feb 23 10:11 f2.txt-rw-r--r-- 1 root root 0 Feb 23 10:11 f3.txt-rw-r--r-- 1 root root 0 Feb 23 10:11 f4.txt[root@centos7 /]# mount -o remount,relatime /mnt/sdb1       #改回relatime[root@centos7 /]# mount/dev/sdb1 on /mnt/sdb1 type xfs (rw,noatime,attr2,inode64,noquota)  #但不生效,why

centos8

1)默认挂载,访问文件,时间改变[root@centos8110 ~]# mount  #/data目录的时间权限为relatime/dev/sda5 on /data type xfs (rw,relatime,attr2,inode64,noquota)[root@centos8110 ~]# ll  /data --time=atime -t      #按访问时间排序total 16-rw-r--r-- 1 root root   64 Feb  8 02:23 sda.imgcrw-r--r-- 1 root root 1, 5 Feb  8 01:45 zero01crw-r--r-- 1 root root 1, 3 Feb  8 01:44 null01brw-r--r-- 1 root root 8, 1 Feb  8 01:39 partition-sda1-rw-r--r-- 1 root root 1003 Feb  1 21:49 passwd-rw-r--r-- 1 root root  150 Feb  1 21:33 sed.log-rw-r--r-- 1 root root 1080 Feb  1 21:12 passwd.bak[root@centos8110 ~]# cat /data/passwdbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin...省略...[root@centos8110 ~]# ll  /data --time=atime -ttotal 16-rw-r--r-- 1 root root 1003 Feb 23 14:23 passwd     #passwd文件的访问时间修改了-rw-r--r-- 1 root root   64 Feb 23 14:22 sda.imgcrw-r--r-- 1 root root 1, 5 Feb  8 14:45 zero01crw-r--r-- 1 root root 1, 3 Feb  8 14:44 null01brw-r--r-- 1 root root 8, 1 Feb  8 14:39 partition-sda1-rw-r--r-- 1 root root  150 Feb  2 10:33 sed.log-rw-r--r-- 1 root root 1080 Feb  2 10:12 passwd.bak[root@centos8110 ~]# stat /data/passwdAccess: 2021-02-23 14:23:07.591307881 +0800     #访问时间为今天Modify: 2021-02-02 10:48:57.880932327 +0800Change: 2021-02-02 10:48:57.881932346 +0800 Birth: -2)关闭访问时间,noatime,访问文件时,时间不变[root@centos8110 ~]# mount -o remount,noatime /data     #关闭访问时间[root@centos8110 ~]# mount/dev/sda5 on /data type xfs (rw,noatime,attr2,inode64,noquota)[root@centos8110 ~]# ll /data --time=atime -t   total 16-rw-r--r-- 1 root root 1003 Feb 23 14:23 passwd-rw-r--r-- 1 root root   64 Feb 23 14:22 sda.imgcrw-r--r-- 1 root root 1, 5 Feb  8 14:45 zero01crw-r--r-- 1 root root 1, 3 Feb  8 14:44 null01brw-r--r-- 1 root root 8, 1 Feb  8 14:39 partition-sda1-rw-r--r-- 1 root root  150 Feb  2 10:33 sed.log-rw-r--r-- 1 root root 1080 Feb  2 10:12 passwd.bak[root@centos8110 ~]# stat /data/sed.logAccess: 2021-02-02 10:33:26.639651099 +0800Modify: 2021-02-02 10:33:22.826580812 +0800Change: 2021-02-02 10:33:22.826580812 +0800[root@centos8110 ~]# cat /data/sed.log      #访问sed.log文件daemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/sync[root@centos8110 ~]# ll /data --time=atime -ttotal 16-rw-r--r-- 1 root root 1003 Feb 23 14:23 passwd-rw-r--r-- 1 root root   64 Feb 23 14:22 sda.imgcrw-r--r-- 1 root root 1, 5 Feb  8 14:45 zero01crw-r--r-- 1 root root 1, 3 Feb  8 14:44 null01brw-r--r-- 1 root root 8, 1 Feb  8 14:39 partition-sda1-rw-r--r-- 1 root root  150 Feb  2 10:33 sed.log        #访问时间未更新-rw-r--r-- 1 root root 1080 Feb  2 10:12 passwd.bak[root@centos8110 ~]# stat /data/sed.log                 #未更新Access: 2021-02-02 10:33:26.639651099 +0800Modify: 2021-02-02 10:33:22.826580812 +0800Change: 2021-02-02 10:33:22.826580812 +08003)重新加载访问时间[root@centos8110 ~]# mount -o remount,relatime /data[root@centos8110 ~]# mount/dev/sda5 on /data type xfs (rw,relatime,attr2,inode64,noquota)[root@centos8110 ~]# stat /data/sed.logAccess: 2021-02-02 10:33:26.639651099 +0800Modify: 2021-02-02 10:33:22.826580812 +0800Change: 2021-02-02 10:33:22.826580812 +0800[root@centos8110 ~]# cat /data/sed.logdaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/sync[root@centos8110 ~]# stat /data/sed.logAccess: 2021-02-23 14:41:38.206777189 +0800Modify: 2021-02-02 10:33:22.826580812 +0800Change: 2021-02-02 10:33:22.826580812 +0800[root@centos8110 ~]# ll /data --time=atime -ttotal 16-rw-r--r-- 1 root root  150 Feb 23 14:41 sed.log-rw-r--r-- 1 root root 1003 Feb 23 14:23 passwd备注:对于访问量大的网站来说,禁用noatime访问时间更新,会优化5%的访问性能。

范例:文件挂载,当U盘使用

1)初始化文件disk.img,格式化ext4文件系统,并挂载到/mnt/loop下[root@centos7 /]# dd if=/dev/zero of=/data/disk.img bs=1M count=100100+0 records in100+0 records out104857600 bytes (105 MB) copied, 0.524238 s, 200 MB/s[root@centos7 /]# ll /data/disk.img -h-rw-r--r-- 1 root root 100M Feb 23 14:58 /data/disk.img[root@centos7 /]# mkfs.ext4 /data/disk.imgmke2fs 1.42.9 (28-Dec-2013)Allocating group tables: doneWriting inode tables: doneCreating journal (4096 blocks): doneWriting superblocks and filesystem accounting information: done[root@centos7 /]# blkid /data/disk.img/data/disk.img: UUID="34dac92a-e905-4114-886d-0e48b1007635" TYPE="ext4"[root@centos7 /]# mkdir /mnt/loop[root@centos7 /]# mount /data/disk.img /mnt/loop[root@centos7 /]# ll /dev/loop*brw-rw---- 1 root disk  7,   0 Feb 23 14:59 /dev/loop0crw-rw---- 1 root disk 10, 237 Feb 23 14:59 /dev/loop-control[root@centos7 /]# dfFilesystem              1K-blocks     Used Available Use% Mounted on/dev/loop0                  95054     1550     86336   2% /mnt/loop[root@centos7 /]# losetup -a/dev/loop0: [64768]:33704142 (/data/disk.img)[root@centos7 /]# cp /etc/redhat-release /mnt/loop/[root@centos7 /]# ll //mnt/loop/-rw-r--r-- 1 root root    37 Feb 23 15:00 redhat-release[root@centos7 /]# cat /mnt/loop/redhat-releaseCentOS Linux release 7.8.2003 (Core)[root@centos7 /]# scp /data/disk.img 192.168.209.110:/dataroot@192.168.209.110's password:disk.img 2)复制到centos8系统下,挂载到一个目录中,就可以访问其中的文件了,相当于U盘使用。[root@centos8110 ~]# ll /data/disk.img -h-rw-r--r-- 1 root root 100M Feb 23 15:01 /data/disk.img[root@centos8110 ~]# blkid /data/disk.img       #同centos7下的UUID/data/disk.img: UUID="34dac92a-e905-4114-886d-0e48b1007635" TYPE="ext4"[root@centos8110 ~]# mkdir /mnt/disk;mount /data/disk.img /mnt/disk[root@centos8110 ~]# ll /mnt/disk               #可以看到centos7下的文件-rw-r--r-- 1 root root    37 Feb 23 15:00 redhat-release[root@centos8110 ~]# mount/data/disk.img on /mnt/disk type ext4 (rw,relatime)[root@centos8110 ~]# file /data/disk.img        #提示该文件是ext4文件系统/data/disk.img: Linux rev 1.0 ext4 filesystem data, UUID=34dac92a-e905-4114-886d-0e48b1007635 (needs journal recovery) (extents) (64bit) (huge files)
2.4.2 卸载文件系统 umount

卸载时:可使用设备,也可以使用挂载点

umount 设备名|挂载点umount /dev/sdb1umount /mnt/sdb1

卸载范例:

1)在该目录中,或文件正使用中,卸载失败[root@centos7 ~]# cd /mnt/test2[root@centos7 test2]# pwd/mnt/test2[root@centos7 test2]# umount /mnt/test2umount: /mnt/test2: target is busy.        (In some cases useful info about processes that use         the device is found by lsof(8) or fuser(1))2)其他终端访问该目录或文件的时候,卸载失败#打开一个终端,使用wang账号访问test2目录[root@centos7 ~]# su wang[wang@centos7 root]$ cd /mnt/test2[wang@centos7 test2]$ ls123  lost+found  sdb2.txt#查看哪些账号或终端在访问test2目录[root@centos7 ~]# lsof /dev/sdb2        #或lsof /mnt/test2COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEbash    38775 root  cwd    DIR   8,18     1024    2 /mnt/test2bash    57066 root  cwd    DIR   8,18     1024    2 /mnt/test2bash    57538 wang  cwd    DIR   8,18     1024    2 /mnt/test2[root@centos7 ~]# fuser -v /mnt/test2   #查看哪些用户或终端在访问                     USER        PID ACCESS COMMAND/mnt/test2:          root     kernel mount /mnt/test2                     root      38775 ..c.. bash                     root      57066 ..c.. bash                     wang      57538 ..c.. bash#此时,不能卸载[root@centos7 ~]# umount /mnt/test2umount: /mnt/test2: target is busy.        (In some cases useful info about processes that use         the device is found by lsof(8) or fuser(1))#使用km选项强制踢出,就可以卸载了         [root@centos7 ~]# fuser -km /mnt/test2/mnt/test2:          38775c 57066c 57538c[root@centos7 ~]# lsof /mnt/test2[root@centos7 ~]# umount /mnt/test2
2.4.3 查看挂载情况

查看挂载

#通过查看/etc/mtab文件显示当前已挂载的所有设备mount#查看内核追踪到的已挂载的所有设备cat /proc/mounts

查看挂载点情况:

findmnt MOUNT_POINT|device

范例:

[root@centos8110 ~]# mount/dev/sda5 on /data type xfs (rw,relatime,attr2,inode64,noquota)/dev/sda1 on /boot type ext4 (rw,relatime)/data/disk.img on /mnt/disk type ext4 (rw,relatime)[root@centos8110 ~]# findmnt /dataTARGET SOURCE    FSTYPE OPTIONS/data  /dev/sda5 xfs    rw,relatime,attr2,inode64,noquota[root@centos8110 ~]# findmnt /mnt/diskTARGET    SOURCE     FSTYPE OPTIONS/mnt/disk /dev/loop0 ext4   rw,relatime[root@centos8110 ~]# findmnt /etc       #未挂载[root@centos8110 ~]# echo $?1
2.4.4 练习

创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统 ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项

1)非交互式创建2G分区[root@centos7 ~]# echo -e 'n\np\n1\n\n+2G\nw\n' |fdisk /dev/sdb[root@centos7 ~]# fdisk -l /dev/sdb   Device Boot      Start         End      Blocks   Id  System/dev/sdb1            2048     4196351     2097152   83  Linux[root@centos7 ~]# lsblkNAME            MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda               8:0    0  20G  0 disk├─sda1            8:1    0   1G  0 part /boot└─sda2            8:2    0  19G  0 part  ├─centos-root 253:0    0  17G  0 lvm  /  └─centos-swap 253:1    0   2G  0 lvm  [SWAP]sdb               8:16   0   3G  0 disk└─sdb1            8:17   0   2G  0 part         #分配的2G分区sr0              11:0    1  10G  0 rom[root@centos7 ~]# blkid     #无/dev/sdb1/dev/sda1: UUID="4d6ce1ba-16ec-4d37-951c-afd012231267" TYPE="xfs"/dev/sda2: UUID="H4mKHO-71FU-bAUR-InNX-ji0g-nuN3-BjOQLe" TYPE="LVM2_member"/dev/mapper/centos-root: UUID="5753dc79-bc4e-4514-9eb7-56e5bbaa5dff" TYPE="xfs"/dev/mapper/centos-swap: UUID="da97a9bd-58d9-4770-92d8-07b6bd64ac1c" TYPE="swap"2)创建ext4文件类型,块大小2048byte,预留空间1%,卷标TEST[root@centos7 ~]# mkfs.ext4 -b 2048 -m 1 -L TEST /dev/sdb1[root@centos7 ~]# tune2fs -l /dev/sdb1      #查看分区的元数据tune2fs 1.42.9 (28-Dec-2013)Filesystem volume name:   TEST                  #卷标TESTLast mounted on:          <not available>Filesystem UUID:          b9c3f582-b345-4732-80d0-173e7f2acf92Filesystem magic number:  0xEF53Filesystem revision #:    1 (dynamic)Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isizeFilesystem flags:         signed_directory_hashDefault mount options:    user_xattr acl            #默认已开通acl权限Filesystem state:         cleanErrors behavior:          ContinueFilesystem OS type:       LinuxInode count:              131072Block count:              1048576Reserved block count:     10485                     #预留1%Free blocks:              994651Free inodes:              131061First block:              0Block size:               2048                      #块大小为2048Fragment size:            2048Group descriptor size:    64Reserved GDT blocks:      512Blocks per group:         16384Fragments per group:      16384Inodes per group:         2048Inode blocks per group:   256Flex block group size:    16Filesystem created:       Wed Feb 24 14:35:38 2021Last mount time:          n/aLast write time:          Wed Feb 24 14:35:39 2021Mount count:              0Maximum mount count:      -1Last checked:             Wed Feb 24 14:35:38 2021Check interval:           0 (<none>)Lifetime writes:          65 MBReserved blocks uid:      0 (user root)Reserved blocks gid:      0 (group root)First inode:              11Inode size:               256Required extra isize:     28Desired extra isize:      28Journal inode:            8Default directory hash:   half_md4Directory Hash Seed:      b80119b1-d98a-475c-ba60-25319b966059Journal backup:           inode blocks[root@centos7 ~]# lsblk -f      #查看文件类型和卷标UUID等NAME            FSTYPE      LABEL    UUID                                   MOUNTPOINTsdb└─sdb1          ext4        TEST     b9c3f582-b345-4732-80d0-173e7f2acf923)自动挂载到/test目录[root@centos7 ~]# mkdir /test[root@centos7 ~]# blkid /dev/sdb1/dev/sdb1: LABEL="TEST" UUID="b9c3f582-b345-4732-80d0-173e7f2acf92" TYPE="ext4"[root@centos7 ~]# vim /etc/fstab[root@centos7 ~]# cat /etc/fstab        #使用UUID挂载到/etc/fstab中UUID=b9c3f582-b345-4732-80d0-173e7f2acf92   /test     ext4    defaults        0 0[root@centos7 ~]# mount -a[root@centos7 ~]# mount/dev/sdb1 on /test type ext4 (rw,relatime,data=ordered)[root@centos7 ~]# cp /etc/redhat-release /test[root@centos7 ~]# ll /test-rw-r--r-- 1 root root    37 Feb 24 14:56 redhat-release[root@centos7 ~]# reboot        #重启后依然有效[root@centos7 ~]# ll /test-rw-r--r-- 1 root root    37 Feb 24 14:56 redhat-release
3 RAID3.1 什么是RAID

RAID:Redundant Arrays of Inexpensive(Independent) Disks 廉价(独立)磁盘冗余阵列1988年由加利福尼亚大学伯克利分校(University of California-Berkeley) “A Case for RedundantArrays of Inexpensive Disks”,多个磁盘合成一个”阵列“来提供更好的性能、冗余,或者两者都提供

磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段或条带(striping)的方式储存在不同的磁盘中。存取数据时,阵列中的相关磁盘一起动作,大幅减低数据的存取时间,同时有更佳的空间利用率。磁盘阵列利用的不同的技术称为RAID level,不同的level针对不同的系统及应用,以解决数据安全的问题。简单来说,RAID把多个硬盘组合成为一个逻辑扇区。因此,操作系统只会把它当作一个硬盘。

RAID功能实现

  • 提高IO能力,磁盘并行读写
  • 提高耐用性,磁盘冗余算法来实现

RAID实现的方式

  • 外接式磁盘阵列:通过扩展卡提供适配能力
  • 内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
  • 软件RAID:通过OS实现,比如:群晖的NAS
3.2 常用RAID级别

级别:多块磁盘组织在一起的工作方式有所不同

RAID-0:条带卷,strip

RAID-1:镜像卷,mirror

RAID-5、RAID-6、RAID-10、RAID-01、RAID-50等

3.2.1 RAID-0

RAID 0 数据分条(条带)盘 --- 只需要2块以上的硬盘,成本低,可以提高整个磁盘的性能和吞吐量。

striping(条带模式),至少需要两块磁盘,做RAID分区的大小最好是相同的(可以充分发挥并优势);而数据分散存储于不同的磁盘上,在读写的时候可以实现并发,所以相对其读写性能最好;但是没有容错功能,任何一个磁盘的损坏将损坏全部数据。

  • 以 chunk 单位,读写数据
  • 读、写性能提升
  • 可用空间:N*min(S1,S2,...)---即100%
  • 无容错能力----任何一块硬盘损坏都会丢失数据
  • 最少磁盘数:2, 2+

3.2.2 RAID-1

RAID 1 磁盘镜像盘 --- 数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件。

mirroring(镜 像卷),至少需要两块硬盘,raid大小等于两个raid分区中最小的容量(最好将分区大小分为一样),可增加热备盘提供一定的备份能力;

数据有冗余,在存储时同时写入两块硬盘,实现了数据备份;

但相对降低了写入性能,但是读取数据时可以并发,几乎类似于raid-0的读取效率;

  • 读性能提升、写性能略有下降
  • 可用空间:1*min(S1,S2,...)---即50%
  • 有冗余能力
  • 最少磁盘数:2, 2N

3.2.3 RAID-4(基本不用)

RAID 3 奇偶校验码的并行传送 --- 只能查错不能纠错

RAID 4 带奇偶校验码的独立磁盘结构 --- 对数据的访问是按数据块进行的,也就是按磁盘进行的,RAID3是一次一横条,而RAID4一次一竖条。

  • 多块数据盘异或运算值存于专用校验盘
  • 磁盘利用率 (N-1)/N
  • 有冗余能力
  • 至少3块硬盘才可以实现
3.2.4 RAID-5

需要三块或以上硬盘,可以提供热备盘实现故障的恢复;采用奇偶效验,可靠性强,且只有同时损坏两块硬盘时数据才会完全损坏,只损坏一块硬盘时,系统会根据存储的奇偶校验位重建数据,临时提供服务;此时如果有热备盘,系统还会自动在热备盘上重建故障磁盘上的数据。

  • 读、写性能提升
  • 可用空间:(N-1)*min(S1,S2,...)----即(n-1)/n
  • 有容错能力:允许最多1块磁盘损坏
  • 最少磁盘数:3, 3+

3.2.5 RAID-6

RAID 6 带有两种分布存储的奇偶校验码的独立磁盘结构

  • 读、写性能提升
  • 可用空间:(N-2)*min(S1,S2,...)----即(n-2)/n
  • 有容错能力:允许最多2块磁盘损坏
  • 最少磁盘数:4, 4+

3.2.6 RAID-10

高可靠性与高效磁盘结构

  • 读、写性能提升
  • 可用空间:N*min(S1,S2,...)/2,只有50%磁盘利用率
  • 有容错能力:每组镜像最多只能坏一块
  • 最少磁盘数:4, 4+

3.2.7 RAID-01

多块磁盘先实现RAID0,再组合成RAID1,也只有50%磁盘利用率

RAID1+0与RAID0+1的区别:

RAID 1+0是先镜射再分区数据,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。RAID 0+1则是跟RAID 1+0的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。性能上,RAID 0+1比RAID 1+0有着更快的读写速度。可靠性上,当RAID 1+0有一个硬盘受损,其余三个硬盘会继续运作。RAID 0+1 只要有一个硬盘受损,同组RAID 0的另一只硬盘亦会停止运作,只剩下两个硬盘运作,可靠性较低。因此,RAID 10远较RAID 01常用,零售主板绝大部份支持RAID 0/1/5/10,但不支持RAID 01。

3.2.8 RAID-50

多块磁盘先实现RAID5,再组合成RAID0


常见 RAID 总结

RAID Level性能提升冗余能力空间利用率磁盘数量(块)RAID 0读、写提升无100%至少2RAID 1读性能提升,写性能下降有50%至少2RAID 5读、写提升有(n-1)/n%至少3RAID 1+0读、写提升有50%至少4RAID 0+1读、写提升有50%至少4RAID 5+0读、写提升有(n-2)/n%至少64、逻辑卷4.1 LVM介绍

LVM: Logical Volume Manager 可以允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小,
允许在多个物理设备间重新组织文件系统,LVM可以弹性的更改LVM的容量。

通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备
中的PE加到LV中以加大容量。

实现过程

  • 将设备指定为物理卷
  • 用一个或者多个物理卷来创建一个卷组,物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
  • 在物理卷上创建的逻辑卷, 是由物理区域(PE)组成
  • 可以在逻辑卷上创建文件系统并挂载

第一个逻辑卷对应设备名:/dev/dm-#

dm: device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块

软链接:

  • /dev/mapper/VG_NAME-LV_NAME
  • /dev/VG_NAME/LV_NAME

范例:查看逻辑卷

/dev/mapper/vol0-root/dev/vol0/root[root@centos7 ~]# dfFilesystem              1K-blocks    Used Available Use% Mounted ondevtmpfs                   486084       0    486084   0% /devtmpfs                      497840       0    497840   0% /dev/shmtmpfs                      497840    7956    489884   2% /runtmpfs                      497840       0    497840   0% /sys/fs/cgroup/dev/mapper/centos-root  17811456 2938680  14872776  17% //dev/sda1                 1038336  197052    841284  19% /boottmpfs                       99572       0     99572   0% /run/user/0[root@centos7 ~]# ll /dev/mapper/centos-rootlrwxrwxrwx 1 root root 7 Feb 24 16:42 /dev/mapper/centos-root -> ../dm-0[root@centos7 ~]# ll /dev/mapper/centos-swaplrwxrwxrwx 1 root root 7 Feb 24 16:42 /dev/mapper/centos-swap -> ../dm-1[root@centos7 ~]# lvs  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert  root centos -wi-ao---- <17.00g  swap centos -wi-ao----   2.00g[root@centos7 ~]# blkid/dev/sda1: UUID="4d6ce1ba-16ec-4d37-951c-afd012231267" TYPE="xfs"/dev/sda2: UUID="H4mKHO-71FU-bAUR-InNX-ji0g-nuN3-BjOQLe" TYPE="LVM2_member"/dev/sr0: UUID="2018-11-26-14-22-58-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"/dev/mapper/centos-root: UUID="5753dc79-bc4e-4514-9eb7-56e5bbaa5dff" TYPE="xfs"/dev/mapper/centos-swap: UUID="da97a9bd-58d9-4770-92d8-07b6bd64ac1c" TYPE="swap"[root@centos7 ~]# cat /etc/fstab/dev/mapper/centos-root                     /     xfs     defaults        0 0UUID=4d6ce1ba-16ec-4d37-951c-afd012231267   /boot xfs     defaults        0 0/dev/mapper/centos-swap                     swap  swap    defaults        0 0
4.2 实现逻辑卷

相关工具来自于 lvm2 包

[root@centos7 ~]# which pvcreate/usr/sbin/pvcreate[root@centos7 ~]# rpm -qf `which pvcreate`lvm2-2.02.186-7.el7_8.2.x86_64#如果没有lvm2,yum安装即可[root@centos8 ~]#yum -y install lvm2
4.2.1 pv管理工具

显示pv信息

pvs         #简要pv信息显示pvdisplay

创建pv

pvcreate /dev/DEVICE

删除pv

pvremove /dev/DEVICE
4.2.2 vg管理工具

显示卷组

vgsvgdisplay

创建卷组

vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath[PhysicalDevicePath...]

管理卷组

vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]

删除卷组

  • 先做pvmove
  • 再做vgremove
4.2.3 lv管理工具

显示逻辑卷

lvsLvdisplay

创建逻辑卷

lvcreate -L|--size Size[m|UNIT] VG        [ -l|--extents Number[PERCENT] ]lvcreate -L #[mMgGtT] -n NAME VolumeGrouplvcreate -l +PE的个数,如有1000个PE,每个为4M,就是分配4Glvcreate -L +分配的数值M或G等,如1000M,就是分配1G

范例:

lvcreate -l 60%VG -n mylv testvglvcreate -l 100%FREE -n yourlv testvg

删除逻辑卷

lvremove /dev/VG_NAME/LV_NAME

重设文件系统大小

fsadm [options] resize device [new_size[BKMGTEP]]resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]xfs_growfs /mountpoint

范例:

#创建物理卷pvcreate /dev/sda3#为卷组分配物理卷vgcreate vg0 /dev/sda3#从卷组创建逻辑卷lvcreate -L 256M -n data vg0#mkfs.xfs /dev/vg0/data#挂载mount /dev/vg0/data /mnt/data#

实例:

1)增加两块硬盘sdb3G,sdc2G,分区并调整为lvm卷[root@centos7 ~]# fdisk /dev/sdb        #交互式分区Command (m for help): nSelect (default p): pPartition number (1-4, default 1): 1Command (m for help): tSelected partition 1Hex code (type L to list all codes): 8e                 #lvm卷Changed type of partition 'Linux' to 'Linux LVM'Command (m for help): w[root@centos7 ~]# fdisk -l /dev/sdb   Device Boot      Start         End      Blocks   Id  System/dev/sdb1            2048     2099199     1048576   8e  Linux LVM   #非交互式分区[root@centos7 ~]# echo -e 'n\np\n1\n\n+500M\nt\n8e\nw\n' |fdisk /dev/sdc[root@centos7 ~]# lsblkNAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsda               8:0    0   20G  0 disk├─sda1            8:1    0    1G  0 part /boot└─sda2            8:2    0   19G  0 part  ├─centos-root 253:0    0   17G  0 lvm  /  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]sdb               8:16   0    3G  0 disk└─sdb1            8:17   0    1G  0 partsdc               8:32   0    2G  0 disk└─sdc1            8:33   0  500M  0 partsr0              11:0    1   10G  0 rom[root@centos7 ~]# hexdump -C /dev/sdc -n 512000001b0  00 00 00 00 00 00 00 00  db bc b6 62 00 00 00 20  |...........b... |000001c0  21 00 8e dd 1e 3f 00 08  00 00 00 a0 0f 00 00 00  |!....?..........|000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|00000200[root@centos7 ~]#2)创建物理卷pvcreate[root@centos7 ~]# pvcreate /dev/sdc1  Physical volume "/dev/sdc1" successfully created.[root@centos7 ~]# pvcreate /dev/sdb1WARNING: swap signature detected on /dev/sdb1 at offset 4086. Wipe it? [y/n]: y  Wiping swap signature on /dev/sdb1.       #sdb1上原有其他分区格式或系统,才有此提示  Physical volume "/dev/sdb1" successfully created.[root@centos7 ~]# pvs       #查看新增的两个物理卷sdb1和sdb2  PV         VG     Fmt  Attr PSize   PFree  /dev/sda2  centos lvm2 a--  <19.00g      0  /dev/sdb1         lvm2 ---    1.00g   1.00g  /dev/sdc1         lvm2 ---  500.00m 500.00m[root@centos7 ~]# pvdisplay     #查看物理卷的详细信息  "/dev/sdb1" is a new physical volume of "1.00 GiB"  --- NEW Physical volume ---  PV Name               /dev/sdb1  VG Name  PV Size               1.00 GiB  Allocatable           NO  PE Size               0  Total PE              0  Free PE               0  Allocated PE          0  PV UUID               g7QD6p-hpTr-Ha0K-165n-mEqm-NS30-WiBe3t  "/dev/sdc1" is a new physical volume of "500.00 MiB"  --- NEW Physical volume ---  PV Name               /dev/sdc1  VG Name  PV Size               500.00 MiB  Allocatable           NO  PE Size               0  Total PE              0  Free PE               0  Allocated PE          0  PV UUID               b11Tex-iP7p-752f-QJD1-2YU3-sR7H-ujZ0UJ3)创建卷组vgcreate[root@centos7 ~]# vgs   #查看安装系统时自动分配的卷组,卷组名是centos  VG     #PV #LV #SN Attr   VSize   VFree  centos   1   2   0 wz--n- <19.00g    0#把设备sdb1和sdc1创建名为vg_mysql的卷组[root@centos7 ~]# vgcreate vg_mysql /dev/sdb1 /dev/sdc1  Volume group "vg_mysql" successfully created[root@centos7 ~]# vgs   查看创建的卷组  VG       #PV #LV #SN Attr   VSize   VFree  centos     1   2   0 wz--n- <19.00g    0  vg_mysql   2   0   0 wz--n-   1.48g 1.48g[root@centos7 ~]# vgdisplay     #卷组的详细信息  --- Volume group ---  VG Name               vg_mysql        #新建的卷组,名称是vg_mysql  System ID  Format                lvm2            #版本是lvm2  Metadata Areas        2  Metadata Sequence No  1  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                0  Open LV               0  Max PV                0  Cur PV                2  Act PV                2  VG Size               1.48 GiB        #卷组总容量大小:379*4M/1024=1.48G  PE Size               4.00 MiB        #每块物理卷大小  Total PE              379             #物理卷个数  Alloc PE / Size       0 / 0           #已分配的物理卷  Free  PE / Size       379 / 1.48 GiB  #未分配的物理卷  VG UUID               e2zXZ8-jeGv-MZlU-9NmQ-3roN-B2vX-0sNfTD  --- Volume group ---  VG Name               centos      #原系统自带逻辑卷  System ID  Format                lvm2...省略...4)创建逻辑卷lvcreate#-n 逻辑卷的名称#-L 新建的逻辑卷大小,直接输入数值即可#-l 新建的逻辑卷大小,但是通过PE的数量计算出来的;-l +PE数量[root@centos7 ~]# lvcreate -n lv_data -L 900M vg_mysql  Logical volume "lv_data" created.[root@centos7 ~]# pvdisplay     #查看这900M来自哪个硬盘  --- Physical volume ---  PV Name               /dev/sdb1  VG Name               vg_mysql  PV Size               1.00 GiB / not usable 4.00 MiB  Allocatable           yes  PE Size               4.00 MiB  Total PE              255         #总的大小  Free PE               30          #剩余大小,即使用了(255-30)*4M=900M  Allocated PE          225  PV UUID               g7QD6p-hpTr-Ha0K-165n-mEqm-NS30-WiBe3t  --- Physical volume ---  PV Name               /dev/

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net