Linux文件系统与LVM精讲

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件系统与LVM精讲相关的知识,希望对你有一定的参考价值。

一、管理文件系统

1、创建EXT4文件系统

mkfs(Make Filesystem)命令用于创建文件系统(格式化)。mkfs命令的基本语法格式如下:
技术图片

1)mkfs应用举例

将/dev/sdb1分区格式化为EXT4文件系统。

         <!--自行规划分区-->
[root@centos01 ~]# 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-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):+5G      
分区 1 已设置为 Linux 类型,大小设为 5 GiB

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

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

   设备 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.
正在同步磁盘。

[root@centos01 ~]# mkfs -t ext4 /dev/sdb1 <!--将/dev/sdb1格式化为EXT4文件系统-->
[root@centos01 ~]# mkfs.ext4 /dev/sdb1   <!--或执行第二种方式-->
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 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

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

2、创建Swap交换文件系统

使用mkswap命令创建交换文件系统;基本语法格式如下:
技术图片

1)mkswap应用举例

将/dev/sdb2分区创建为交换分区。

[root@centos01 ~]# mkswap /dev/sdb2  <!--将sdb2格式化为swap分区-->
mkswap: /dev/sdb2: warning: wiping old swap signature.
正在设置交换空间版本 1,大小 = 5242876 KiB
无标签,UUID=a86ecd38-3058-4d92-9688-346cb9407915
[root@centos01 ~]# cat /proc/meminfo | grep SwapTotal  <!--查看swap分区大小-->
SwapTotal:       4194300 kB
[root@centos01 ~]# swapon /dev/sdb2      <!--扩展swap分区-->
[root@centos01 ~]# cat /proc/meminfo | grep SwapTotal  
      <!--查看扩展后的swap分区大小-->
SwapTotal:       9437176 kB
[root@centos01 ~]# swapoff /dev/sdb2 <!--取消扩展swap分区-->
[root@centos01 ~]# cat /proc/meminfo | grep SwapTotal   
       <!--查看取消扩展后的swap分区大小-->
SwapTotal:       4194300 kB

3、挂载、卸载文件系统

技术图片

1)挂载硬盘分区

mount命令挂载文件系统、ISO镜像;mount基本语法格式如下:
技术图片

应用举例:

[root@centos01 ~]# mkdir /sdb1       <!--创建挂载目录-->
[root@centos01 ~]# mount /dev/sdb1 /sdb1/   <!--挂载/dev/sdb1分区-->
[root@centos01 ~]# mount     <!--查看挂载分区-->
…………      <!--此处省略部分内容-->
/dev/sdb1 on /sdb1 type ext4 (rw,relatime,data=ordered) 

[root@centos01 ~]# df -Th      <!--或者执行此命令查看-->
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        76G  3.6G   73G    5% /
devtmpfs       devtmpfs  474M     0  474M    0% /dev
tmpfs          tmpfs     489M     0  489M    0% /dev/shm
tmpfs          tmpfs     489M  7.0M  482M    2% /run
tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda1      xfs       197M  136M   61M   70% /boot
tmpfs          tmpfs      98M     0   98M    0% /run/user/0
/dev/sdb1      ext4      4.8G   20M  4.6G    1% /sdb1

2)卸载已挂载的硬盘分区

[root@centos01 ~]# umount /sdb1/   <!--卸载已挂载的文件系统-->
[root@centos01 ~]# df -Th        <!--验证是否卸载成功-->
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        76G  3.7G   73G    5% /
devtmpfs       devtmpfs  474M     0  474M    0% /dev
tmpfs          tmpfs     489M     0  489M    0% /dev/shm
tmpfs          tmpfs     489M  7.0M  482M    2% /run
tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda1      xfs       197M  136M   61M   70% /boot
tmpfs          tmpfs      98M     0   98M    0% /run/user/0

3)挂载ISO镜像

[root@centos01 ~]# ls
anaconda-ks.cfg  ansible.iso  initial-setup-ks.cfg
[root@centos01 ~]# mount -o loop ansible.iso /mnt/ 
           <!--挂载ISO镜像到指定目录-->
