碰到一个需求需要修改centos7的安装光盘,在安装时增加一个指令的支持(ks的per段中需要划raid)

这种修改肯定是改initrd.img了。直接挂载光盘找到initrd.img,看文件类型。

# file initrd.img
initrd.img: XZ compressed data

是个xz格式的压缩文件,解压之

# cp initrd.img initrd.img.xz
# xz -d initrd.img.xz

解出来再看

# file initrd.img
initrd.img: ASCII cpio archive (SVR4 with no CRC)

是个二进制镜像文件了,可以直接解了。

# mkdir initrd
# cd initrd
# cpio -i -F ../initrd.img

解完就能看到里面的文件系统了

# ls
bin  dev  etc  init  lib  lib64  opt  proc  root  run  sbin  shutdown  sys  sysroot  tmp  usr  var

可以直接进去做操作了

# chroot ./

在这之后可以做自己的修改

我是安装了raid工具

修改完成之后退出到原有系统

# exit
# find . -depth |cpio -oc -O /home/initrd.img
# xz -zk initrd.img
# mv initrd.img.xz initrd.img

改完之后直接cpio+xz打回去之后发现不能用,不识别initrd.img导致启动失败。

一脸懵逼。逗呢。

。。。

查看文件头,发现和原有initrd.img文件不太一样

# hexdump -C ../initrd.img | head -10
00000000  fd 37 7a 58 5a 00 00 01  69 22 de 36 02 00 21 01  |.7zXZ...i".6..!.|
00000010  10 00 00 00 a8 70 8e 86  e2 67 74 ef ff 5d 00 18  |.....p...gt..]..|
00000020  0d dd 04 62 33 37 a6 1c  b3 27 04 70 ee c0 8d 80  |...b37...'.p....|
00000030  97 3f a9 50 b2 c1 9f 15  a4 f2 b9 98 d4 e0 49 6b  |.?.P..........Ik|
00000040  d7 f9 6e 85 75 f5 2b 7d  eb 96 51 d2 fd 17 68 c1  |..n.u.+}..Q...h.|
00000050  e7 80 e5 9a 6a 5d a1 5a  5a 3b a4 87 68 e0 ac de  |....j].ZZ;..h...|
00000060  a5 91 76 65 55 24 da 9c  1b 56 2a 61 fa 96 84 86  |..veU$...V*a....|
00000070  78 3f 84 75 93 9e e5 bd  18 7a 69 62 e7 ca 7a fc  |x?.u.....zib..z.|
00000080  9e ab 1c 8a 20 65 c6 1e  6d f3 0b 83 66 4a fb d3  |.... e..m...fJ..|
00000090  75 05 52 7f 61 d4 b2 47  5f 8f 50 20 de a6 4e 50  |u.R.a..G_.P ..NP|# hexdump -C initrd.img | head -10
00000000  fd 37 7a 58 5a 00 00 04  e6 d6 b4 46 02 00 21 01  |.7zXZ......F..!.|
00000010  16 00 00 00 74 2f e5 a3  e2 67 74 ef ff 5d 00 18  |....t/...gt..]..|
00000020  0d dd 04 62 33 37 a6 1c  b3 27 04 70 ee c0 8d 80  |...b37...'.p....|
00000030  97 3f a9 50 b2 c1 9f 15  a4 f2 b9 98 d4 e0 49 6b  |.?.P..........Ik|
00000040  d7 f9 6e 85 75 f5 2b 7d  eb 96 51 d2 fd 17 68 c1  |..n.u.+}..Q...h.|
00000050  e7 80 e5 9a 6a 5d a1 5a  5a 3b a4 87 68 e0 ac de  |....j].ZZ;..h...|
00000060  a5 91 76 65 55 24 da 9c  1b 56 2a 61 fa 96 84 86  |..veU$...V*a....|
00000070  78 3f 84 75 93 9e e5 bd  18 7a 69 62 e7 ca 7a fc  |x?.u.....zib..z.|
00000080  9e ab 1c 8a 20 65 c6 1e  6d f3 0b 83 66 4a fb d3  |.... e..m...fJ..|
00000090  75 05 52 7f 61 d4 b2 47  5f 8f 50 20 de a6 4e 50  |u.R.a..G_.P ..NP|

文件校验块原来是01重新压回去为啥变04了?fd 37 7a 58 5a 00 00 01 → fd 37 7a 58 5a 00 00 04

查询xz算法和xz工具后发现新的xz工具在压缩的时候自动采用了新的校验算法crc64,虽然说这个crc64要优于原本的crc32,但是linux内核用的还是crc32而且不认识crc64。怪不得报错呢。

在参数上指定强制使用crc32校验算法

# xz -zk initrd.img --check=crc32
# mv initrd.img.xz initrd.img

再一次打回光盘,成功启动。

因为系统工具升级带来的坑,比较容易让人抓狂,记下来与大家分享。

