Linux:磁盘管理

一、静态分区管理

静态的分区方法不可以动态的增加或减少分区的容量。

1、磁盘分区-fdisk

该命令是用于查看磁盘分区情况,和分区管理的命令

命令格式:fdisk [选项] 设备文件名

常用命令:

  • -h:查看分区信息

fdisk系统常用命令:

  • l:显示设备的分区表信息。
  • n:创建一个新的分区。
  • d:删除一个分区。
  • p:打印分区表的内容。
  • t:更改分区的类型。
  • u:以扇区单位显示分区信息。
  • w:将分区表写入磁盘。

同时也可以不带参数进入fdisk命令模式,退出可以使用ctrl + C,以下是fdisk的命令模式。

案例:新增一个编号为1、容量为512MB、类型为xfs的主分区。

进入系统!

输入n,创建分区!(p是主分区,e是拓展分区)!

指定卷标1和大小512M!

输入t指定分区类型(可以输入L查看分区类型,这里指定为83)!

最后存盘退出 w ,结束后可以输入fdisk -l查看

二、动态分区管理LVM

动态分区管理,即逻辑卷管理器LVM,则可以让用户在不破坏分区数据的前提下,随意根据需求调整分区大小。

相关名词:

  • PV:物理卷。可以是单独磁盘,也可以是磁盘分区。
  • VG:卷组,即是物理卷的组合,可以看成单独的逻辑磁盘。
  • LV:逻辑卷,逻辑磁盘(卷组)的分区。
  • PE:物理层面上,VG的组成单元。
  • LE:逻辑层面上,LV的组成单元,大小为PE的倍数。

1、PV创建-pvcreate

bash 复制代码
命令格式:pvcreate [option] 物理磁盘/分区

常用选项:

  • -f:强制创建物理卷
  • -u:指定uuid
  • -y:所有问题都回答yes

案例:硬盘创建物理卷

bash 复制代码
pvcreate /dev/sda

2、PV显示-pvscan和pvdisplay

pvscan:是扫描物理卷

pvdisplay:是显示物理卷的详细信息

bash 复制代码
命令格式:pvscan [option] 
命令格式:pvdisplay [option] 

3、PV删除-pvremove

bash 复制代码
命令格式:pvremove [option] 物理磁盘/分区

常用选项:

  • -f:强制删除物理卷
  • -y:所有问题都回答yes

案例:删除物理卷

bash 复制代码
pvremove /dev/sda

4、PV移动-pvmove

源PV和目标PV必须处于同一个VG中,且目标PV的大小不能小于源PV

bash 复制代码
命令格式:pvmove [option] 源PV 目标PV

常用选项:

  • -b:在后台运行守护进程。

  • -i:设置报告进度的间隔时间。

  • --abort:中止进行中的移动操作。

案例:删除物理卷

bash 复制代码
pvmove /dev/hda1 /dev/sdb1

4、VG创建-vgcreate

在VG中添加PV!

bash 复制代码
命令格式:vgcreate [option] VG名称 PV名称

常用选项:

  • -f:强制创建物理卷
  • -y:所有问题都回答yes

案例:硬盘创建物理卷

bash 复制代码
vgcreate rhel /dev/sda /dev/sdb 

5、VG显示-vgscan和vgdisplay

vgscan:是扫描物理卷

vgdisplay:是显示物理卷的详细信息

bash 复制代码
命令格式:vgscan [option] 
命令格式:vgdisplay [option] 

6、VG删除-vgremove

删除VG

bash 复制代码
vgremove [option] VG名称

常用选项:

  • -f:强制删除。

7、LV创建-lvcreate

bash 复制代码
命令格式:lvcreate [option] [-L <LV 容量> ] [-n <LV 名称> ] VG名称

常用选项:

  • -L:指定逻辑分区容量。
  • -n:指定逻辑分区名称

案例:在rhel8的VG中创建一个2GB的LV,名称为lvlinux

bash 复制代码
lvcreate -L 2GB -n lvlinux rhel8

8、LV显示-lvscan和lvdisplay

vgscan:是扫描物理卷

vgdisplay:是显示物理卷的详细信息

