Linux文件系统与LVM精讲

一、管理文件系统

1、创建EXT4文件系统

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

1)mkfs应用举例

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

         <!--自行规划分区-->
[[email protected] ~]# 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.
正在同步磁盘。

[[email protected] ~]# mkfs -t ext4 /dev/sdb1 <!--将/dev/sdb1格式化为EXT4文件系统-->
[[email protected] ~]# 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分区创建为交换分区。

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

3、挂载、卸载文件系统

1)挂载硬盘分区

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

应用举例:

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

[[email protected] ~]# 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)卸载已挂载的硬盘分区

[[email protected] ~]# umount /sdb1/   <!--卸载已挂载的文件系统-->
[[email protected] ~]# 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镜像

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

[[email protected] ~]# mount     <!--查看挂载的ISO镜像-->
…………      <!--此处省略部分内容-->
/root/ansible.iso on /mnt type iso9660 (ro,relatime)
[[email protected] ~]# 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镜像

[[email protected] ~]# umount /mnt/   <!--卸载已挂载的ISO镜像-->
[[email protected] ~]# 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)自动挂载硬盘分区

[[email protected] ~]# mkfs.ext4 /dev/sdb1
         <!--将/dev/sdb1分区格式化为EXT4文件系统-->
[[email protected] ~]# vim /etc/fstab  <!--编辑开机自动挂载配置文件-->
…………
/dev/sdb1                                /sdb1                    ext4    defaults        0 0         <!--添加自动挂载的硬盘分区及挂载目录-->
[[email protected] ~]# 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
[[email protected] ~]# cat /proc/meminfo | grep SwapTotal
                  <!--自动挂载swap分区-->
SwapTotal:       4194300 kB
[[email protected] ~]# vim /etc/fstab<!--编辑开机自动挂载配置文件-->
…………
/dev/sdb1                                 /sdb1                   ext4    defaults        0 0
/dev/sdb2                                 swap                    swap    defaults        0 0       <!--添加此行-->
[[email protected] ~]# cat /proc/meminfo | grep SwapTotal
            <!--重新启动计算机验证是否挂载成功-->
SwapTotal:       9437176 kB

2)自动挂载ISO镜像

[[email protected] ~]# ls
anaconda-ks.cfg  ansible.iso  initial-setup-ks.cfg
[[email protected] ~]# mount -o loop ansible.iso /mnt/ <!--挂载ISO镜像-->
mount: /dev/loop0 写保护,将以只读方式挂载
[[email protected] ~]# mount    <!--查看挂载信息-->
…………
/root/ansible.iso on /mnt type iso9660 (ro,relatime)  <!--查看设备类型-->
[[email protected] ~]# umount /mnt/  <!--卸载已挂载的ISO镜像-->
[[email protected] ~]# 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       <!--添加此行-->
[[email protected] ~]# 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命令的基本语法格式如下:

应用举例如下:

[[email protected] ~]# 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”

[[email protected] ~]# 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

[[email protected] ~]# pvcreate /dev/sdb1 /dev/sdc1
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc1" successfully created.

3)创建卷组vgcreate

[[email protected] ~]# vgcreate mail_store /dev/sdb1 /dev/sdc1
  Volume group "mail_store" successfully created

4)创建逻辑卷lvcreate

[[email protected] ~]# lvcreate -L 20G -n mbox mail_store
  Logical volume "mbox" created.
[[email protected] ~]# 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)为逻辑卷扩容

[[email protected] ~]# 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.
[[email protected] ~]#
[[email protected] ~]# 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.

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

原文地址:https://blog.51cto.com/14156658/2471569

时间: 2024-08-17 21:34:15

Linux文件系统与LVM精讲的相关文章

Linux 文件系统之LVM详解

LVM是 Logical Volume Manager逻辑卷管理的简写,主要功能对卷能够进行方便的动态扩展和缩减,大提高了磁盘管理的灵活性,工作原理大概如下几点1.物理磁盘被格式化为PV(Physical Volume) 物理卷,空间被划分为一个个的PE(Physical Extend) 物理拓展2.把PV加入到VG(Volume Group) 卷组中,在VG中以PE的形式展示3.LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘,但都是同一个VG中PE4.LV现在就直接

Linux NTP服务器搭建精讲

Linux NTP服务器  (时间服务器) Date –s 22:12:30   # 设置时间 闰秒  7月1日07:59:60秒 在这个时候,要关闭ntp服务 1.1. 软件安装 所需软件:默认已安装 yum install ntp -y ntpdate-4.2.6p5-1.el6.centos.i686 fontpackages-filesystem-1.41-1.1.el6.noarch ntp-4.2.6p5-1.el6.centos.i686 1.2. 配置NTP 配置文件:   vi

