我正在将我的媒体收藏存档到 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
我的归档过程详述如下:
dirsplit -m -s 46G /path/to/folder
>将原有61G文件夹分成两个大小<=46GB的文件夹。(蓝光 DL 容量为 50050629632 字节 == 46.61GB)genisoimage -ldots -allow-lowercase -allow-multidot -d -iso-level 4 -l -o /path/to/file.iso /path/to/folder
> 生成与 OS X 文件夹结构和文件名兼容的 iso 映像。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 文件系统映像将不再适合磁盘。您可以采取两种措施来解决这个问题:
相应地减小图像大小,并受益于蓝光规范要求的内置缺陷管理(尽管写入速度会降低 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 ...
禁用驱动器上的缺陷管理并删除备用区域,这将允许您全速写入磁盘的全部容量。这可以使用
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 错误。
- 看起来有些磁盘与某些刻录机根本不兼容。
- 看起来这两层磁盘是极其对写入速度敏感。如果在不同的设备和固件版本上出现类似的问题,那么这可能是磁盘技术本身的问题。
结论:
- 验证磁盘类型和刻录机供应商 + 固件版本。
- 有蓝光光盘有很多不同的版本和制造技术。
- 并非所有的磁盘和刻录机都能配合好吧,或者根本就不合作!
- 使用尽可能低的写入速度写入 BD DL 光盘. 它们对所有刻录机上的写入波动和缓冲区欠载都极其敏感(即使这些刻录机有缓冲区可以防止这种情况发生)。