/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来向系统注册相关磁盘的最新分区信息。