How to extract modern Ubuntu initramfs
Just to remember, there is an explanation here, from which the following directive can be taken:
(cpio -id; zcat | cpio -id) < /path/to/initrd.img
As the owner of a nice laptop running Hardy, I had a huge performance degradation when accessing USB storage devices. Speed could reach 1MB/s at most, and usually, half that speed. The trick that solved my problem was suggested in this post, and after I have tested it, I was happy with the results. The…
First and unrelated – this is my birthday. It reminds me that another year passed, and generally speaking, I do not take this too well… Due to massive SPAM attacks, my commenting system is turned off for a while now, and I need to see how I can re-enable it safely. Bash – here we…
It’s either me, or NetworkManager sux. This is the most incomplete and incompetent piece of software I have ever seen. The only reason I actually use it is that there is no better alternative which does whatever NetworkManager manages, somehow, to do. My initial thought was to setup NetworkManager as the dial-up component. What should…
After much agony with my faulted NVidia Dual-head card, and the frequent hard-freeze which were part of this experience. A new and shining ATI Radeon 9600 has entered my AGP slot, and I was ready to make it rock. First thing first – I utterly failed to install the damn driver. ATI build their drivers…
This blog is my extended memory, and as such, its task is to remind me things I tend to forget, saving me the time required to search them again. So here is another one of these things. The network settings syntax for RHEL8/OEL8 or any of their compatible systems, when you want to pass these…
It appears in some cases, for some pieces of software (anyone said “open source and poorly documented?”) that every installation has its own quirks and issues. It seems that following the same pattern is not always enough. It can be caused by the day you have selected to download and use the external component which…
This site uses Akismet to reduce spam. Learn how your comment data is processed.
I am working on Lubuntu 22.04, and either the lubuntu team creates the ramdisk differently, or the command is now out of date.
This works for me:
(cpio -id; cpio -id; zstdcat | cpio -id) < /path/to/initrd.img The ramdisk I am working with now has 2x uncompressed CPIO archives, prepending a "Z Standard" compressed main ramdisk.
They can modify it, however – how? Can you run the command ‘file’ on the initrd file? Or ‘lsinitrd’? It will give you a lot of details and insights.
In any case, on Ubuntu 22.0.4 my command works, and there is no reason to assume that this mechanism has changed. Just to be clear – your command failed on my test with the following output:
cpio: Malformed number
and
cpio: premature end of archive
Hi etzion, while I was initially confused by your response, I think I understand where the difference comes from. With my initrd I have 3 CPIO archives, the first 2 being microcode for AMD and Intel CPUs respectively – they each have their own CPIO archive. Then the third archive is the main initial ramdisk, encrypted Z standard encryption.
My ramdisk comes from the Lubuntu ISO. It is the ramdisk used to load the live environment. I assume the ramdisk you are using is for Ubuntu, installed on your computer? It would make sense to me that they would drop one of the first two microcode ramdisks, depending on what is applicable to the machine’s processor.
Thanks for your response, by the way you have some great info on your website. Thanks for what you do!
I understand. You were using the special LiveCD initrd. On systems which are on-disk, the initrd is created per the hardware configuration and layout of the system. Your note is good and important – and it exposes a structure including both microcodes as the same time, for both types of CPUs. When the system is installed on disk, it will integrate only the CPIO image for the relevant microcode. Makes a lot of sense.
I really appreciate the feedback. I have been collecting and sharing (and using it as an extended memory) for a long while. Some of it is still relevant even today 🙂
Thanks!