一、lsblk
- 功能:列出系统上的所有的磁盘列表
- 命令格式
lablk [选项] [设备文件名]
- 选项
- -d:仅列出磁盘本身,并不会列出该磁盘的分区信息
- -f:同时列出该磁盘内的文件系统名称
- -i:使用ASCII的字符输出,不要使用使用复杂的编码(在某些环境下有用)
- -m:同时输出该设备在/dev下面的权限信息(rwx的数据)
- -p:列出该设备的完整文件名(因为不加这个选项,显示的是最后的名字)
- -t:列出该磁盘设备的详细数据,包括磁盘列阵机制、预读写的数据量大小等
- 举例
- 没有加-d选项会列出sda的分区数据:sda1、2、3是sda下面的三个分区
- NAME:设备的文件名,如果不加-p选项,会忽略/dev等前导目录
- MAJ:MIN:分别是主要与次要设备代码。内核识别的设备都是通过这两个代码来实现的
- RM:是否为可卸载的设备,如光盘、USB磁盘等
- SIZE:容量
- RO:是否为只读设备的意思
- TYPE:是磁盘(disk)、分区(partition)、只读存储器(rom)等输出
- MOUNTPOINT:挂载点
二、blkid
- 功能:可以列出文件系统名称与设备的UUID等数据。
- UUID:全局唯一标识符。Linux会将系统内所有的设备给予一个第一无二的标识符,可以拿来作为挂载或是使用这个设备或文件系统
- 格式
- 举例:如果分区没有挂载目录,则不会显示
三、parted
- 格式:parted 设备文件名 print
- 例如:parted /dev/sda print
- Model:磁盘的模板名称(厂商)
- Disk:磁盘的总容量
- Sector size:磁盘的每个逻辑/物理扇区的大小
- Partition Table:分区表的格式(MBR/GPT)
- 最后一排:才是分区的数据
- 前言:
- 下面的命令都要以root的身份执行
- 重点:MBR分区表使用fdisk命令分区,GPT分区表使用gdisk命令分区,parted可用于任何分区类型磁盘的分区。
- msdos格式属于MBR的其中一种
四、gdisk
- 功能:用于GPT分区表格式磁盘的分区或查询
- 格式:
gdisk 设备文件名
- 如何使用:
- 第一步:使用gdisk命令选择一个设备进行操作,然后光标会停留等待操作
- 第二步:输入相关的命令选项进行操作。如果不知道命令选项,可以输入?进行帮助查询
- 命令选项:
- d:删除一个分区
- n:增加一个分区
- p:打印出分区表(常用)
- q:不保存分区就直接退出gdisk
- w:保存分区操作后离开gdisk
- L:显示文件系统的Code。Linux大概都是8200、8300、8e00等。Windows几乎都使用0700
- 注意事项
- 注意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:文件系统的名称等
- 注意
- 从上图可以看出:总扇区最起始位置号码为34,总扇区的最后一个位置号码为83886046,但是第五个分区只使用到83884031
- 新增一个分区时,就在上一分区的结束扇区号码数加1的位置处作为新扇区起始号码
n选项
- 使用n选项新增一个分区
- 步骤:下面的步骤都有默认值,可以手动输入,也可以直接回车使用默认值
- 第一步:输入n选项
- 第二步:输入新分区的号码,默认2
- 第三步:输入新分区的起始位置号码,默认是79693824。或者使用[+-][大小][单位]输入新分区的大小(例如:+1G、+500M等。会省略第四步)
- 第四步:输入新分区的结束位置号码,默认是79695871。或者使用[+-][大小][单位]输入新分区的大小
- 第五步:输入分区所使用的文件系统的Code或者GUID(如果忘记,可以使用L选项进行查询)。默认是Linux(8300)
- 进行了上面五步之后,还未保存,使用w选项保存。后面要输入Y(同意)
- 新增完分区后输入p查询
d选项
- 使用d选项删除一个分区
- 方法:输入d后,选择分区号码进行删除
- 使用w选项保存。后面要输入Y(同意)退出
五、fdisk
- 功能:用于MBR分区表格式磁盘的分区或查询
- 格式
gdisk 设备文件名
- 如何使用:使用方式和gdisk方式几乎一样,并且很多选项都是一样的。只是查询命令的方式不同(gdisk输入m进行查询帮助)
- 注意事项
- MBR分区表在未来会慢慢淘汰,因为磁盘的容量越来越大。不过还是旧的系统和小磁盘存在的空间还是有人会使用
- fdisk有时会使用柱面作为分区的最小单位,gdisk默认使用扇区
- 演示案例:fdisk和gdisk操作几乎一样,只是查询命令的方式不同(gdisk输入m进行查询帮助)。因此不再演示
六、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
- 上面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命令更新
- 我是小董,V公众点击"笔记白嫖"解锁更多【Linux入门基础】资料内容。