如何打开clonezilla initrd.img?

如何打开clonezilla initrd.img?

我不明白为什么我收到错误初始化文件( 这初始化文件是来自clonezilla ISO文件的原始文件

cp initrd.img /tmp
zcat /tmp/initrd.img | cpio -idm
zcat: initrd.img: not in gzip format
cpio: premature end of archive

我执行的完整步骤如下:

我下载的是clonezilla-live-2.1.2-43-i686-pae.zip来自网站的文件: http://clonezilla.org/livepxe.php

然后我执行了以下操作以获得初始化文件文件如下:

unzip -j clonezilla-live-2.1.2-43-i686-pae.zip live/vmlinuz live/initrd.img live/filesystem.squashfs -d /tftpboot/nbi_img

然后我复制了

cp /tftpboot/nbi_img/initrd.img   /tmp

最后的所有步骤均按照地点。请指教这里有什么问题吗?

我也尝试过这个,但没有成功 -:(

关联:http://www.thegeekstuff.com/2009/07/how-to-view-modify-and-recreate-initrd-img/

mv initrd.img.gz  initrd.gz
gunzip initrd.gz 

gunzip: initrd.gz: not in gzip format

答案1

如前所述zcat,它不是 gzip 格式。运行file它以查看它是否可以识别该格式。它可能是 lzma,在这种情况下您需要使用lzcat而不是zcat.

答案2

我知道这是一个老话题,但在我寻找一种将 gpg 密钥添加到 openSUSE iso 的方法时遇到了它,该 iso 已重新制作以包含多个自定义包。我在查找所需信息时遇到了一些问题,因此我想我应该添加一些详细说明,以防其他人发现它们有用。这些说明的不同部分可以在其他网站上找到。我只是将它们放在一起形成一个详细列表。他们所做的工作才是真正重要的。

我编写它们是为了修改本地 initrd 而不是来自 iso 映像的 initrd,但过程是相同的。

注意:以下说明是我在我的系统中使用的说明,该系统使用 /boot/initrd-3.16.7-24-desktop 作为其 initrd。如果您当前的 initrd 文件不是 /boot/initrd-3.16.7-24-desktop,则需要修改这些命令。

这是程序:

  1. 在 /boot/initrd 上列出一个长列表以查看它指向哪个文件:

    root@host:~ # ls -l /boot/initrd
    lrwxrwxrwx 1 root root 24 Sep 10 10:08 /boot/initrd -> initrd-3.16.7-24-desktop
    
  2. 创建一些要在其中工作的目录:

    root@host:~ #  mkdir -p -m 755 mod-initrd/new-initrd
    
  3. 将当前的initrd复制到工作目录:

    root@host:~ #  cp /boot/initrd-3.16.7-24-desktop mod-initrd/initrd.xz
    
  4. cd 到将解压 initrd 的目录:

    root@host:~/mod-initrd #  cd mod-initrd/new-initrd
    
  5. 提取initrd:

    root@host:~/mod-initrd/new-initrd #  xzcat ../initrd.xz | cpio -d -i -m
    
  6. 进行您想要进行的更改。

  7. 保存原始 initrd 的副本:

    root@host:~/mod-initrd/new-initrd # mv ../initrd.xZ ../initrd-original
    
  8. 压缩修改后的 intird:

    root@host:~/mod-initrd/new-initrd # find . | cpio -o -H newc | xz --check=crc32 --x86 --lzma2=dict=512KiB > ../initrd.xz
    
  9. 将当前 initrd 替换为修改后的 initrd。这将使修改后的版本在重新启动时生效。

    root@host:~/mod-initrd/newinitrd # mv ../initrd.xz /boot/initrd-3.16.7-24-desktop
    
  10. 重新启动以测试您所做的更改。

    root@host:~/mod-initrd/new-initrd # init 6
    

在测试您的更改之前,请勿删除提取的 initrd。这样,如果需要进行任何调整,只需执行步骤 6、8、9 和 10。

对于任何试图将自己的 GPG 密钥添加到 openSUSE 映像以便该密钥自动受到信任的人,这是一种方法:

通过运行以下命令获取 GPG 密钥的 ID:

    gpg --list-keys

其中一行应以如下形式开头: pub 2048R/BB6D5E99

在上面的示例中,ID 为“BB6D5E99”

通过运行以下命令导出 GPG 公钥:

    gpg --export -a "BB6D5E99" > "file-name-for-the-exported-key"

通过运行以下命令将 gpg 密钥添加到提取的 initrd 中:

    echo "file-name-for-the-exported-key" | cpio -o -H newc -A -F "full-path-of-directory-holding-extracted-initrd"

相关内容