符号链接损坏,无法将 ISO 刻录到 CD

符号链接损坏,无法将 ISO 刻录到 CD

一段时间以来,我遇到了最奇怪的问题,它把大约 10 张 CD-R 变成了杯垫。我试图刻录可启动 ISO,这是 IBM x345 机箱中 ServeRAID 控制器的支持软件。无论我使用什么程序刻录 ISO(cdrecord [raw96r、raw96p]、ImgBurn、Nero、CdBurnerXP),/lib 中的符号链接都会断开。例如,/lib/libncurses.so.5.2 会在那里,但 /lib/libncurses.so.5(应该是实际库的符号链接)的大小将为 0。显然,这会在某个时候使启动过程崩溃。

sudo cdrecord -v -speed=1 -dev=/dev/sg0 -raw96r /tmp/ibm_fm_srsupp_7_12_14_anyos_32-64.iso

我最后的想法是本地安装 ISO,然后从目录树中创建一个新的 ISO。这个方法也没有取得多大成功,但这可能是因为我创建 ISO 的方式不对 (?):

sudo genisoimage -no-emul-boot -c bootcd/isolinux/boot.catalog -input-charset iso8859-1 -output-charset iso8859-1 -r -U -b bootcd/isolinux/vmlinuz -hide /mnt/ibm_cd/bootcd/vmlinuz2 -V "ServeRAID_v7_12_14" -iso-level 3 -o /tmp/ibm_cd2.iso /mnt/ibm_cd/

IBM 之前的几个版本也存在同样的问题,所以我不得不假设问题出在我这边。例如:

我向能够解决这个难题的人致以无限的谢意!

答案1

我下载了 ftp://download2.boulder.ibm.com/ecc/sar/CMA/XSA/ibm_fw_srsupp_7_12_14_anyos_32-64.iso

您声明一个内核文件作为启动映像。但原始 ISO 配备了 ISOLINUX 启动映像 bootcd/isolinux/isolinux.bin 。隐藏该内核文件也无济于事。

因此,您的 genisoimage 运行肯定存在错误

-b bootcd/isolinux/vmlinuz -隐藏/mnt/ibm_cd/bootcd/vmlinuz2

并且肯定缺少选择

-boot-load-size 4 -boot-信息表

另请参阅 ISOLINUX wiki。
也就是说,它应该是这样的

sudo genisoimage \
  -c bootcd/isolinux/boot.catalog \
  -b bootcd/isolinux/isolinux.bin \
     -boot-load-size 4-boot-info-table-no-emul-boot \
  -输入字符集 iso8859-1 -输出字符集 iso8859-1 \
  -r -U -V “ServeRAID_v7_12_14”-iso-级别 3 \
  -o /tmp/ibm_cd2.iso /mnt/ibm_cd/

刻录程序与符号链接的正确性无关。不过,选项 -raw96r 相当奇特。您的刻录机是否拒绝 -tao 或 -sao?

原始图像中有一些损坏的符号链接。例如

/mnt/ibm_cd/bootcd/usr/X11R6/bin/xsetbg->usr/X11R6/bin/xloadimage

有些则导出 ISO 映像。例如

/mnt/ibm_cd/bootcd/etc -> /etc

这些无法通过 genisomage 运行进行修复。您必须在 ISO 文件树的解压副本中修复它们。例如

cp -a /mnt/ibm_cd $HOME/unpacked_ibm_cd

但是链接 libncurses.so.5 似乎没有问题。

/mnt/ibm_cd/bootcd/usr/lib/libncurses.so.5-> libncurses.so.5.2

它的尺寸是 17。你通过什么方式看到尺寸 0 的?

祝你今天过得愉快 :)

托马斯

相关内容