我有自定义的LFS安装程序,其中包含sfdisk,我试图添加对NVME磁盘的支持。当我在普通的SATA磁盘上使用sfdisk创建分区时,一切如出一辙,但当我在NVME磁盘上做完全相同的操作时,它会创建分区,但是当我试图获得分区的大小时(使用sfdisk -s /dev/nvme0n1p1命令),它会输出No such device or address while trying to determine filesystem size。
lsblk输出:
NAME MAJ:MIN SIZE TYPE
nvme0n1 259:0 1.8T disk
|nvme0n1p1 259:1 200G part
`nvme0n1p2 259:10 1.6T part磁盘使用情况:
,200G,L
,,L/proc/分区
major minor #blocks name
259 0 1953514584 nvme0n1
259 2 209715200 nvme0n1p1
259 3 1743798343 nvme0n1p2他们还在/dev下被列为nvme0n1、nvme0n1p1和nvme0n1p2。
现在,如果我使用sfdisk -s /dev/nvme0n1p1,就会得到输出:209715200和sfdisk -s /dev/nvme0n1p2给予:No such device or address while trying to determine filesystem size。
现在奇怪的是,如果我再次创建分区,然后执行sfdisk -s /dev/nvme0n1p1,这将给出这样的结果:No such device or address while trying to determine filesystem size和sfdisk -s /dev/nvme0n1p2提供209715200。
如果我一次又一次地改变它,一个分区是可用的,另一个分区是不可用的,它不断地交换。
我试过的事情:
编辑我发现在没有分区驱动器的情况下重新启动之后,执行这些命令是可能的,这对NVME磁盘很重要,但对正常的sata来说似乎不重要吗?
我现在完全想不出该做什么,也不知道该做些什么,任何帮助都将不胜感激。
发布于 2022-07-27 13:07:54
我设法找到了一个解决方案,所以我在这里添加了答案,这样可能会对其他人有所帮助,以防他们遇到类似的问题。
我使用了blockdev --rereadpt /dev/nvme0n1命令。这将重新读取分区表,现在我可以在不需要重新启动的情况下执行sfdisk -s /dev/nvme0n1p2命令,没有任何问题。
我仍然不知道为什么这是不需要与正常的撒塔驱动器,所以如果有人知道为什么不是这样,请随时留下评论。
https://unix.stackexchange.com/questions/711441
复制相似问题