当前位置: 首页 > news >正文

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

命令格式:pvcreate [option] 物理磁盘/分区

常用选项:

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

案例:硬盘创建物理卷

pvcreate /dev/sda

2、PV显示-pvscan和pvdisplay

pvscan:是扫描物理卷

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

命令格式:pvscan [option] 
命令格式:pvdisplay [option] 

3、PV删除-pvremove

命令格式:pvremove [option] 物理磁盘/分区

常用选项:

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

案例:删除物理卷

pvremove /dev/sda

4、PV移动-pvmove

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

命令格式:pvmove [option] 源PV 目标PV

常用选项:

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

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

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

案例:删除物理卷

pvmove /dev/hda1 /dev/sdb1

4、VG创建-vgcreate

在VG中添加PV!

命令格式:vgcreate [option] VG名称 PV名称

常用选项:

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

案例:硬盘创建物理卷

vgcreate rhel /dev/sda /dev/sdb 

5、VG显示-vgscan和vgdisplay

vgscan:是扫描物理卷

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

命令格式:vgscan [option] 
命令格式:vgdisplay [option] 

6、VG删除-vgremove

删除VG

vgremove [option] VG名称

常用选项: 

  • -f:强制删除。

7、LV创建-lvcreate

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

常用选项: 

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

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

lvcreate -L 2GB -n lvlinux rhel8

8、LV显示-lvscan和lvdisplay

vgscan:是扫描物理卷

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

命令格式:lvscan
命令格式:lvdisplay

9、LV删除-lvremove

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

命令格式:lvremove [option] LV名称

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

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

命令格式: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

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

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

2、开机挂载RAID设备

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

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

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

mdadm -D -s >> /etc/mdadm.conf

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

四、分区挂载

 1、分区挂载-mount

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

命令格式:mount [option] 目标分区 挂载目录

常用选项: 

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

 案例:挂载SATA硬盘

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 :显示详细信息 

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

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设备

/dev/md5 /mnt ext4 default 0 0

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

五、文件系统

1、创建文件系统-mkfs

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

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

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

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

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

mkfs -t ext4 /dev/sha1

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

命令格式: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

命令格式:edquota [option] [用户名|组]

常用选项:

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

1、用户配额配置-u

2、组配额配置-g

3、启动配额管理-quotaon

4、关闭配额管理-quotaoff

相关文章:

  • ps aux | grep smart_webrtc这条指令代表什么意思
  • SQLite3模块使用详解
  • 【Android 14源码分析】Activity启动流程-1
  • 大数据复习知识点5
  • linux服务器部署filebeat
  • [Everything] 文件搜索工具的下载及详细安装使用过程(附有下载文件)
  • Hadoop三大组件之HDFS(一)
  • 在树莓派上部署开源监控系统 ZoneMinder
  • 基于php的幸运舞蹈课程工作室管理系统
  • 黑名单与ip禁令是同一个东西吗
  • Android开发中的ViewModel
  • SpringMVC4-SpringMVC获取请求参数
  • TI DSP TMS320F280025 Note14:模数转换器ADC原理分析与应用
  • MapReduce学习与理解
  • StopWath,apache commons lang3 包下的一个任务执行时间监视器的使用
  • #Java异常处理
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • [译] 怎样写一个基础的编译器
  • 《Java编程思想》读书笔记-对象导论
  • 2018一半小结一波
  • Android单元测试 - 几个重要问题
  • Angular 响应式表单 基础例子
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • CSS相对定位
  • echarts花样作死的坑
  • golang 发送GET和POST示例
  • JavaScript的使用你知道几种?(上)
  • JavaWeb(学习笔记二)
  • JSDuck 与 AngularJS 融合技巧
  • JS变量作用域
  • js数组之filter
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • mac修复ab及siege安装
  • Mithril.js 入门介绍
  • nodejs调试方法
  • Python - 闭包Closure
  • React 快速上手 - 07 前端路由 react-router
  • ReactNativeweexDeviceOne对比
  • vue--为什么data属性必须是一个函数
  • webpack项目中使用grunt监听文件变动自动打包编译
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 回顾2016
  • 坑!为什么View.startAnimation不起作用?
  • 理解在java “”i=i++;”所发生的事情
  • 力扣(LeetCode)965
  • 前端攻城师
  • 如何优雅地使用 Sublime Text
  • 十年未变!安全,谁之责?(下)
  • 详解NodeJs流之一
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • k8s使用glusterfs实现动态持久化存储
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​什么是bug?bug的源头在哪里?
  • $jQuery 重写Alert样式方法