ste*_*nct 4 linux partition block-device linux-kernel
我想用sfdisk
. 这可能是 SD 卡、硬盘、SATA 或 NVME 设备。最初我认为这sfdisk
需要这些名称,因此我希望正确生成它们,但显然无论如何都可以将它们排除在外。:)
与传统的 ATA 和 SATA 设备的分区名称简单地附加到设备名称(例如,/dev/sda1
对于块设备的第一个分区sda
)不同,对于基于闪存并使用其他驱动程序的块设备,存在另一种方案。这些p
在设备和分区名称之间添加一个(例如,/dev/mmcblk0p1
对于 的第一个分区mmcblk0
)。不幸的是,我没有找到关于这些细节的任何内核文档。
给定一个块设备(例如,/dev/mmcblk0
),我如何决定相应的(但不存在的)分区是否将命名为p
或不(例如,/dev/mmcblk0p1
或/dev/mmcblk01
)?
这基本上是这个问题的相反问题,但有一个额外的扭曲,即分区尚不存在(为了这个问题,我不允许答案实际修改分区表,因此尝试它是无效的)。
如果设备名称以数字结尾,则内核添加“p”符号以将分区号与设备名称分开。
/dev/sda -> /dev/sda1
/dev/mmcblk0 -> /dev/mmcblk0p1
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅disk_name
Linux 内核源代码 (linux/block/partition-generic.c) 中的函数:
if (isdigit(hd->disk_name[strlen(hd->disk_name)-1]))
snprintf(buf, BDEVNAME_SIZE, "%sp%d", hd->disk_name, partno);
else
snprintf(buf, BDEVNAME_SIZE, "%s%d", hd->disk_name, partno)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
577 次 |
最近记录: |