如何在 Fedora 26 中从 DVD-R 中删除文件

如何在 Fedora 26 中从 DVD-R 中删除文件

我使用 Fedora 26 并有一张包含一些文件的 DVD-R。因此,我的目标是删除该文件并在之前未使用的(空白)磁盘空间上写入新文件。我如何删除旧文件(即从磁盘上完全物理擦除)以免在空白磁盘空间上写入。过程中?

答案1

写入 DVD-R 的工作原理是告诉 DVD 驱动器打开一个新的“会话”,写入多个块,然后关闭会话,这会将一些内务信息写入 DVD。

整个过程是只写的,只能写入之前未使用过的新块。不可能重新使用已写入的块,即使它仅包含零(因为它仍然具有非空纠错和格式字段位,这将是非零的)。所以物理上不可能多次写入块。

当您读取 DVD 时,默认情况下,驱动器会从最后写入的会话开始(但您可以使用正确的软件访问较早的会话)。

每个会话都包含 DVD 上可用文件和目录的“目录”。该目录可以利用早期的会话。

因此,您无法删除 DVD 上的旧文件并重新使用其空间。你可以模拟通过编写不再包含这些文件名的新“目录”来删除它们,但旧文件仍然占用 DVD 上的空间,如果您访问较早的会话,您将能够访问旧文件。

但写这个目录会占用空间,所以“删除”那些文件实际上会“使用”更多的空间。

要制作反映对目录层次结构所做的更改的多会话 DVD,您可以使用 选项-old-rootmkisofs请参阅man mkisofs获取详细信息。

答案2

我主要同意dirkt的回答。不过,有些评论过大:

仅当刻录前一个会话时 DVD-R 保持可附加状态时,此功能才有效。例如,通过使用 cdrecord/wodim/cdrskin/xorrecord 选项“-multi”,或者不使用 Growthisofs 选项“-dvd-compat”或 xorriso 命令“-close on”。

在使用新的 ISO 9660 目录树附加会话后,大多数操作系统默认会挂载最新的会话。但较旧的会话仍然可以通过 Linux 挂载选项“-o sbsector=0”挂载,然后将显示其旧文件。

我在这里谈论 ISO 9660 文件系统,因为 mkisofs 无法将会话添加到 UDF 文件系统,而 xorriso 根本不添加 UDF。

当然可以物理销毁旧的 DVD-R 内容。但不能通过普通的刻录机驱动器,并且可能不会使 DVD 的该部分完全无法读取。

如果您预计需要从 DVD 中部分删除数据,请使用 DVD+RW 介质。它们可以被普通程序(如“dd”)以 2 KiB 的粒度覆盖。 (xorriso 可以判断文件内容在 DVD 上的位置。)

请注意,没有一种 DVD 类型真正适合读写文件系统,您可以在其中轻松覆盖文件。 DVD-RAM 声称可以,但实际上并不可行。

相关内容