我正在尝试为大量文件编写刻录数据蓝光媒体的脚本。我想在一台服务器上生成图像文件,以便稍后在另一台工作站上刻录到 BD-R DL (50GB) 媒体上。我的一些文件每个都在 5-6GB 范围内,这就是为什么我想要 UDF 以避免需要拆分它们。
我知道 genisoimage 将在一定程度上与实验性 udf 支持一起工作,我可能不得不使用这种方法,但我想更好地理解 udf 工具,我没有找到很多解释这种情况的文档。我一直在看 mkudffs(我在 debian buster 的 v2.1 上),但我遇到了一些麻烦......
我制作了这样的UDF图像:
$ mkudffs --media-type=bdr --label "test" disk1.udf 24414062
filename=disk1.udf
label=test
uuid=5ec05b12f5d75d8c
blocksize=2048
blocks=24414062
udfrev=2.50
vatblock=319
start=0, blocks=16, type=RESERVED
start=16, blocks=4, type=VRS
start=20, blocks=76, type=USPACE
start=96, blocks=16, type=MVDS
start=112, blocks=16, type=USPACE
start=128, blocks=1, type=LVID
start=129, blocks=95, type=USPACE
start=224, blocks=16, type=RVDS
start=240, blocks=16, type=USPACE
start=256, blocks=1, type=ANCHOR
start=257, blocks=31, type=USPACE
start=288, blocks=24413760, type=PSPACE
start=24414048, blocks=14, type=USPACE
然后我尝试通过循环安装来使用图像:
$ mount -o loop,rw disk1.udf /mnt/usb
$ mount |grep usb
disk1.udf on /mnt/usb type udf (ro,relatime,utf8)
但我无法写信给它......
我假设它是以只读方式安装的,因为手册页表明蓝光使用 UDF 修订版 2.50,而 linux 内核仅支持高达 2.01 的 UDF 修订版的读写支持。
我的问题是:
- 那么应该如何使用 mkudffs 工具制作蓝光 UDF 图像呢?
- 我是否错过了在创建过程中输入数据的方法?
- 或者 mkudffs 可以在创建后转换图像吗?
- 如果 mkudffs 只创建一个空白文件系统并且需要读写才能将数据放在上面,为什么 mkudffs 会有一个 '--close' 和 '--read-only' 参数?
- 有没有办法将数据包写入图像文件?
谢谢!
好的,所以我通过在 pali/udftools 存储库上将此问题发布到 GitHub 得到了答案。
以下是来自 Pali 的回复,如下所示。我添加了一个以星号 (*) 为前缀的注释。
确切地。
目前以您使用它的方式。问题是没有可以将新文件复制到 UDF 2.50 或 UDF 2.60 映像的 linux 工具。
mkudffs 不支持在格式化期间放置文件。mke2fs(对于 ext2/3/4)也同样有效,它不支持在格式化期间放置新文件。
不,它不能。
为格式化 UDF 文件系统提供完整的功能支持
对不起,但我不明白这个问题。数据包写入是一种如何将数据/数据包写入光学介质的技术/操作,例如类似于“写入”系统调用的实现。
*这个问题令人困惑,但答案是否定的。数据包写入仅适用于实际驱动器。
基本上我不知道有任何非商业的 Linux 工具可以用文件创建非空的 BD-R UDF 映像(2.50+)。有付费的 Nero for Linux 支持它。
我的计划是扩展 mkudffs 以允许在格式化期间“放置”文件/目录,但我还没有时间实现它。因此,它将成为第一个用于预格式化 UDF 2.50+ 光盘的免费 Linux 工具。但我不认为在不久的将来我会有时间去做。当然,欢迎使用此类实现的补丁!