mount: /dev/loop0 写保护,将以只读方式挂载

[root@centos01 ~]# mount     <!--查看挂载的ISO镜像-->
…………      <!--此处省略部分内容-->
/root/ansible.iso on /mnt type iso9660 (ro,relatime)
[root@centos01 ~]# df -Th      <!--查看ISO镜像是否挂载成功-->
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        76G  3.7G   73G    5% /
devtmpfs       devtmpfs  474M     0  474M    0% /dev
tmpfs          tmpfs     489M     0  489M    0% /dev/shm
tmpfs          tmpfs     489M  7.0M  482M    2% /run
tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda1      xfs       197M  136M   61M   70% /boot
tmpfs          tmpfs      98M     0   98M    0% /run/user/0
/dev/loop0     iso9660    83M   83M     0  100% /mnt

4)卸载已挂载的ISO镜像

[root@centos01 ~]# umount /mnt/   <!--卸载已挂载的ISO镜像-->
[root@centos01 ~]# df -Th          <!--验证是否卸载成功-->
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        76G  3.7G   73G    5% /
devtmpfs       devtmpfs  474M     0  474M    0% /dev
tmpfs          tmpfs     489M     0  489M    0% /dev/shm
tmpfs          tmpfs     489M  7.0M  482M    2% /run
tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda1      xfs       197M  136M   61M   70% /boot
tmpfs          tmpfs      98M     0   98M    0% /run/user/0

4、设置文件系统的自动挂载

/etc/fstab配置文件包含需要开机后自动挂载的文件系统记录;示例如下:
技术图片

1)自动挂载硬盘分区

[root@centos01 ~]# mkfs.ext4 /dev/sdb1
         <!--将/dev/sdb1分区格式化为EXT4文件系统-->
[root@centos01 ~]# vim /etc/fstab  <!--编辑开机自动挂载配置文件-->
…………
/dev/sdb1                                /sdb1                    ext4    defaults        0 0         <!--添加自动挂载的硬盘分区及挂载目录-->
[root@centos01 ~]# df -Th    <!--重启计算机查看是否自动挂载-->
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        76G  3.6G   73G    5% /
devtmpfs       devtmpfs  474M     0  474M    0% /dev
tmpfs          tmpfs     489M     0  489M    0% /dev/shm
tmpfs          tmpfs     489M  7.0M  482M    2% /run
tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sdb1      ext4      4.8G   20M  4.6G    1% /sdb1
/dev/sda1      xfs       197M  136M   61M   70% /boot
tmpfs          tmpfs      98M     0   98M    0% /run/user/0
[root@centos01 ~]# cat /proc/meminfo | grep SwapTotal  
                  <!--自动挂载swap分区-->
SwapTotal:       4194300 kB
[root@centos01 ~]# vim /etc/fstab<!--编辑开机自动挂载配置文件-->
…………
/dev/sdb1                                 /sdb1                   ext4    defaults        0 0   
/dev/sdb2                                 swap                    swap    defaults        0 0       <!--添加此行-->
[root@centos01 ~]# cat /proc/meminfo | grep SwapTotal   
            <!--重新启动计算机验证是否挂载成功-->
SwapTotal:       9437176 kB

2)自动挂载ISO镜像

