在 Windows XP 上使用 rock ridge 扩展

在 Windows XP 上使用 rock ridge 扩展

我需要将包含大量文件和符号链接的目录备份到 DVD 上。我没有该目录的写权限。

我已经使用以下命令从 GNU/Linux 创建了启用 rock-ridge 和 joliet 扩展的 DVD 映像:

genisoimage -r -J -joliet-long -T -o mess.iso mess/

结果还不错。

现在我需要从 Windows XP 访问 DVD,但所有符号链接似乎都悬空(它们显示为 0 大小文件)。据我了解,这是因为符号链接由 rockridge 扩展处理,而 Windows XP 无法使用它。

是否可以安装一些东西来正确访问该 DVD?自定义文件管理器也是一个选项。如果有帮助的话,我还可以使用不同的选项重新制作图像。

答案1

尤里卡!我已经能够完成所要求的事情了。

首先,我将所有符号链接转换为硬链接。我创建了一个类似以下的脚本:

#!/bin/sh

link="$1"

error() {
    echo "Error: $1." 1>&2
    exit 1
}

[ -h "$link" ] || error "'$link' is not a symbolic link"

linkdir=`dirname "$link"`
linkname=`basename "$link"`
target=`cd "$linkdir" 2> /dev/null && readlink -qfn "$linkname"`
[ $? = 0 ] || error "unable to readlink '$link'"

[ -f "$target" ] || error "'$link' target is not a regular file"

ln -f "$target" "$link" || error "hard-link failed on '$link'"

并在目录下执行mess

find . -type l -print0 | xargs -0n1 soft2hard.sh

之后,我以与以前相同的方式创建了 ISO 映像,但确保--cache-inode已使用(我还省略了-T以减少混乱):

genisoimage -r -J -joliet-long --cache-inodes -o mess.iso mess/

瞧:一切都可以通过 Windows XP 完美访问,并且适合低密度 DVD。

答案2

符号链接在 iso 中显示为指向 Windows 无法处理的外部文件系统的链接。

对于更独立于操作系统的 CD 格式,您应该使用genisoimage参数-f来取消引用符号链接或跟随它们,而不是使用 Rock Ridge 输入它们。

这样,您就将符号链接的目标添加到 ISO 映像,而不是符号链接本身。文件将出现在目录结构中,代替符号链接。

文章CD 刻录方法对问题有很好的解释,尽管它使用的mkisofs是 而不是genisoimage

[编辑]

如果您的目标是 Vista/7/8 而不是 XP,则可以不使用符号链接进行备份并在 NTFS 上恢复。然后在 Linux 上创建一个 Windows 批处理脚本,该脚本将创建等效的NTFS 符号链接
但是XP只支持文件夹的链接,而不支持文件的链接。

有关详细信息,请参阅NTFS 重新解析点一个有用的 Windows 实用程序是连接点

无论如何,Windows 中的 DVD 不能有符号链接,因此您需要在 NTFS 上进行恢复。

相关内容