主题:【求助】mount -o loop initrd /tmp/a不成,应如何解决?(有花送) -- wsxx
目的是想修改initrd.gz中的/linuxrc的内容,使得启动内核能够顺利找到usb活动硬盘上的root。
看到一些资料,说先解压initrd.gz,得到initrd,然后把它挂载到一个目录中(/tmp/a已经建好),就可以修改了:
mount -o loop initrd /tmp/a
可是我打了这个命令,得到提示:
ioctl:LOPOP_CLR_FD: Device or resource busy
mount: you must specify the filesystem type
曾经试着加上-t ext3或-t ext2也没能成功。
请求大家给点帮助,有回必花。
本帖一共被 2 帖 引用 (帖内工具实现)
又google了一下,看来是我搞错了,应该就是ext2的文件系统。
事事这样:
losetup /dev/loop0 /initd # /initd 是你的 initd文件
mount -t ext2 /dev/loop0 /mnt
先运行 mknod /dev/loop0 b 7 1
然后看看/dev里面有没有loopdevice,ls -l /dev/loop*
然后在运行losetup看看
kde
用startx -- :1事一下,注意 -- 和:两个符号之间有个空格.
要么把。xinitrc删调,startx进wm然后在xterm里用startkde起动kde看看有什么反映。
再网上翻来覆去地找,找到一条命令,是针对ubuntu的:
cat /boot/initrd.img-`uname -r` | gzip -d | cpio -i
我试了一下
cd /tmp
mkdir initrd
cd initrd
cat /boot/initrd.img-`uname -r` | gzip -d | cpio -i
ls
顺利解开了。
如果在ubuntu环境下解gentoo的initramfs,会有问题提示,解出来的目录好像不全。改到gentoo环境下,解自己的initramfs-genkelnel-2.6.17-gentoo-r4就顺利解开了。虽然还不完全理解其过程的含义,已经很激动了。
里面没有/linux这个文件,我们就自己把文章上的说的那个文件放进去,然后再压缩整个目录成为一个文件,对吗?现在害怕如果压缩之后有问题,搞得不能启动就麻烦了。
如果再压缩,用gzip -9 /tmp/initrd这个命令对吗?