[root@centos01 ~]# ls
anaconda-ks.cfg  ansible.iso  initial-setup-ks.cfg
[root@centos01 ~]# mount -o loop ansible.iso /mnt/ <!--挂载ISO镜像-->
mount: /dev/loop0 写保护,将以只读方式挂载
[root@centos01 ~]# mount    <!--查看挂载信息-->
…………
/root/ansible.iso on /mnt type iso9660 (ro,relatime)  <!--查看设备类型-->
[root@centos01 ~]# umount /mnt/  <!--卸载已挂载的ISO镜像-->
[root@centos01 ~]# vim /etc/fstab <!--编辑开机自动挂载配置文件-->
…………
/dev/sdb1                                 /sdb1                   ext4    defaults        0 0   
/dev/sdb2                                 swap                    swap    defaults        0 0
/root/ansible.iso                         /mnt                   iso9660  defaults        0 0       <!--添加此行-->
[root@centos01 ~]# df -Th       
         <!--重启计算机验证ISO镜像是否自动挂载成功-->
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        76G  3.7G   73G    5% /
devtmpfs       devtmpfs  474M     0  474M    0% /dev
tmpfs          tmpfs     489M     0  489M    0% /dev/shm
tmpfs          tmpfs     489M  7.0M  482M    2% /run
tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/loop0     iso9660    83M   83M     0  100% /mnt
/dev/sdb1      ext4      4.8G   20M  4.6G    1% /sdb1
/dev/sda1      xfs       197M  136M   61M   70% /boot
tmpfs          tmpfs      98M     0   98M    0% /run/user/0

5、查看磁盘使用情况

df命令的基本语法格式如下:
技术图片

应用举例如下:

[root@centos01 ~]# df -Th
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        76G  3.7G   73G    5% /
devtmpfs       devtmpfs  474M     0  474M    0% /dev
tmpfs          tmpfs     489M     0  489M    0% /dev/shm
tmpfs          tmpfs     489M  7.0M  482M    2% /run
tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda1      xfs       197M  136M   61M   70% /boot
tmpfs          tmpfs      98M     0   98M    0% /run/user/0

二、管理LVM逻辑卷

1、LVM概述

Logical Volume Manager,逻辑卷管理。

1)LVM作用

动态调整磁盘容量,从而提高磁盘管理的灵活性。注意:/boot分区用于存放引导文件,不能基于LVM创建。

2)图形界面管理工具

system-config-lvm

2、LVM机制的基本概念

PV(Physical Volume,物理卷):整个硬盘,或使用fdisk等工具建立的普通分区;包括许多默认4MB大小的PE(Physical Extent,基本单元)。
VG(Volume Group,卷组):一个或多个物理卷组合而成的整体。
LV(Logical Volume,逻辑卷):从卷组中分割出的一块空间,用于建立文件系统。
技术图片

3、LVM的管理命令

1)常见的LVM管理命令

技术图片

2)管理LVM的主要命令

技术图片

4、LVM应用案例

1)自行添加两块硬盘,使用fdisk命令规划两个分区,将类型设置为“8e”

[root@centos01 ~]# fdisk -l /dev/sdb /dev/sdc | grep "LVM"
/dev/sdb1            2048    83886079    41942016   8e  Linux LVM
/dev/sdc1            2048    83886079    41942016   8e  Linux LVM

2)创建物理卷pvcreate

[root@centos01 ~]# pvcreate /dev/sdb1 /dev/sdc1
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc1" successfully created.

3)创建卷组vgcreate

[root@centos01 ~]# vgcreate mail_store /dev/sdb1 /dev/sdc1
  Volume group "mail_store" successfully created

4)创建逻辑卷lvcreate

[root@centos01 ~]# lvcreate -L 20G -n mbox mail_store
  Logical volume "mbox" created.
[root@centos01 ~]# mkfs -t ext4 /dev/mail_store/mbox
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 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

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成   

5)为逻辑卷扩容

[root@centos01 ~]# lvextend -L +5G /dev/mail_store/mbox 
  Size of logical volume mail_store/mbox changed from 20.00 GiB (5120 extents) to 25.00 GiB (6400 extents).
  Logical volume mail_store/mbox successfully resized.
[root@centos01 ~]# 
[root@centos01 ~]# resize2fs /dev/mail_store/mbox 
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mail_store/mbox to 6553600 (4k) blocks.
The filesystem on /dev/mail_store/mbox is now 6553600 blocks long.

———————— 本文至此结束,感谢阅读 ————————

以上是关于Linux文件系统与LVM精讲的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统下磁盘配额软RAID及LVM的配置与管理

解析Linux中LVM与磁盘配额

Linux的LVM系统与磁盘配额

Linux磁盘挂载与RAID和LVM

[Linux]LVM扩展卷

LVM基本介绍与常用命令