bash 复制代码
命令格式:lvscan
命令格式:lvdisplay

9、LV删除-lvremove

删除前需要确保LV没有装载,否则会删除失败!

bash 复制代码
命令格式:lvremove [option] LV名称

案例:删除名为/dev/rhel8/lvlinux

bash 复制代码
lvremove /dev/ehel8/lvlinux

三、磁盘阵列RAID

这是一种把多块独立的硬盘按不同方式组合形成一个硬盘组(相当于一个逻辑硬盘),从而提供比单个磁盘更高的存储性能和提高数据冗余的的技术。

组成磁盘阵列的不同方式就是RAID级别,以下是常见的RAID级别以及它的特点。

**RAID0:**无差错控制的带区组,需要至少2块硬盘。

**RAID1:**镜像结构,需要至少2块硬盘。

**RAID2:**带海明码校验,需要至少3块硬盘。

**RAID3:**带奇偶校验码的并行传送,需要至少3块硬盘。

**RAID4:**带奇偶校验码的独立磁盘结构,需要至少3块硬盘。

**RAID5:**分布式奇偶校验的独立磁盘结构,需要至少3块硬盘。

**RAID6:**带有两种分布存储的奇偶校验码的独立磁盘结构,需要至少4块硬盘。

RAID7:优化的高速数据传送磁盘结构

1、创建RAID设备-mdadm

bash 复制代码
命令格式:mdadm [option] 设备 [option] 需要加入RAID分区或硬盘

常用参数:

  • -A 激活磁盘阵列
  • -C 创建一个新的阵列
  • -D 输出一个或多个
  • -S 停止磁盘阵列
  • -s 扫描系统中的所有RAID设备,并输出当前活动 RAID 设备的信息。
  • -V 显示细节
  • -c 设置阵列条带大小
  • -l 设置磁盘阵列的级别
  • -n 指定阵列可用的RAID 硬盘数量
  • -x 指定初始阵列的富余RAID 硬盘数量
  • -f 将设备状态设定为故障
  • -r 移除设备

案例:创建RAID设备文件

该RAID设备使用了四个硬盘sdb,sbc,sdd,sde

bash 复制代码
mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}