Linux高频命令精讲(三)

[教程主题]:2.Linux高频命令精讲 [2.1]Linux的运行方式 图形运行方式 - 本地使用KDE/Gnome集成环境 - 运行X Server远程使用图形环境 命令行(字符运行)方式 - 本地虚拟终端 - 使用Telnet远程登录 - 使用SSH远程登录 [2.2]字符界面的使用 为什么要使用字符工作方式 - 可以高效率的完成任务 - 远程登录操作均使用字符界面 - 节省系统资源 进入字符模式的方法 - 图形环境下,右键桌面  —> 终端 - 系统启动后直接进入字符模式 - 远程tel

《Linux系统精讲》学习总结(二)

本次总结我将采取总结性,对比性的方式一目了然的展示出来,首先将所有的命令总结在一起,然后对比性的总结部分知识点,最后谈谈本周的学习体会. 一.Linux系统精讲常用命令 格式:命令作用 命令 :命令语法:#注释说明或者补充 例如:创建目录 mkdir:mkdir -m/p 目录名称: 创建目录 mkdir:mkdir -m/p 目录名称: 删除目录 rmdir:rmdir -m/p 目录名称: rm:  rm -r 目录名称= rmdir;  #系统会询问是否删除: rm -f 目录名称:  

linux 缩减文件系统大小 LVM

linux缩减文件系统大小 LVM 实验环境: (1)操作系统:centos6.7 i686 (2)VMware Workstation 12版本 (3)实验硬盘大小5G 先查看下当前磁盘使用情况: 增加大小为5G的虚拟硬盘: 建立文件系统: (1)主要步骤如下: (2)格式化: #mkfs.ext4 /dev/vg_wtf/lv_wtf (3)挂载: #mkdir /wtf #建立挂载目录 #mount /dev/vg_wtf/lv_wtf  /wtf (4)查看目前磁盘使用情况,截图如下:

linux驱动开发重点关注内容--摘自《嵌入式Linux驱动模板精讲与项目实践》

本文摘自本人拙著 <嵌入式Linux驱动模板精讲与项目实践> 初步看起来Linux设备驱动开发涉及内容非常多,而须要实现驱动的设备千差万别.事实上做一段时间驱动之后回首看来主要就是下面几点: (1)对驱动进行分类.先归纳为哪个类型的驱动.归类正确再利用内核提供的子系统进行开发,往往会发现事实上非常多通用的事情内核已经帮我们做了,一个优秀的驱动project师应该最大程度上利用内核的资源.内核已经实现的毕竟稳定性强.可移植性高. (2)找到内核的提供的子系统.接下来就是要制作该子系统对该类设备提

Linux开源模块移植概述暨交叉编译跨平台移植总结--摘自《嵌入式Linux驱动模板精讲与项目实践》

本文摘自<嵌入式Linux驱动模板精讲与项目实践>一书中的"开发与调试技巧". Linux的强大威力就在于有很多开源项目可以使用,通常很多需求可以通过寻找相关的开源模块做为快速解决方案.要把这些开源模块应用到嵌入式中,其中一个关键点就是要使用交叉编译工具对开源项目进行交叉编译. 根据具体情况,下载的开源项目在组织上有很多情况,在此对各种情况进行归类介绍. 1. 下载的开源软件包找不到Makefile 对于这种开源包通常是采用configure的方式组织的,那么第一步就是使用

不看绝对后悔的Linux三剑客之awk实战精讲

一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告(excel).处理的数据可以是一个或多个文件,可以是来自标准输入,也可以通过管道获取标准输入,awk可以在命令行上直接编辑命令进行操作,也可以编写成awk程序来进行更为复杂的运用.本章主要讲解awk命令的运用 1.2 awk环境简介 [[email protected] ~]# cat /etc/redhat-release 

不看绝对后悔的Linux三剑客之sed实战精讲

二.Linux三剑客之sed命令精讲 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等.如果我们相对这些文件进行一些编辑查询等操作时,我们可能会想到一些vi,vim,cat,more等命令.但是这些命令效率不高,这就好比一块空地准备搭建房子,请了10个师傅拿着铁锹挖地基,花了一个月的时间才挖完,而另外一块空地则请了个挖土机,三下五除二就搞定了,这就是效率.而在linux中的"挖土机"有三种型号:顶配awk,中配sed,标配grep.使用这些工具,我们