写入蓝光双层光盘时出现 growisofs 警告

写入蓝光双层光盘时出现 growisofs 警告

我正在将我的媒体收藏存档到 BD-R 双层光盘上,但在写入过程结束时(通常完成度 > 95%)不断出现以下 IO 错误:

:-[ WRITE@LBA=168e800h failed with SK=5h/END OF USER AREA ENCOUNTERED ON THIS TRACK]: Input/output error
:-( write failed: Input/output error
/dev/sr0: flushing cache
/dev/sr0: closing track
/dev/sr0: closing session
:-[ CLOSE SESSION failed with SK=5h/INVALID FIELD IN CDB]: Input/output error
/dev/sr0: reloading tray 

我的归档过程详述如下:

  1. dirsplit -m -s 46G /path/to/folder>将原有61G文件夹分成两个大小<=46GB的文件夹。(蓝光 DL 容量为 50050629632 字节 == 46.61GB
  2. genisoimage -ldots -allow-lowercase -allow-multidot -d -iso-level 4 -l -o /path/to/file.iso /path/to/folder> 生成与 OS X 文件夹结构和文件名兼容的 iso 映像。
  3. growisofs -Z /dev/sr0=/path/to/file.iso> 将 iso 映像写入蓝光光盘。

有趣的是,我能够成功挂载并读取刻录的光盘,尽管成长无法关闭会话。但我不确定所有数据是否都已写入磁盘。

我比较了光盘和 img 文件的 md5 校验和(感谢埃温迪施在 Unix&Linux 上),但两个字符串不匹配。说光盘大小为 48GB,而不是写入其中的 46GB 图像。

但是,运行cmp -b -l /path/to/image.iso /dev/sr0返回cmp: EOF on /dev/sr0意味着光盘映像小于 iso 文件。

据我所知,growisofs部分映像已写入光盘,但由于某种原因而停止。虽然我可以安装“不完整”的光盘,但我需要找出刻录停止的原因。

有人能给我指明正确的方向吗?我找不到/var/log/*growisofs 写的任何记录,只能查看此页面顶部的神秘输出。

答案1

@丹尼尔克雷吉:

我在刻录 50,011,897,856 字节的 ISO 映像时遇到了完全相同的问题,该映像仅比您提到的最大蓝光 DL 容量(50050629632 字节)小 37.8MB。

以下是解决我的情况的方法:

growisofs -use-the-force-luke=spare:none -dvd-compat -overburn -Z /dev/sr0=/path/to/file.iso

我怀疑-过度烧伤参数不是必需的,但我不能肯定地说,因为我还没有尝试过不使用这个参数刻录光盘。那些 BD-R DL 有点贵。-dvd 兼容参数使 growisofs 关闭 track/session/disc,以使其与一些不喜欢多区段光盘的蓝光播放器更兼容。

记录不全使用力量卢克=备用:无参数似乎是解决问题的关键参数。它指示 growisofs 不要预格式化空白 BD-R 介质。立即预格式化介质占用 256MB 磁盘空间用于缺陷管理。

因此,现在:-[ CLOSE SESSION failed我不再遇到光盘刻录过程进行到 95-96% 左右时令人畏惧的情况,而是得到了以下信息:

49979686912/50011897856 (99.9%) @4.0x,剩余 0:01 RBU 96.0% UBU 51.1%
Builtin_dd:24419872*2KB 输出@平均 3.9x4390KBps
/dev/sr0:刷新缓存
/dev/sr0:关闭轨道
/dev/sr0:关闭会话
/dev/sr0:重新加载托盘

答案2

正如 Beef Eater 的回答所述,这是由于缺陷管理“备用区域”占用了 256MB 空间,这意味着您的 UDF 文件系统映像将不再适合磁盘。您可以采取两种措施来解决这个问题:

  1. 相应地减小图像大小,并受益于蓝光规范要求的内置缺陷管理(尽管写入速度会降低 50%)。您可以在输出中多次列出介质上的实际可写空间,dvd+rw-mediainfo例如:

    $ dvd+rw-mediainfo /dev/dvd
    ...
    READ FORMAT CAPACITIES:
     formatted:             11826176*2048=24220008448
    READ TRACK INFORMATION[#1]:
     Track State:           complete
     Track Start Address:   0*2KB
     Free Blocks:           0*2KB
     Track Size:            11826176*2KB
    READ CAPACITY:          11826176*2048=24220008448
    

    这告诉您磁盘上有 11826176*2KB = 23652352 KB 的可用空间,您可以将其用作拆分或映像创建工具的输入,例如

    $ truncate -s 23652352K my_image.udf
    $ mkudffs my_image.udf
    ... fill up the image etc ...
    
  2. 禁用驱动器上的缺陷管理并删除备用区域,这将允许您全速写入磁盘的全部容量。这可以使用dvd+rw-format文档中的工具来完成这里例如

    $ dvd+rw-format /dev/dvd -ssa=none
    

    由于在这种情况下不会有缺陷管理,您可能需要在写入磁盘后手动验证磁盘,例如使用命令diff -r

答案3

我刻录 25GB 蓝光盘时也出现以下错误:

:-[ CLOSE SESSION failed with SK=5h/INVALID FIELD IN CDB]: Input/output error

当我运行以下命令时,在“Ubuntu 14.04 LTS trusty”上:

growisofs -Z /dev/sr1 -V "BD_Disk_Name" -R -iso-level 3 "/path/to/directory/to/burn"

我不愿意使用

-use-the-force-luke=spare:none

解决方案,因为我不想放弃错误检查。

看来这是一个已知错误(我没有添加链接的代表,但它位于 bugs dot debian dot org 编号 713016),已在“dvd+rw-tools 7.1-11”中进行了修补。不幸的是,该版本在“14.04 LTS trusty”上不可用,但在“vivid”上可用。

因此,如果您碰巧遇到同样的情况,请按照我的方法获取新版本。

其他地方建议使用“固定”来获取较新版本的软件,但我没有尝试,因为这个,其中描述了如何操作,指出这样做可能会有问题,并推荐了一种比固定更好的替代方案。遗憾的是,他们漏掉了一个步骤,所以以下是我发现有效的方法:

您应该“cd”到您希望构建文件最终停留的位置。

编辑此列表以添加包含您所需的版本的“deb-src”:

nano /etc/apt/sources.list

就我而言,我将这一行添加到“sources.list”中:

deb-src http://archive.ubuntu.com/ubuntu vivid main restricted universe multiverse

然后执行“更新”:

sudo apt-get update

然后获取依赖项:

sudo apt-get build-dep dvd+rw-tools

现在你可以获取源代码:

apt-get -b source dvd+rw-tools=7.1-11

安装‘dvd+rw-tools_7.1-11_i386.deb’:

dpkg --install dvd+rw-tools_7.1-11_i386.deb

但是这并没有安装新版本的“growisofs”,所以我不得不运行它(也许如果我先运行它,它会安装所有内容?):

dpkg --install
(Reading database ... 62345 files and directories currently installed.)
Preparing to unpack growisofs_7.1-11_i386.deb ...
Unpacking growisofs (7.1-11) over (7.1-10build1) ...
Setting up growisofs (7.1-11) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...

确认安装了较新版本的‘growisofs’:

dpkg -s growisofs

Package: growisofs
Status: install ok installed
Priority: optional
Section: video
Installed-Size: 202
Maintainer: Optical Media Tools Team <[email protected]>
Architecture: i386
Source: dvd+rw-tools
Version: 7.1-11
Replaces: dvd+rw-tools (<< 7.1-9)
Depends: libc6 (>= 2.4), libstdc++6 (>= 4.1.1)
Breaks: dvd+rw-tools (<< 7.1-9)
Description: DVD+-RW/R recorder
[...]

享受刻录蓝光盘的乐趣!

答案4

我在写入 BD DL 50GB 磁盘时也遇到了问题。仅此而已。写入 CD-R(W)、DVD-R(W)、DB-R SL 25GB 时没有问题。我正在使用 FreeBSD。

经过一番研究,我发现验证确切的磁盘类型固件刻录机!新固件可以支持新磁盘并更好地处理它们。一些刻录机提供“媒体兼容性列表”,该列表可能会随着固件版本的改变而改变。磁盘有不同的技术和版本,想象一下?;-)

我的 Pioneer BDR-208D FW1.20 恰好停在 BD-R DL 磁盘的中间。固件升级到 FW1.50 后:

  • 使用 Verbatim BD-R DL 50GB MABL V1.3 磁盘时 ISO 刻录会随机中断。
  • ISO 刻录与 Verbatim BD-RE DL 50GB SERL V2.1 磁盘配合使用效果很好。

注意:我实际上并没有刻录 ISO,而是直接在磁盘上刻录 GPG 加密备份。它适用于 BD-R SL(25GB)介质。

-use-the-force-luke=spare:none似乎没有帮助,而且对我来说并不是必需的。图像比 50GB 小一点(每个约 46..47GB)。

我很快就会购买具有最佳固件更新率的华硕 BW-16D1HT,并将使用相同的磁盘进行报告。

更新 1:我刚拿到了华硕 BW-16D1HT FW3.10。它支持新的 BDXL 100GB 介质。它支持新的 M-DISK(超长备份寿命)。希望它能处理那些 Verbatims。

  • 与以前一样使用工厂全新 BD-R DL 50GB MABL V1.3 磁盘。
  • 预格式化完成,但是,与 Pioneer 一样,WRITE@LBA=390h 因输入/输出错误而失败。
  • 重新启动相同的命令开始写入。让我们看看是否完成。Pioneer 在磁盘中间 (FW1.20) 或随机位置 (FW1.50) 确实有中断。ASUS 的平均写入速度似乎更高,为 0.6..0.7 倍,而 Pioneer 的波动很大,为 0.0..0.6 倍。

更新 2:

  • 在 ASUS BW-16D1HT 固件 3.10 上刻录 Verbatim BD-R DL 50GB MABL V1.3(标称写入速度 6 倍)没有问题速度 2 倍明确作为-speed=2参数给出growisofs
  • 以 8 倍速刻录(刻录机自动检测,未指定速度参数)确实在随机位置出现错误。重试操作会使刻录机处于非操作繁忙状态,并且 DMESG 中会出现大量 CAM 错误。
  • 看起来有些磁盘与某些刻录机根本不兼容。
  • 看起来这两层磁盘是极其对写入速度敏感。如果在不同的设备和固件版本上出现类似的问题,那么这可能是磁盘技术本身的问题。

结论:

  1. 验证磁盘类型和刻录机供应商 + 固件版本
  2. 蓝光光盘有很多不同的版本和制造技术
  3. 并非所有的磁盘和刻录机都能配合好吧,或者根本就不合作!
  4. 使用尽可能低的写入速度写入 BD DL 光盘. 它们对所有刻录机上的写入波动和缓冲区欠载都极其敏感(即使这些刻录机有缓冲区可以防止这种情况发生)。

相关内容