![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Debian Debian GNU/Linux is a free distribution of the GNU/Linux operating system. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| AWK how to strip from right hand side | angelolamberti | Shell Programming and Scripting | 5 | 01-17-2008 08:31 AM |
| Need a hand. Please? | alexcol | Shell Programming and Scripting | 1 | 09-26-2006 04:59 PM |
| How to get the most left hand string ?? | jfortes | Shell Programming and Scripting | 2 | 09-11-2006 04:47 PM |
| Lets give Neo a hand. | Optimus_P | Post Here to Contact Site Administrators and Moderators | 4 | 10-24-2003 09:37 AM |
| Give us a hand | RichardB | UNIX for Dummies Questions & Answers | 3 | 05-06-2002 11:37 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
||||
|
What's the correct way to change the initramfs file that's used during boot?
I know that it's a gzipped cpio archive, but when I gunzip, extract, re-archive (without changing any files), and gzip, then the result is that the system does not boot any more. And I even set the cpio archive type. Do I need special tools for the initramfs? There are progs like update-initramfs but the point is that I need to put in files that were *not* put in by the tools that originally created the initramfs. |
|
||||
|
Thanks otheus! I tried that (without making changes to the files in the /tmp/initrd directory), and I changed the link in /boot to point to initrd.new.img.
Now I get the following error during boot: Code:
RAMDISK: Compressed image found at block 0 RAMDISK: incomplete write (-28 != 32768) 8388608 List of all partitions: No filesystem could mount root, tried: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) |
|
|||||
|
The method I described works as of Linux 2.6.13 (or before FC3) If you are using an older version (uname -k) perhaps you have to create a filesystem. See "Manually building a custom initial RAM disk" at Linux initial RAM disk (initrd) overview.
Code:
$ mkdir /tmp/initrd.tmp ; cd /tmp/initrd.tmp $ <extract> $ du -sk . $ # use size reported above for: $blocks $ dd if=/dev/zero of=/tmp/initrd.img bs=1024 count=$blocks $ /sbin/mke2fs -F -m 0 -b 1024 /tmp/initrd.img $blocks $ mount /tmp/initrd.img /mnt/initrd -t ext2 -o loop=/dev/loop0 Code:
$ umount /mnt/initrd $ gzip /tmp/initrd.img |
|
||||
|
Thanks for the help otheus. I appreciate.
Quote:
I have kernel 2.6.26. The ibm web page (initrd overview) is really well made, but it's partially obsolete (as they say themselves: "up to FC3"; it's also 2.5 years old). I tried the code you suggested anyway; every step of the initrd creation process works well, but the system won't boot. With both methods (this and the one you suggested earlier) I get the following error during boot: Code:
RAMDISK: Compressed image found at block 0 RAMDISK: incomplete write (-28 != 32768) 8388608 List of all partitions: No filesystem could mount root, tried: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) Code:
Failed to execute /init Kernel panic - not syncing: No init found. Try passing init= option to kernel. |
|
||||
|
Sure, but I don't think the grub.conf matters too much; it boots the original initrd just fine, and I don't modify any grub files when trying the new initrd.
BTW where is grub.conf? The only grub files I see are in /boot/grub, and the only human-readable ones are "default", "device.map" and "menu.lst". The first is empty except comments, the second only contains the lines (hd0) /dev/hda (hd1) /dev/sda but seems to be unimportant as the unmodified initrd boots just the same when switching this to (hd0) /dev/sda (hd1) /dev/hda and the third contains the usual kernel and initrd config, but it boots the unmodified initrd fine and I never modify it. Instead I change the link initrd.img in /boot to point to the modified initrd. There's still a grub entry using an initrd called initrd.img-2.6.26-1-686 which I never modify, and that always boots. Given that initrd.img-2.6.26-1-686 and the unmodified initrd.img are binary equal, the file menu.lst probably isn't the problem either. Something else occured to me: do I need to specify the --format option in cpio? E.g. change from "bin" to "newc" format? Because when I look at the (gunzipped) initrd in boot with "file", it says: "ASCII cpio archive (SVR4 with no CRC)". But this is not the default which cpio creates. |
![]() |
| Bookmarks |
| Tags |
| boot, initramfs, kernel |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|