Re: How to update modules in iniramfs fastly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



> -----Original Messages-----
> From: "Leon Fauster" <leonfauster@xxxxxxxxxxxxxx>
> Sent Time: 2018-02-26 22:20:51 (Monday)
> To: "CentOS mailing list" <centos@xxxxxxxxxx>
> Cc: 
> Subject: Re:  How to update modules in iniramfs fastly
> 
> 
> > Am 26.02.2018 um 06:46 schrieb wuzhouhui <wuzhouhui14@xxxxxxxxxxxxxxxx>:
> > 
> >> -----Original Messages-----
> >> From: "Steven Tardy" <sjt5atra@xxxxxxxxx>
> >> Sent Time: 2018-02-26 10:48:48 (Monday)
> >> To: "CentOS mailing list" <centos@xxxxxxxxxx>
> >> Cc: 
> >> Subject: Re:  How to update modules in iniramfs fastly
> >> 
> >> On Sun, Feb 25, 2018 at 8:29 PM wuzhouhui <wuzhouhui14@xxxxxxxxxxxxxxxx>
> >> wrote:
> >> 
> >>> I know dracut can update modules in initramfs, but I think it is too
> >>> slow. So I'm wondering what is the fastest way to update modules in
> >>> initramfs of CentOS 7?
> >> 
> >> 
> >> `dracut` calls `mkinitrd` which rebuilds the initrd file. . . you could do
> >> it manually but that is prone to errors (
> >> https://access.redhat.com/solutions/24029).
> > This solution does not work in CentOS 7, because initramfs in CentOS 7 is not
> > a gzipped cpio:
> >   [root@bogon a]# file /boot/initramfs-3.10.0-693.el7.x86_64.img 
> >   /boot/initramfs-3.10.0-693.el7.x86_64.img: ASCII cpio archive (SVR4 with no CRC)
> > If I use
> >   zcat /boot/initrd-2.6.18-164.6.1.el5.img | cpio -idmv
> > to uncompress initramfs, it will report errors:
> >   [root@bogon a]# zcat /boot/initramfs-3.10.0-693.el7.x86_64.img | cpio -idmv
> > 
> >   gzip: /boot/initramfs-3.10.0-693.el7.x86_64.img: not in gzip format
> >   cpio: premature end of archive
> 
> 
> 
> Maybe some ucode archive is in front of the initrd archive. 
> 
> Did you try to unpack it without uncompressing it? Whats the contents?

[root@bogon a]# cpio  -id < /boot/initramfs-3.10.0-693.el7.x86_64.img 
28 blocks
[root@bogon a]# ls -R
.:
early_cpio  kernel

./kernel:
x86

./kernel/x86:
microcode

./kernel/x86/microcode:
GenuineIntel.bin

Obviously, above is not what I want. In order to get full contents of initramfs,
I have to use skipcpio to skip initial cpio of initramfs:

[root@bogon a]# /usr/lib/dracut/skipcpio /boot/initramfs-3.10.0-693.el7.x86_64.img | zcat | cpio -id
85469 blocks
[root@bogon a]# ls
bin  etc   lib    proc  run   shutdown  sysroot  usr
dev  init  lib64  root  sbin  sys       tmp      var

I can use skipcpio to get full contents of initramfs, and then edit files in it.
But the problem is how to recreate initramfs by extracted contents?

> 
> --
> LF
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> CentOS mailing list
> CentOS@xxxxxxxxxx
> https://lists.centos.org/mailman/listinfo/centos
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
https://lists.centos.org/mailman/listinfo/centos



[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]


  Powered by Linux