CentOS7安装光盘修改过程中initrd.img的解包及打包排雷相关推荐

  1. 探讨:在Mac新系统下安装新版XAMPP过程中遇到到的坑以及解决办法

    探讨:在Mac新系统下安装新版XAMPP过程中遇到到的坑以及解决办法 简介 XAMPP安装 XAMPP 是个啥? 安装XAMPP 新版问题:IP地址访问不再是localhost 操作问题:apache ...

  2. [Yar] yar安装与使用过程中遇到问题总结

    yar安装与使用过程中遇到问题总结 Yar 简介 官方文档 yar安装 yar运行时的默认配置 yar常量 使用范例 遇到的问题 应用流程 Yar 简介 Yar 是一个轻量级, 高效的RPC框架, 它 ...

  3. latex_3_中文会议论文模板以及修改过程中遇到的问题的解决方案

    latex中文会议论文模板以及修改过程中遇到的问题的解决方案 latex中文会议论文模板 1 报出错误: LaTex Error: File "picins.sty" not Fo ...

  4. Cordova安装与配置过程中出现的问题及解决办法

    最近在学习jQuery Mobile,在配置环境的过程中,遇到了一些问题,看百度这方面的资料挺少的,就自己总结一下了 1,在安装Cordova CLI过程中,提示出错,基本上是网速的问题,多安装几遍就 ...

  5. 【Word文档修改过程中空格下划线打印不出来问题解决】

    Word文档修改过程中空格下划线打印不出来问题解决

  6. # Windows下关于安装Geany编辑器过程中的一点小发现(可能对初次安装的人有用)

    首先,我们在安装geany的过程中需要先搜索进入geany的官网 http://geany.org/ 进入之后我们需要找到我们需要的版本(此处默认以最新版为例) 先从菜单栏处的Download进入Re ...

  7. Msc.Marc安装和使用过程中遇到证书错误——处理办法

    Msc.Marc安装和使用过程中遇到证书错误--处理办法 1:确定电脑的license安装正确,需要把C盘license中的host改为你的主机名,然后设置一下环境变量. 右击"我的电脑&q ...

  8. 安装vue-devtools的过程中遇到问题,以及最后解决问题正确安装

    我在安装vue-devtools的过程中遇到的问题 所参照的安装教程:https://blog.csdn.net/cx_carol/article/details/106874788 (按照这个教程安 ...

  9. 【Android 逆向】逆向修改游戏应用 ( APK 解析工具 | 解包 -> 分析 -> 重打包 -> 签名 流程 )

    文章目录 一.APK 解析工具 二.解包 -> 分析 -> 重打包 -> 签名 流程 一.APK 解析工具 使用 [Android 逆向]使用 Python 编写 APK 批处理分析 ...

最新文章

  1. 无边框窗体和用户控件以及权限
  2. Flask之WTForms验证
  3. html中下拉列表监听事件,ExtJS 下拉框监听事件、日期选择器监听事件、实现动态给items添加删除数据...
  4. 写了个Python小工具,再也不怕孩子偷偷玩电脑游戏啦
  5. c语言常量x,C语言的数据、常量和变量
  6. 很多文章是在下转载贴在此处,是为了自己以后遇到类似问题一时想不起来
  7. OSCON上最受欢迎的Docker演讲
  8. 眼下发展最迅猛的十家网络安全公司
  9. 第一次给知名项目贡献代码,有点紧张
  10. C#LeetCode刷题之#69-x 的平方根(Sqrt(x))
  11. liunx的urandom生成随机字符
  12. html 再按一次退出,【劲爆、独家】拦截再按一次退出应用,改成单击back隐藏到后台...
  13. throws java_基于Java中throw和throws的区别(详解)
  14. 我的开源项目:H.264码流分析器
  15. iOS 使用ZipArchive压缩文件
  16. MySQL存储过程(五)——存储过程查看、删除和修改
  17. 将List按照指定大小等分的几种实现方式和效率对比及优化
  18. linux安装富士施乐打印机驱动下载,Ubuntu 8.04下安装Xerox打印机记录
  19. P2P技术(NAT基础)
  20. 系统架构演变到Spring Cloud

热门文章

  1. Ubantu或容器安装CV2
  2. SSO-单一登录 single sign-on
  3. 【Linux】文件与目录管理
  4. linux怎么vi文件后删除空行,Vim 如何删除或替换空行空格
  5. bash+vasp+ShengBTE自动计算材料热运输性质脚本
  6. 区块链技术助力甘肃建食安信息追溯平台 为食品安全“立规矩”
  7. 「容联云」组织效能提升,从统一通讯到综合协同
  8. 在word文件中怎么调整行间距
  9. 科学院量子计算机,中科院研究员丁洪:量子计算机前景可期,算力翻亿倍并非天方夜谭...
  10. 全球及中国充气户外休闲用品行业运营现状及发展规划研究报告2021年版