一、lsblk


  • 功能:​列出系统上的所有的磁盘列表
  • 命令格式

lablk [选项] [设备文件名]



  • 选项

  • -d:​仅列出磁盘本身,并不会列出该磁盘的分区信息
  • -f:同时列出该磁盘内的文件系统名称
  • -i:使用ASCII的字符输出,不要使用使用复杂的编码(在某些环境下有用)
  • -m:同时输出该设备在/dev下面的权限信息(rwx的数据)
  • -p:​列出该设备的完整文件名(因为不加这个选项,显示的是最后的名字)
  • -t:列出该磁盘设备的详细数据,包括磁盘列阵机制、预读写的数据量大小等

  • 举例

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_查看Linux磁盘的分区状态

  • 没有加-d选项会列出sda的分区数据:sda1、2、3是sda下面的三个分区

  • NAME:设备的文件名,如果不加-p选项,会忽略/dev等前导目录
  • MAJ:MIN:分别是主要与次要设备代码。内核识别的设备都是通过这两个代码来实现的
  • RM:是否为可卸载的设备,如光盘、USB磁盘等
  • SIZE:容量
  • RO:是否为只读设备的意思
  • TYPE:是磁盘(disk)、分区(partition)、只读存储器(rom)等输出
  • MOUNTPOINT:挂载点

二、blkid


  • 功能:​可以列出文件系统名称与设备的UUID等数据。
  • UUID:​全局唯一标识符。Linux会将系统内所有的设备给予一个第一无二的标识符,可以拿来作为挂载或是使用这个设备或文件系统
  • 格式
  • 举例:​如果分区没有挂载目录,则不会显示

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_查看Linux磁盘的分区状态_02

三、parted



  • 格式:​parted  设备文件名 print
  • 例如:​parted  /dev/sda print

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_Linux的磁盘分区_03


  • Model:磁盘的模板名称(厂商)
  • Disk:磁盘的总容量
  • Sector size:磁盘的每个逻辑/物理扇区的大小
  • Partition Table:分区表的格式(MBR/GPT)
  • 最后一排:才是分区的数据
  • 前言:

  • 下面的命令都要以root的身份执行
  • 重点:​MBR分区表使用fdisk命令分区,GPT分区表使用gdisk命令分区,parted可用于任何分区类型磁盘的分区。
  • msdos格式属于MBR的其中一种


四、gdisk


  • 功能:​用于GPT分区表格式磁盘的分区或查询
  • 格式:

gdisk 设备文件名
  • 如何使用:

  • 第一步:使用gdisk命令选择一个设备进行操作,然后光标会停留等待操作
  • 第二步:输入相关的命令选项进行操作。如果不知道命令选项,可以输入?进行帮助查询

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_Linux的磁盘分区_04

  • 命令选项:

  • d:​删除​一个分区
  • n:​增加​一个分区
  • p:打印出​分区表​(常用)
  • q:​不保存​分区就直接退出gdisk
  • w:​保存​分区操作后离开gdisk
  • L:显示​文件系统的Code​。Linux大概都是8200、8300、8e00等。Windows几乎都使用0700

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_lsblk_05

  • 注意事项

  • 注意q与w的区别:​q不会保存用户的相关操作退出,w会保存相关操作然后退出
  • 命令中使用的设备名不要是某个磁盘设备的某个分区:​因为磁盘分区是针对于整个磁盘的,而不是针对于某个分区的。例如:gdisk /dev/sda1就会错误
  • 不要处理​正在使用​的分区。否则后果很严重
  • 没有挂载目录的分区,使用p选项查看时不会显示

p选项

  • 使用p选项查看磁盘的信息状态

  • Disk:磁盘文件名/扇区数/总容量
  • Logical sector size:单一扇区的大小
  • Disk identifier (GUID):磁盘的标识符
  • Number:分区编号,1就是指/dev/sda1等..
  • Start:每一个分区的开始扇区号码位置
  • End:每一个分区的结束扇区号码位置,与start之间可以算出分区的总容量
  • Size:分区的容量
  • Code:分区内的可能的文件系统的ID。Linux为8300,swap为8200,。不过这个Code只是一个提示而已,不见得真的代表分区内的文件系统
  • Name:文件系统的名称等

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_Linux的磁盘分区_06

  • 注意

  • 从上图可以看出:总扇区最起始位置号码为34,总扇区的最后一个位置号码为83886046,但是第五个分区只使用到83884031
  • 新增一个分区时,就在上一分区的结束扇区号码数加1的位置处作为新扇区起始号码

n选项


  • 使用n选项新增一个分区
  • 步骤:​下面的步骤都有默认值,可以手动输入,也可以直接回车使用默认值

  • 第一步​:输入n选项
  • 第二步​:输入新分区的号码,默认2
  • 第三步​:输入新分区的起始位置号码,默认是79693824。或者使用[+-][大小][单位]输入新分区的大小(例如:+1G、+500M等。会省略第四步)
  • 第四步​:输入新分区的结束位置号码,默认是79695871。或者使用[+-][大小][单位]输入新分区的大小
  • 第五步​:输入分区所使用的文件系统的Code或者GUID(如果忘记,可以使用L选项进行查询)。默认是Linux(8300)


