LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2084|回复: 15

mkinitrd建立的initrd究竟用的什么文件系统?

[复制链接]
发表于 2005-10-13 20:51:18 | 显示全部楼层 |阅读模式
cpio吗?
  1. # mount initrd-2.6.11-morph12.img /mnt/initrd/ -o loop
  2. ioctl: LOOP_CLR_FD: 设备或资源忙
  3. mount: you must specify the filesystem type
复制代码

记得半年前用2.6.9内核的时候还是e2fs,可随意编辑
发表于 2005-10-13 21:04:54 | 显示全部楼层
在Debian,默认是cramfs但也可以设置一下做成ext2。但不同的发行版的mkinitrd脚本做出来的initrd都不大一样
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-13 21:34:50 | 显示全部楼层
d00m3d无处不在,谢谢解答。
如果真是cramfs倒也好办。唯独这cpio,google了好一阵一无所获,上面的出错信息只在gentoo官方论坛里寻见一二,也没见解答;gentoo的Wiki关于initrd的Howto讲的尽是“mke2fs -F -m0 initrd”之类,与kernel Documentation无异。改日看看mkinitrd脚本...或许把mkinitrd降到最老的版本...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-13 21:43:56 | 显示全部楼层
请帮忙分析mkinitrd脚本的最后一段
  1. if [ -z "$initramfs" ]; then
  2.   (cd $MNTIMAGE; tar cf - .) | (cd $MNTPOINT; tar xf -) || exit 1

  3.   umount $MNTPOINT
  4.   losetup -d $LODEV
  5. else
  6.   (cd $MNTIMAGE; find . | cpio --quiet -c -o) > $IMAGE || exit 1
  7. fi

  8. if [ -n "$compress" ]; then
  9.     gzip -9 < $IMAGE > $target || rc=1
  10. else
  11.     cp -a $IMAGE $target || rc=1
  12. fi
  13. rm -rf $MNTIMAGE $IMAGE
  14. if [ -n "$MNTPOINT" ]; then rm -rf $MNTPOINT ; fi
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-10-13 22:37:00 | 显示全部楼层
不好意思,刚把电脑的Gentoo删掉改装LFS,在LFS那个mkinitrd会生成ext2的initrd,但记得在2004.1内的initrd也是用ext2的

很抱歉,我不会shell编程,那段脚本我看不懂
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-14 07:01:28 | 显示全部楼层
想来gentoo是要照顾到gensplash以保持与gensplash的启动镜像一致?
  1. splash_geninitramfs -v -g /usr/src/linux/usr/initramfs_data.cpio.gz -r 1280x1024 default
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-10-23 09:40:21 | 显示全部楼层
Post by midx
cpio吗?
  1. # mount initrd-2.6.11-morph12.img /mnt/initrd/ -o loop
  2. ioctl: LOOP_CLR_FD: 设备或资源忙
  3. mount: you must specify the filesystem type
复制代码

记得半年前用2.6.9内核的时候还是e2fs,可随意编辑


加上-t tmp试试看!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-23 21:18:19 | 显示全部楼层
加上 -t tmpfs 的话,/mnt/initrd/下为空,空间长度为250M
回复 支持 反对

使用道具 举报

发表于 2005-10-27 14:58:48 | 显示全部楼层
initrd-xxx.img使用gzip -9压缩过的,解压之后用mount -o loop加载。
回复 支持 反对

使用道具 举报

发表于 2005-10-27 15:01:12 | 显示全部楼层
说清楚一点吧:

cp /boot/initrd-2.4.20.img /tmp
cd /tmp
mv initrd-2.4.20.img initrd-2.4.20.img.gz
gunzip initrd-2.4.20.img.gz
mount -o loop initrd-2.4.20.img /mnt
ls /mnt
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表