如何提取和重新打包初始内存磁盘initrd

以下linux命令将解释如何从压缩的initrd初始内存磁盘文件中提取内容。

准备工作:

# apt-get install p7zip-full

上面的命令将安装7z和7za文件归档程序,我们将用来解压缩并压缩我们的initrd文件。

首先找到initrd.lz内存磁盘文件:

ls -l
total 24692
-rw-r--r-- 1 root root 25281685 Dec 14 10:09 initrd.lz

创建一个新目录以保存从initrd.lz提取文件和目录结构:

# mkdir temp
# ls
initrd.lz  temp

转到“temp”目录并执行:

# cd temp/
# 7z e -so ../initrd.lz | cpio -id
7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_AU.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)
Processing archive: ../initrd.lz
Extracting  initrd
Everything is Ok
Size:       68728832
Compressed: 25281685
134236 blocks

initrd文件中的所有文件现在都被提取并存储在'temp'目录中。
现在你可以修改其中的内容。
修改后,就可以重新打包新的initrd文件。
仍在'temp'目录中执行:

# find | cpio -o -H newc > ../initrd_new
134236 blocks

上面的命令已创建一个新的文件initrd_new

# ls
initrd.lz  initrd_new  temp

压缩文件,获得initrd_new.lz初始内存磁盘文件:

# 7z a -m0=lzma:a=1 initrd_new.lz initrd_new 
7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_AU.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)
Scanning
Creating archive initrd_new.lz
Compressing  initrd_new      
Everything is Ok

根据需要,重命名生成的新文件。

日期:2020-07-07 20:56:17 来源:oir作者:oir