前三部分介绍的都是分区管理的方式,分别是静态分区fdisk,动态分区LVM,RAID设备(它相当于多个硬盘合成一个逻辑硬盘,可以直接格式化使用或者分区使用

2、开机挂载RAID设备

在/etc/fstab文件内写入以下内容:

bash 复制代码
设备名称 挂载点目录 文件系统类型 选项 检查标志 检查顺序标志
/dev/md5 /mnt ext4 default 0 0

将RAID设备信息写入/etc/mdadm.conf(这是mdadm的配置文件,需要写入RAID的相关消息,如果没有,则RAID设备无法正常工作)

bash 复制代码
mdadm -D -s >> /etc/mdadm.conf

后面会详细介绍 /etc/fstab文件内容

四、分区挂载

1、分区挂载-mount

分区挂载,将分区入口引导到目录上,如果不进行挂载则无法访问分区

bash 复制代码
命令格式:mount [option] 目标分区 挂载目录

常用选项:

  • -t :指定设备的文档系统类型

案例:挂载SATA硬盘

bash 复制代码
mount /dev/sda1 /sl/sl1

案例:通过光盘,挂载NVME硬盘

挂载Nvme磁盘的方法和SATA盘有些不同,光盘的内核通常不能直接挂载,因为其使用了逻辑分区LVM,需要激活。查看LVM的VG名称的命令是vgdisplay,查看其激活状态的命令是lvscan,最后通过lvchange -ay VGname 进行激活,这样在/dev/nvme0n1就可以发现其下面多了两个文件root和swap。

获得VGname

激活lvchange -ay VGname

挂载成功!

2、挂载卸载-unmount

该命令可以用来卸载分区的挂载点。

命令格式:unmount [option] 设备名称/挂载点

常用选项:

  • -v :显示详细信息

案例:通过设备名卸载挂载

bash 复制代码
umount -v /dev/sda1

3、永久挂载-/etc/fstab文件

/etc/fstab文件主要用来设置在Linux启动自动挂载的设备和挂载点信息,在linux启动过程中systemd进程会自动读取/etc/fstab配置文件的内容,并挂载相应的文件系统。

/etc/fstab每一行代表一个文件系统,每个文件系统用六个字段来表示,从左到右顺序对每个字段:

  • 设备名称,none表示与设备无关的文件系统。
  • 挂载点目录
  • 文件系统类型,如果设置auto,则按文件系统本身类型进行挂载。
  • 选项,多个选项之间必须用逗号分隔。
选项 说明
auto 启动时自动挂载
default 使用默认值挂载,即启动时自动挂载,可读可写
gquota 设定该文件系统支持组配额管理
noauto 不自动挂载
ro 以只读方式挂载
rw 以读/写方式挂载
uquota 设定该文件系统支持用户配额管理
  • 检查标志:0表示不做检查,1表示需要文件系统检查。只有ext3/ext4/xfs需要文件系统检查
  • 检查顺序标志:有0,1,2三种值,0代表不检查(检查标志为0,该值必为0)。

案例:挂载RAID设备

bash 复制代码
/dev/md5 /mnt ext4 default 0 0

组配额和用户配额将在下面详细讲解。

五、文件系统

1、创建文件系统-mkfs

给分区进行文件系统创建的操作。

命令格式:mkfs -t 分区类型 分区设备

分区类型:它可以通过man 5 fs获得其详细介绍。

分区设备:它可以通过fdisk -l 来查看。

案例:设置分区的文件系统为ext4

bash 复制代码
mkfs -t ext4 /dev/sha1

2、查看文件系统信息-df

bash 复制代码
命令格式:df [option]

常用选项:

  • -a, --all:显示所有文件系统,包括虚拟文件系统。
  • -B, --block-size=SIZE:指定块大小,以特定单位显示磁盘空间信息(如 MB、GB)。
  • -h, --human-readable:以人类可读的格式显示输出结果。
  • -H, --si:以 1000 作为基数,以 SI 单位显示输出结果(例如,MB、GB)。
  • -i, --inodes:显示 inode 使用情况而不是块使用情况。
  • -k, --kilobytes:以 KB 作为单位显示磁盘空间信息。
  • -n, --no-sync:不执行文件系统同步操作。
  • -t, --type=TYPE:仅显示指定类型的文件系统。
  • -T, --print-type:显示文件系统的类型。
  • -x, --exclude-type=TYPE:排除指定类型的文件系统。
  • --sync:在显示文件系统信息之前执行文件系统同步操作。
  • --total:在输出的最后一行显示总计。
  • -v, --verbose:详细显示文件系统信息。
  • -l, --local:仅显示本地文件系统。

案例:显示文件系统类型

六、磁盘配额管理

磁盘配额管理,是为了限制用户或组在某个特定文件系统中能使用的最大空间,来保证每个用户的空间的正常使用。它可以保证所有用户都拥有自己独占的文件系统空间,从而确保用户使用系统的公平性和安全性。

磁盘配额特性不同,还分为硬配额和软配额,硬配额是用户和组可使用空间的最大值,超出界限,无法写入文件 ,并发出警告信息。而软配额允许一段时期内被超过,默认为7天,到期后,如果用户使用空间还超过软配额,则无法写入文件。

配额管理命令-edquota

bash 复制代码
命令格式:edquota [option] [用户名|组]

常用选项:

  • -g 设置组配额
  • -p 设置
  • -u 设置用户配额

1、用户配额配置-u

2、组配额配置-g

3、启动配额管理-quotaon

4、关闭配额管理-quotaoff

相关推荐
dsywws1 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零2 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
wclass-zhengge2 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱2 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范
free3 小时前
netstat中sendq/recvq用于排查发送端发送数据的问题
服务器
小林熬夜学编程3 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法
力姆泰克3 小时前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节
力姆泰克3 小时前
力姆泰克电动缸助力农业机械装备,提高农机的自动化水平
大数据·服务器·数据库·人工智能·1024程序员节
BPM_宏天低代码3 小时前
低代码 BPA:简化业务流程自动化的新趋势
运维·低代码·自动化
程思扬4 小时前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节