为什么 CD/DVD 不能分区?

为什么 CD/DVD 不能分区?

几乎所有地方都写着这是不可能的。但是为什么呢?为什么我不能把 GPT/MBR 分区表转储到第一个扇区?基本上就是转储扇区大小为 2048 的磁盘布局...

现在我确信这种事情是可能的,但当然没有操作系统会识别它。所以问题是,为什么不呢?分区表有什么难的?零支持对光盘进行分区背后的技术原因是什么?

答案1

分区功能在光学介质上没有得到很好支持可能有两个主要原因:

  • 光学介质一开始就很小(与 HDD 相比)。
  • 光学媒体是只读的。后来,随着消费级刻录机的普及和 RW 技术的出现,这一技术得到了发展。

如今,有更好的解决方案,例如 U 盘甚至便携式硬盘。不是每个人都有蓝光阅读器,也不是每个人都想购买 RW DVD。因此,在光学介质方面,分区从来都不是要求足以让它发生。

我必须指出答案罗德·史密斯给出了一个类似的问题,我现在引用一下:

不过,这条规则也有例外。有些 Mac 光盘是用分区表和 HFS 或 HFS+ 来代替或补充 ISO-9660 的。这类光盘使用 Apple Partition Map (APM) 分区表。有些 Linux 发行版的安装光盘使用与分区表共存的 ISO-9660,但此处的目的是以不同的方式支持不同的媒体 - 当将映像刻录到 CD-R 或 DVD 时,它看起来是无分区的 ISO-9660 光盘;但当将其写入 USB 闪存驱动器时,它看起来是分区的硬盘。这种伎俩之所以有效,是因为各种数据结构存在差距,而且光学媒体(2048 字节)与硬盘和 USB 闪存驱动器(512 字节)使用的扇区大小也不同。这两个示例(Mac 光盘和 Linux 安装光盘)都是对 ISO-9660、MBR 分区等标准的黑客扩展。

正如你所见,事实并非如此技术上这是不可能做到的,但如果做到了,就可以提供无法通过其他方式完成的额外支持。

答案2

如果您在 Linux 系统上创建 DVD,则“分区”DVD 相当容易。如果您对 DVD 进行“分区”,它将在操作系统中显示为两个或更多个独立的 DVD 驱动器。

有很多方法可以做到这一点。例如,您可以使用 -eltorito-alt-boot 选项来 mkisofs。这是我用来创建 UEFI Rescue DVD 的方法,其中包含 32 位和 64 位工具集以及 EFI 和 UEFI shell。

哦,相关规格是富士山 v8。

答案3

iso9660 标准涵盖了 cdrom 规范,由于分区不属于该规范,所以没有人编写驱动程序来处理它们。没有现有的驱动程序会支持您对文件系统的更改,而且我认识的所有程序员都不会违反该规范。

现在更改驱动程序不仅意味着添加现有扇区,还意味着更改整个代码库以适应分区背后的逻辑。假设您编写了这样的驱动程序并制作了这样的 ISO,那么其他人就无法读取 CD 的 ISO,因为其他人的驱动程序都遵循规范。当您将更改提交给 ISO 标准委员会时,让他们查看并完成整个批准过程将需要数年时间。但是,他们可能不会批准它,因为所有现代硬件都是围绕原始规范设计的。

最初的想法可能是,谁会想分割这么小的空间呢?他们可能会考虑开发、编写和测试代码需要多少工作量,然后说要满足他们设定的任何最后期限,工作量实在太大了。

相关内容