这是在 Ubuntu 20.04.1、Pioneer BDR-XS07、50 GB BD-RE(测试了来自不同供应商的多张光盘)上进行的。
使用 UDF 版本 2.50 格式化光盘的方法如下:
$ sudo mkudffs --utf8 --blocksize=2048 --media-type=bdr --udfrev=0x0250 --lvid=Backup2 --vid=Backup2 /dev/sr0
但安装它却不行(Unable to mount volume backup: Gio.IOErrorEnum: Error mounting /dev/sr0 at /media/cts/backup: wrong fs type, bad option, bad superblock on /dev/sr0, missing codepage or helper program, or other error
)。
将光盘格式化为“硬盘”媒体类型也可以:
$ sudo mkudffs --utf8 --blocksize=2048 --media-type=hd --udfrev=0x0201 --lvid=Backup2 --vid=Backup2 /dev/sr0
并且随后安装和写入成功。
有一件事让我印象深刻,这是问题的理论原因:
使用错误的媒体类型会导致 UDF 块/区域布局不同:
$ sudo mkudffs --utf8 --blocksize=2048 --media-type=hd --udfrev=0x0201 --lvid=Backup2 --vid=Backup2 /dev/sr0
filename=/dev/sr0
label=Backup2
uuid=600c858ed35ee0c9
blocksize=2048
blocks=23652352
udfrev=2.01
start=0, blocks=16, type=ERASE
start=16, blocks=4, type=VRS
start=20, blocks=76, type=ERASE
start=96, blocks=16, type=MVDS
start=112, blocks=16, type=ERASE
start=128, blocks=4, type=LVID
start=132, blocks=124, type=ERASE
start=256, blocks=1, type=ANCHOR
start=257, blocks=23651832, type=PSPACE
start=23652089, blocks=6, type=ERASE
start=23652095, blocks=1, type=ANCHOR
start=23652096, blocks=96, type=ERASE
start=23652192, blocks=16, type=RVDS
start=23652208, blocks=143, type=ERASE
start=23652351, blocks=1, type=ANCHOR
$
对比
$ sudo mkudffs --utf8 --blocksize=2048 --media-type=bdr --udfrev=0x0250 --lvid=Backup2 --vid=Backup2 /dev/sr0
filename=/dev/sr0
label=Backup2
uuid=600c854ca5a22d78
blocksize=2048
blocks=23652352
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 g
start=257, blocks=31, type=USPACE
start=288, blocks=23651776, type=PSPACE
start=23652064, blocks=31, type=USPACE
start=23652095, blocks=1, type=ANCHOR
start=23652096, blocks=256, type=USPACE
$
所以我认为我没有从 BD-RE 中获得最佳的性能/可靠性/缺陷管理?
在 Linux 下使用 UDF 文件系统格式化 BD-RE 以进行数据包写入的正确方法是什么?
答案1
我也遇到了这个老问题,这次我解决了它。我记得我曾对 Windows 和 macOS 支持在 0x0250 版本上写入这一事实感到不满。Linux 则不支持。
尽管我知道,但我的旧文档显示明确请求 0x250。
看看你的输出。一个图像的版本号是 2.50,另一个是 2.01。后者将支持写入操作,前者将出现错误消息或只能读取。
这个过程其实很简单(你需要根):
- 格式化媒体一次用于缺陷管理。
dvd+rw-format '/dev/sr0' ;
- 将 UDFFS 放在上面:
mkudffs --utf8 \
--blocksize=2048 \
--media-type=dvdrw \
--udfrev=0x0201 \
--lvid=Backup2 \
--vid=Backup2 \
'/dev/sr0' ;
毕竟,BluRay 是 DVD。
- 挂载 paket 设备:
mount -t udf -o rw,noatime,async \
'/dev/sr0' '/data/filesystem/disc/'
如果您预计会出现断电或系统崩溃的情况,您可能想使用
sync
而不是async
。