解释磁盘分区描述符
该man
页面关于的gpart add
是:
(https://www.freebsd.org/cgi/man.cgi?gpart(8))
指数:”分区表中新分区的索引。该索引决定了用于表示分区的设备特殊文件的名称。“
问题:那么,这是否意味着它是用于人类身份识别?特殊文件是什么?它到底是用来做什么的?
标签:”附加到分区的标签。此选项仅在支持分区标签的分区方案上使用时有效。“
问题:索引不是也附加到分区吗,因为每个分区都有一个索引和一个标签?这有什么不同?下一行给出了一个特殊情况,但同样没有解释或示例说明这实际上是什么为了。
我猜想分区标签给出了特定分区的格式。或者说是类型?
类型 没有给出任何解释。add
它实际上并没有在小节中或小节中解释它是什么PARTITION
。我能够从过去格式化磁盘的经验中推断出该类型将定义格式我的磁盘分区。格式,根据我的个人经验,它决定了该特定分区的压缩、访问方法和读/写行为。在考虑格式考虑许多因素(速度、可恢复性、兼容性)非常重要。
相关答案
我发现这个解释(分区名称和分区标签有什么区别?)关于标签和名称之间的区别,这很有帮助。
理由
我认为简洁地解释 gpart add 中每个可用选项以解释磁盘标签和描述会很好,因为对磁盘管理知之甚少或一无所知的人会在手册页和互联网搜索的前 3 页中迷失。
最佳答案的标准:
为每个分区描述符(标签、名称、类型、索引和标志)提供更好的解释。1. 解释存在的原因(例如:标签在启动时由 intramfs 用于区分已安装的设备)
2. 解释选择时要考虑的事项(fat16 和 fat32 msdosfs 文件系统与 windows 系统的兼容性很好,ext4 与 windows 存在一些兼容性问题,但对数据完整性有好处(因为它有日志记录)。
答案1
问题:那么,代表性的意思是,它是用于人类身份识别的吗?特殊文件是什么?它到底是用来做什么的?
大多数 Unix 风格的操作系统将磁盘和分区公开为目录下的“设备节点” /dev
。例如,Linux 上的 SATA 磁盘 2 分区 1 为/dev/sdb1
,FreeBSD 上的 为/dev/ada0s1
。
没有专用的“磁盘访问”系统调用 - 相反,每当您需要读取或写入磁盘时(例如,创建文件系统或挂载文件系统时),您总是使用这些文件。
问题:索引不是也附加到分区吗,因为每个分区都有一个索引和一个标签?这有什么不同?下一行给出了一个特殊情况,但同样没有解释或示例说明这实际上是做什么的。
索引是隐式的。分区表并不实际存储每个分区的编号;分区的索引为 2,因为它是表中的第二个条目。对于大多数工具,删除分区 1 会自动将分区 2 移位为新的分区 1。
标签是明确的。它是存储在分区表中的简短文本名称(如果使用 GPT 磁盘 - MBR/DOS 磁盘根本不支持分区标签)。标签由用户设置,除非您更改它,否则永远不会更改。
上面提到的“设备节点”通常根据分区的索引命名。但是,某些操作系统会根据标签创建“设备节点”符号链接,例如在 Linux 上,您会自动/dev/disk/by-partlabel/Windows
指向/dev/sda2
。这样即使磁盘突然被检测为磁盘 2 或 3 而不是磁盘 1,也可以引用相同的分区。
(请注意,许多文件系统还支持将“标签”直接存储在文件系统的元数据中 - 这也是一个文本名称,并且具有与 GPT 标签相同的用途,但仍然是一个独立的东西,超出了 的范围gpart
。
更让人困惑的是,还有一个第三“标签”的含义——在某些程序中,“磁盘标签”一词表示磁盘的类型分区表例如,MBR 分区表有时也被称为“MBR 磁盘标签”或“DOS 磁盘标签”。)
我的猜测是分区标签给出了特定分区的格式。
不是。它只是用户设置的文本名称。
type 没有给出解释。它实际上并没有在 add 子节和 PARTITION 子节中给出它是什么的解释。我能够从过去格式化磁盘的经验中推断出该类型将定义我的磁盘分区的格式。
不。它与文件系统格式有点相关,但实际上并没有定义格式,而是指示分区的目的例如,许多 Linux 文件系统格式只有一种类型,而Windows 文件系统格式只有linux-data
一种类型。ms-basic-data
再举一个例子,如果 FAT32 格式的分区用于常规数据存储,则可以使用该ms-basic-data
类型,但如果用于保存 UEFI 引导加载程序,则它将使用该efi
类型,但在两种情况下它都包含相同的 FAT32 文件系统格式。
一般来说,固件和操作系统可以使用分区类型来快速搜索符合特定用途的分区,而无需先实际检查每个分区的内容。
答案2
我不了解 Unix,但它的历史可以追溯到很久以前。
我怀疑索引可能是 PC 类型驱动器的磁柱、磁头、分区起始扇区,但可能更早。但这已被 LBA 取代,现在有新的大型驱动器 4KiB 扇区。 https://ata.wiki.kernel.org/index.php/ATA_4_KiB_sector_issues
由于使用 UEFI,我们现在使用 gpt 分区,因此我们有多个标签。磁盘标签(有时称为标签)表示驱动器是 MBR(msdos)还是 gpt,或者可能是其他分区之一(sun、aix 等)。然后我们有一个分区格式标签和一个 gpt(GUID)部分标签。名称是 vfat 之类的格式。虽然允许使用 FAT16,但通常使用 FAT32,现在推荐使用。
我没有创建 USB 安装程序,而是只使用 grub2 的 loopmount 直接启动 ISO,然后在更大的驱动器上我可以将多个 ISO 作为修复闪存驱动器。
fred@bionic-z97:~$ lsblk -o FSTYPE,NAME,LABEL,PARTLABEL,SIZE,MOUNTPOINT
FSTYPE NAME LABEL PARTLABEL SIZE MOUNTPOINT
sdd 3.8G
└─sdd1 vfat FOCAL focal 3.8G /media/fred/FOCAL
不知道 Debian 怎么样,但以前你只能提取 ISO 并通过 UEFI 启动它,因为 UEFI 期望从 /EFI/Boot 文件夹启动。使用 BIOS 你还必须添加 BIOS 启动加载程序,如 syslinux。
2.04 内存不足错误循环挂载
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1851311
FAT32 中的链接错误:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-meta/+bug/1849534