/proc/partitions  记录了系统中所有硬盘及其上面的分区信息,包括已挂载和未挂载的。之后的格式化或挂载都是基于这个文件中的记录进行的。


在/proc/partitions中,对有些硬盘没有记录分区信息,可能是没有分区,或者有分区但未进行记录。



partx直接从硬盘上读取分区信息,并可以对系统关于硬盘分区信息的记录(/proc/partitions)进行更新


-l 列出某磁盘上的分区情况。数据从磁盘上获取,并不是来源于/proc/partitions    


-d 删除内核中关于某磁盘上的分区的记录(不是卸载)

-d --nr m-n  删除从第m--n分区的记录

#partx -d --nr 1-3 /dev/sdb    删除系统中对sdb上面的1-3号分区的记录


-a 登记某块盘上的所有分区信息,如果某个分区信息已有记录,就会报错:

#partx -a /dev/sdb

  BLKPG: Device or resource busy

  error adding partition ?              ?是分区号


如果某磁盘上的分区信息都没有被记录,则安静完成。




上述删除系统已经记录到的分区信息的操作,是在分区未挂载的情况下进行的。

如果已经挂载,则无法删除相关分区的记录信息,并报错:

error deleting partition 5: BLKPG: Device or resource busy



总结:

一般用分区工具来进行分区的,系统会很快识别到。

通过非分区工具来改变磁盘分区信息的(比如dd if=/dev/zero of=/dev/sda bs=512 count=1   或 dd if=/dev/ada of=/dev/sdb bs=512 count=1),系统不会立即识别到.

不管是哪种方式,只要系统没有正确识别到磁盘分区情况的,用-d参数删除系统已记录的相关磁盘的分区信息;用-a来向系统注册相关磁盘的最新分区信息。