磁盘管理

发布时间 2023-12-21 17:01:04作者: 龙泉寺老方丈

Linux磁盘管理


1.硬盘分区结构

  • 硬盘中的主分区数目只有4个,因此主分区和扩展分区的序号也就限制在1-4
  • 扩展分区再分为逻辑分区
  • 逻辑分区的序号始终从5开始

2. 分区

2.1 硬盘分区说明

  • 划分标准

    • 硬盘分区由主分区、扩展分区和逻辑分区组成
    • 在一块硬盘上,如果是MBR分区方式,那么它的主分区最多只能有4个,或者3个主分区和1个扩展分区;在扩展分区上我们可以创建多个逻辑分区
    • 分区编号:主分区1-4 ,逻辑分区5... *
    • LINUX规定:逻辑分区必须建立在扩展分区之上,而不是建立在主分区上
  • 分区作用

    • 主分区:主要是用来启动操作系统的,它主要放的是操作系统的启动或引导程序,/boot分区最好放在主分区上
    • 扩展分区不能使用的,它只是做为逻辑分区的容器存在的;我们真正存放数据的是主分区和逻辑分区,大量数据都放在逻辑分区中
    • 如果你用的是GPT的分区方式,那么它没有限制主分区个数

注意:从MBR转到GPT分区或者说从GPT转到MBR会导致数据全部丢失


2.2 查看磁盘信息

# fdisk -l # 列出磁盘列表
说明:
Device:分区名称Boot:是否是引导分区。是则有*标识
Start/End:分区的起始位置(柱面数)
Blocks:块,默认大小1024字节
ID:分区对应的系统ID号 (EXT4:83 LVM:8e)
System:分区类型


# lsblk # 列出所有可用块设备的信息及依赖关系,块设备有硬盘,闪存盘,CD-ROM等等
说明:
NAME :块设备名。
MAJ:MIN :主要和次要设备号。
RM :是否可移动设备。1为可移动设备
SIZE :本栏列出设备的容量大小信息
RO :该项表明设备是否为只读。RO值为0,表示不是只读
TYPE :显示块设备是否是磁盘或磁盘上的一个分区
MOUNTPOINT :设备挂载的挂载点

# cat /proc/partitions # 记录系统中所有硬盘及其上面的分区,包括已挂载和未挂载的


# blkid命令        # 显示关于可用块设备的信息

2.3 fdisk分区

  • 大小不超过2T的分区可以使用fdisk命令分区

  • 分区:fdisk [磁盘设备]

    • m:查看操作指令的帮助信息
    • p:列表查看分区信息
    • l: 列出分区类型
    • n:新建分区主分区
      • e extended扩展分区
      • p primary partition (1-4)逻辑分区
      • l logical (5 or over)
    • d:删除分区
    • t:变更分区类型
    • w:保存分区设置并退出
    • q:放弃分区设置并退出

如分区不生效可使用 partprobe 或 partx -a 或重启


2.4 parted分区

  • 大小超过2T的分区使用parted命令分区

  • 格式:parted [选项] [分区设备]
    parted /dev/sdb

  • 交互式状态下的常用命令

    • q:保存退出
    • p :打印
    • mklabel :改变硬盘的文件类型(因为parted命令只能针对gpt格式的磁盘进行操作,所以这里必须将新建的磁盘标签格式设为gpt。)
    • mkpart :分区(写分区名,文件系统类型,分区起始至结束点-可用百分比)
    • print :打印分区信息
    • rm :删除某分区 (#为分区号)
    • recuse :援救误删分区
    • mkfs.ext4 :分区后格式化

https://www.cnblogs.com/machangwei-8/p/10353690.htmlhttps://www.cnblogs.com/wholj/p/10924129.html


2.5 分区生效

# 1.使用fdisk命令创建分区
# 2.使用partx和partprobe使系统内核加载分区信息
# 3.使用lsblk或partx -s设备名查看修改后的设备分区信息
# 4.给分区做上文件系统
# 5.使用blkid命令查看设备信息,以及其文件系统等信息。
# 6.使用partx -s/ partx -l 查看分区信息如果出错,可能是信息未被登记,可使用partx -a 设备名来添加,再进行查看。

partprobe        #分区之后,让内核更新分区信息,否则系统需要restart后,内核才能识别新的分区
partx -a         #
reboot           #系统重启

3. 创建swap分区

mkswap 分区设备      # 创建swap类型的文件系统
swapon、swapoff     # 启用、停用交换分区


# dd创建swap分区
# 1.创建用于交换分区的文件:dd if=/dev/zero of=/swapfile bs=1M count=2048
注:block_size、number_of_block 大小可以自定义,比如 bs=1M count=1024 代表设置 1G 大小 SWAP 分区。
# 2.设置交换分区文件:mkswap /swapfile
# 3.立即启用交换分区文件:swapon /swapfile
这个命令可能会提示“swapon: /swapfile: insecure permissions 0644, 0600 suggested.”,意思是建议把swap设置成644或600权限。


https://blog.csdn.net/zhangxiaoyang0/article/details/82501209

4.LVM逻辑卷

  • 作用:动态调整磁盘容量,从而提高磁盘管理的灵活性

    • PV:物理卷整个硬盘,或使用fdisk等工具建立的普通分区包括许多个默认4MB大小的PE

    • VG:卷组一个或多个物理卷组合而成的整体

    • LV:逻辑卷从卷组中分割出一块空间,用于建立文件系统

功能 物理卷管理 卷组管理 逻辑卷管理
扫描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
显示 pvdisplay (pvs) vgdisplay (vgs)
删除 pvremove vgremove lvremove
扩展 vgextend lvextend
减少 vgreduce lvreduce
  • 创建pv
    pvcreate 设备名1 2... ...

  • 创建vg

    vgcreate 卷组名 物理卷名1 物理卷名2

  • 创建lv
    lvcreate -L(-l pe个数) 容量大小 -n 逻辑卷名 卷组名

  • 扩容lv
    lvextend -L +大小 /dev/卷组名/逻辑卷名

  • 刷新扩容

    • resize2fs /dev/卷组名/逻辑卷名 # 其他格式刷新
    • xfs_growfs /dev/卷组名/逻辑卷名 # xfs刷新扩容
  • 缩容
    Centos7的xfs文件系统不支持缩容

  • 删除lvm

    先删除逻辑卷,再删除卷组,最后删除物理卷

    • lvremove /dev/卷组名/逻辑卷名
    • vgremove /dev/卷组名/
    • pvremove /dev/磁盘

5. 分区打label标签并挂载

  • ext2/ext3/ext4

    • e2label device [newlabel]
  • vfat/fat16/fat32/etc

    • dosfslabel device [label]
  • swap

    • swaplabel -L [label] dev
  • ntfs

    • ntfslabel [options] device [label]
  • xfs

    • xfs_admin -L [label] dev
  • fstab挂载

    • LABEL=标签名 挂载目录 文件系统类型 defaults,noatime,nodiratime,nofail 0 0