Chinaunix

标题: img文件被挂载的以后,对它的读写操作是在内存,还是在在硬盘上呢? [打印本页]

作者: zhenjiazhenjial    时间: 2009-05-13 10:29
标题: img文件被挂载的以后,对它的读写操作是在内存,还是在在硬盘上呢?
我们知道initrd.img这样的文件,在操作系统启动过程中,是被加载到内存执行的。

假如现在我做这样的操作:
mount -o loop initrd.img /mnt/initrd
然后mnt目录下对initrd里面的文件进行操作,主要是写操作,如修改,创建文件或者文件夹等等。这个时候对文件的读写,是在内存进行还是在存储initr.img文件的磁盘上呢?

进而引出我真正的问题,通常情况下(将系统安装到硬盘以后), 比如Fedora在vmlinuz , initrd.gz(临时的文件系统)启动后,会将真正的文件系统(硬盘某个分区的 / 目录)挂载起来, 如果我要做到像puppy linux一样,将真正的文件系统(上面提到的硬盘某个分区 / 目录)加载到内存,怎么实现。
我看到puppy  linux好像是这么干的,但不知道具体怎么实现的、


注:感谢大家纠正我的提问中含混不清的地方。

[ 本帖最后由 zhenjiazhenjial 于 2009-5-14 16:20 编辑 ]
作者: platinum    时间: 2009-05-13 16:10
mount -o loop initrd.img /mnt
然后mnt目录下对initrd.img进行操作,这个时候对文件的读写,实在内存进行还是在硬盘上呢?

问题描述不清
1、mnt 目录下对 ../initrd.img 进行操作码?怎么操作?
2、这个时候对文件读写,对什么文件的读写?../initrd.img 还是 mnt 出来的文件?
3、如果对 initrd.img 映射出的文件进行读写,要看文件系统是不是立刻同步,未同步前是内存,sync 一下就是与 initrd.img 同步了

进而引出我真正的问题,怎么样在 vmlinuz ,initrd.gz启动后,将真正的文件系统加载到内存里面,而不是挂载硬盘上的文件系统。

文件系统加载到内存里面是什么意思?
是文件系统驱动程序还是什么?
不知道你在问什么,感觉你的思路很混乱……
作者: yidou    时间: 2009-05-13 16:47
1、mnt 目录下对 ../initrd.img 进行操作码?怎么操作?
LZ应该是指读写操作,尤其指写操作。对吧?

2、这个时候对文件读写,对什么文件的读写?../initrd.img 还是 mnt 出来的文件?
应该是mount之后的mnt目录。对吧?

如果上述我的猜测成立,那操作是针对文件,不是对内存。在你写操作并umount之后,你将得到新的img
作者: goter    时间: 2009-05-13 19:10
应该是对initrd.img这个文件进行读写
你的这句话看不懂
将真正的文件系统加载到内存里面,而不是挂载硬盘上的文件系统。
作者: 自由狼-台风0    时间: 2009-05-13 19:24
原帖由 zhenjiazhenjial 于 2009-5-13 10:29 发表
我们知道initrd.img这样的文件,在操作系统启动过程中,是被加载到内存,然后执行的。

加入现在我做这样的操作:
mount -o loop initrd.img /mnt
然后mnt目录下对initrd.img进行操作,这个时候对文件的读写 ...


initrd,初始化RamDisk是也。它只在系统启动的时候使用。刚启动时,系统以此生成一个临时的RamDisk,并mount到/上。这样,一个最小化但基本功能完整的Linux已经加载到内存中。此时系统进行包括硬盘识别在内的初始化工作。初始化工作结束后,真正的硬盘分区才mount到/上,而刚才的RamDisk就废弃了,消失在内存中。

initrd.img就是一个相当于硬盘分区的文件系统,它的容量比它的个头略小。mount上这个东西,和mount上一个分区没有本质区别。
作者: zhenjiazhenjial    时间: 2009-05-14 16:25
原帖由 yidou 于 2009-5-13 16:47 发表
1、mnt 目录下对 ../initrd.img 进行操作码?怎么操作?
LZ应该是指读写操作,尤其指写操作。对吧?

2、这个时候对文件读写,对什么文件的读写?../initrd.img 还是 mnt 出来的文件?
应该是mount之后的mn ...


非常感谢,你的回答非常接近我所想问的。


另外,你的意思进写操作以后,如果不进行 umount, 那么img里面的内容就不会被保存了,是吧?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2