Mailing List Archive


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

[tlug] Mounting an initrd file?



Hello all,

I've been banging my head in frustration for a couple of hours on this....

Problem Statement
=============
I can't seem to properly mount an initrd file. The culprit file I'm looking at is the Ubuntu intird for Dapper (initrd.img-2.6.15-23-386).


(Dumb) Assumptions
==============
I thought it would be as simple as mount /path/to/initrd.img /your/mount/path but that definitely does not work.


Things that I have tried
===============
1. Plain old mount and let the auto detector find out:
# mount -t ext2 /boot/initrd.img-2.6.15-23-386 /mnt/foo
mount: /boot/initrd.img-2.6.15-23-386 is not a block device (maybe try `-o loop'?)

2. Tried with some different filesystem types:
# mount -t cramfs /boot/initrd.img-2.6.15-23-386 /mnt/foo
mount: /boot/initrd.img-2.6.15-23-386 is not a block device (maybe try `-o loop'?)
# mount -t ext2 /boot/initrd.img-2.6.15-23-386 /mnt/foo
mount: /boot/initrd.img-2.6.15-23-386 is not a block device (maybe try `-o loop'?)
# mount -t ext3 /boot/initrd.img-2.6.15-23-386 /mnt/foo
mount: /boot/initrd.img-2.6.15-23-386 is not a block device (maybe try `-o loop'?)

3. Try using losetup (Gee would be nice to have a manpage):
# losetup /dev/loop/1 /boot/initrd.img-2.6.15-23-386
# losetup -a
/dev/loop/0: [0304]:1880952 (/boot/initrd.img-2.6.15-23-386)
# mount /dev/loop/1 /mnt/foo
mount: you must specify the filesystem type
# mount -t ext2 /dev/loop/1 /mnt/foo
mount: wrong fs type, bad option, bad superblock on /dev/loop/1,
      missing codepage or other error
      In some cases useful info is found in syslog - try
      dmesg | tail  or so
#dmesg | tail
<snip>
VFS: Can't find an ext2 filesystem on dev loop1.
# mount -t ext3 /boot/initrd.img-2.6.15-23-386 /mnt/foo
mount: wrong fs type, bad option, bad superblock on /dev/loop/1,
      missing codepage or other error
      In some cases useful info is found in syslog - try
      dmesg | tail  or so
# dmesg | tail
<snip>
VFS: Can't find an ext3 filesystem on dev loop1.
# mount -t cramfs /boot/initrd.img-2.6.15-23-386 /mnt/foo
mount: wrong fs type, bad option, bad superblock on /dev/loop/1,
      missing codepage or other error
      In some cases useful info is found in syslog - try
      dmesg | tail  or so
# dmesg | tail
<snip>
cramfs: wrong magic

4. gunzipping the file then trying 2 & 3.  Same deal.


Notes
====
The only thing that seems to properly mount the filesystem is using mount -t ramfs however when I look in the directory I see nothing in there. Which seems really improbable since the initrd is a few megs or so...
# ls -lah initrd*
-rw-r--r-- 1 root root 6.5M 2006-05-30 16:55 initrd.img-2.6.15-23-386

I've tried these commands on Ubuntu Dapper 6.06-whatever-update-I-pulled-in-yesterday and a Gentoo system with 2.6.15-suspend-r2 kernel that definitely has support for cramfs and loopback support since I know compiled these in myself. And it's still giving me no love.


Questions
=======
1. Am I missing something in order to mount the initrd file? 2. Will gunzip | cpio do the job? 'file' reports it's a cpio archive
3.  I thought Linux could initrd files as a filesystem with ease?
across distros.4. Auto-generation tools for creating (ex. mkinitrd) don't seem to be standardized. What's the canonical way to do this?



Alain


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links