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

相关推荐
小卓笔记2 小时前
keepalived应用
linux·服务器·数据库
Hurry64 小时前
Rocky Linux 9.x 基于 kubeadm部署k8s 1.32
linux·运维·kubernetes
极客代码4 小时前
Unix 域套接字(本地套接字)
linux·c语言·开发语言·unix·socket·unix域套接字·本地套接字
zxnbmk4 小时前
ansible速查手册
linux·服务器·ansible
小卓笔记5 小时前
DNS主从服务器
运维·服务器
Muisti5 小时前
TCP 通信流程图
服务器·网络·windows
book01215 小时前
Ansible 自动化运维
运维·自动化·ansible
巷子里的童年ya5 小时前
Ansible模块
linux·centos·ansible
阿正的梦工坊5 小时前
Linux 命令:按内存使用大小排序查看 PID 的完全指南
linux·运维·服务器
神秘的土鸡5 小时前
Centos搭建Tomcat服务器:我的实战经验分享(成功版本 详细!)
linux·开发语言·python·tomcat·web