查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_parted_07

  • 进行了上面五步之后,还未保存,使用w选项保存。后面要输入Y(同意)

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_查看Linux磁盘的分区状态_08

  • 新增完分区后输入p查询

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_Linux的磁盘分区_09

d选项


  • 使用d选项删除一个分区
  • 方法:​输入d后,选择分区号码进行删除

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_查看Linux磁盘的分区状态_10

  • 使用w选项保存。后面要输入Y(同意)退出

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_lsblk_11

五、fdisk


  • 功能:​用于MBR分区表格式磁盘的分区或查询
  • 格式

gdisk 设备文件名

  • 如何使用:​使用方式和gdisk方式几乎一样,并且很多选项都是一样的。只是查询命令的方式不同(gdisk输入m进行查询帮助)
  • 注意事项

  • MBR分区表在未来会慢慢淘汰,因为磁盘的容量越来越大。不过还是旧的系统和小磁盘存在的空间还是有人会使用
  • fdisk有时会使用柱面作为分区的最小单位,gdisk默认使用扇区

  • 演示案例:​fdisk和gdisk操作几乎一样,只是查询命令的方式不同(gdisk输入m进行查询帮助)。因此不再演示

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_lsblk_12

六、parted


  • 功能:

  • 可用于查看磁盘的分区状态
  • 可用于磁盘的分区/删除
  • 可用于磁盘分区表的类型转换(可以实现,但是不建议做,十分危险)

  • 格式

parted [设备文件名] [命令 [参数] ]

  • 命令与参数

  • 打印磁盘分区信息:​parted  设备文件名  print
  • 新增分区:​parted 设备文件名  mkpart  [primary/logical/Extended]  [文件系统格式]  分区开始内存处  分区结束内存处
  • 删除分区:​parted  设备文件名  rm  分区号码
  • 磁盘分区表的类型转换:​parted 设备文件名 mklabel  分区表格式

  • 注意事项

  • parted可以直接一行命令就新增一个分区,比较方便使用
  • parted可以将MBR改为GPT分区表,也可以将GPT改为MBR分区表,但是这个操作十分危险


演示案例

  • ①查看/dev/sda磁盘的分区信息:

  • Model:磁盘的模板名称(厂商)
  • Disk:磁盘的总容量
  • Sector size:磁盘的每个逻辑/物理扇区的大小
  • Partition Table:分区表的格式(MBR/GPT)。msdos属于MBR格式的
  • Number:代表此块磁盘的分区号码。1就代表/dev/sda1..以此类推
  • Start:此块分区的起始位置在这块磁盘的多大内存处
  • End:此块分区的结束位置在这块磁盘的多大内存处
  • Size:此块分区的大小
  • File system:文件系统的类型

parted /dev/sda print

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_Linux的磁盘分区_03

  • 上面Start与End单位不同,为了统一单位,可以使用下面的命令:一致使用MB显示
parted /dev/sda unit mb print
  • ②分区表格式的转换:​将MBR分区表格式的磁盘变为GPT分区表格式的
parted /dev/sda mklabel gpt

  • 注意:​这个操作十分的危险,进行了这一步之后文件系统可能会损坏,并且无法恢复,所以只介绍命令,不再演示 
  • ③在/dev/sda下新增一个分区/dev/sda6:​大小为0.5GB,并将其格式化为vfat文件系统格式的
  • 新增分区的分区号系统自动决定的

新增分区:
parted /dev/sda mkpart primary fat32 36.0GB 36.5GB
进行格式化:假设系统新增的分区为/sda6
mkfs -t vfat /dev/sda6
设置期自动挂载到/data/win目录下
/etc/fstab文件中添加:UUID=上面/dev/sda6的UUID /data/win vfat defaults 0 0
更新/etc/fstab文件:mount -a
  • ④删除上面的/sda6分区
parted /dev/sda rm 6

七、partprobe


  • 功能:​更新Linux内核的分区表信息
  • 格式

partprobe [-s]

  • 如果不加-s,屏幕不会显示信息,建议加上
  • 使用场景​:上面你用gdisk/fdisk/parted新增/删除一个分区后,使用lsblk或者cat /proc/partitions查看磁盘信息的时候,发现磁盘的新增/删除的信息并没有更新。因此这块磁盘正在使用,系统无法加载到新的分区表中,这个时候就可以使用partprobe命令更新

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_lsblk_14


  • 我是小董,V公众点击"笔记白嫖"解锁更多【Linux入门基础】资料内容。

查看Linux磁盘的分区状态(lsblk、blkid、parted)、对Linux的磁盘进行分区(gdisk、fdisk、parted、partprobe)_lsblk_15