使用xorriso修改Ubuntu ISO后,能否自动更新ISO内的md5sum.txt?
如何用xorriso更新Ubuntu ISO修改后的/md5sum.txt?
问题描述
我参考Debian Wiki的方法,用以下xorriso命令修改Ubuntu ISO:
xorriso \ -indev "$orig_iso" \ -outdev "$new_iso" \ \ -map "$changed_isolinux" /isolinux \ -rm /isolinux/f10.txt -- \ \ -boot_image any replay \ \ -compliance no_emul_toc \ -padding included
请问xorriso是否支持生成新的/md5sum.txt来反映-map和-rm操作的修改?我查手册看到了make_md5相关功能,但添加后并未更新/md5sum.txt。如果xorriso做不到,我是否需要手动提取并修改该文件?
解决方案
1. 用xorriso内置功能生成并替换/md5sum.txt
xorriso的-make_md5参数确实可以生成MD5校验文件,但默认不会自动匹配Ubuntu ISO中/md5sum.txt的格式和位置。你需要明确指定生成路径,并确保命令顺序正确(所有文件修改操作完成后再生成MD5)。
修改后的命令示例:
xorriso \ -indev "$orig_iso" \ -outdev "$new_iso" \ \ -map "$changed_isolinux" /isolinux \ -rm /isolinux/f10.txt \ \ # 生成并替换根目录下的md5sum.txt -make_md5 /md5sum.txt \ \ -boot_image any replay \ \ -compliance no_emul_toc \ -padding included
注:Ubuntu的
md5sum.txt格式是每行MD5值 相对路径,-make_md5参数会自动适配这种格式,但要确保覆盖原文件(如果原ISO中已存在/md5sum.txt)。
2. 手动生成(如果xorriso内置方法失效)
如果上述命令未能正确更新/md5sum.txt,可以手动处理:
- 步骤1:将原ISO内容提取到临时目录
mkdir temp_iso xorriso -indev "$orig_iso" -extract / temp_iso - 步骤2:在临时目录中修改文件(替换isolinux目录、删除f10.txt等)
- 步骤3:重新生成
md5sum.txtcd temp_iso # 对目录内所有文件生成MD5,排除临时文件和目录本身 find . -type f ! -name "md5sum.txt" -print0 | xargs -0 md5sum > md5sum.txt cd .. - 步骤4:用xorriso重新打包ISO
xorriso \ -outdev "$new_iso" \ -map temp_iso / \ -boot_image any replay \ -compliance no_emul_toc \ -padding included - 步骤5:清理临时目录
rm -rf temp_iso
内容的提问来源于stack exchange,提问作者Sam Herrmann
相关产品推荐
相关产品推荐

