当前位置:  技术问答>linux和unix

怎么样制作映像文件系统(Filesystem Image)?? 在线等……

    来源: 互联网  发布时间:2015-10-28

    本文导语:  如题! | 在命令提示符下输入 vi my_image 进入VI界面之后,输入以下的文本 dd if=/dev/zero of=/tmp/tmp_loop bs=1k count=512 mkfs -t ext2 /dev/loop0  mount -t ext2 /dev/loop0 /mnt mkdir -P /mnt/dev mkdir -P /mnt/...

如题!

|
在命令提示符下输入
vi my_image
进入VI界面之后,输入以下的文本

dd if=/dev/zero of=/tmp/tmp_loop bs=1k count=512
mkfs -t ext2 /dev/loop0 
mount -t ext2 /dev/loop0 /mnt
mkdir -P /mnt/dev
mkdir -P /mnt/bin
mkdir -P /mnt/etc
...
umount /mnt 
losetup -d /dev/loop0 
dd if=/tmp/tmp_loop | gzip -9 > /tmp/Image.gz 
rm -f /tmp/tmp_loop 
sync 


当你输完上面的所有文本之后,按ESC键,再按住冒号,最后输入wq,最后就在当前目录下生成了一个my_image的脚本文件,然后输入./my_image,之后在/tmp目录下有一个Image.gz文件,就是你所想要的Image文件了


总体实现思路:
1.首先打开VI编辑器,相当于WINDOWS下的记事本之类的程序,当然比它强大很多,以便用它来写一个脚本文件,脚本文件类似下DOS下的批处理文件,免得你每次输入很多相同的命令
2.用DD工具来做一个虚拟的磁盘文件,DD工具有点强大,可以克隆整个分区,某个文件,或者整个硬盘,类似于GHOST之类的软件
3.将此虚拟的磁盘系统格式化成你指定的分区,比如EXT2,FAT等,这里所使用的工具就是mkfs
4.将格式好的虚拟磁盘挂载到一个目录下,类似于你挂载一个WINDOWS的分区一样,挂载好了之后,你就可以在此目录下进行各种操作了
5.此时你的虚拟磁盘下还没有任何文件,你需要在下面新建一些LINUX所需要的目录,比如dev,proc,bin,etc等,此时,为了方便,你可以将你PC机上的某些目录拷过去,由于你PC机上的目录下的文件太多也太大,所以推荐你照着PC机新建目录,然后再将你想要的某些文件从PC机拷贝到你的虚拟磁盘中去
6.当你将所需要的文件全部拷上去了之后,就可以卸载了
7.将你制做好的虚拟磁盘文件压缩(当然,你也可以不压缩,这取决于你的BOOTLOADER)




对上面脚本的详细注解如下:
第一句:dd if=/dev/zero of=/tmp/tmp_loop bs=1k count=512,做一个虚拟磁盘(相当于在WINDOWS上的ISO文件),其中每1024字节为一块,类似于硬盘的分块,一共有512K的大小,当然,你也可以做成不只512K大小,改相应的参数就行了

第二句:mkfs -t ext2 /dev/loop0 ,将你虚拟的磁盘进行格式化,这里格式化成EXT2文件系统,还记得WINDOWS下的ISO吧?不过ISO只能是固定的东东,这里的虚拟磁盘可以是任何LINUX支持的文件系统!!!

第三句:mount -t ext2 /dev/loop0 /mnt,挂载分区,不用我多说了,需要注意的一点是,最好事先不要在MNT目录下挂载其它的分区,或者放其它的文件,也就是说要么它就是一个空目录,要么你就改一个目录来进行你的挂载操作,当然,如果你放了一些文件或者已经挂载了某个分区也没什么,只不过那个分区里的东西全不见了(只是暂时的,当你操作完成之后就恢复了)

第四句之后:
mkdir -P /mnt/dev
mkdir -P /mnt/bin
mkdir -P /mnt/etc
...
就是新建目录,参数P是指如果有该目录的话,就忽略,最后的省略号是指我省略了一些步骤,并不是要你在文本编辑器里输入省略号!!!!!而且后面还省略了从PC机拷贝文件的步骤,因为我并不知道你需要什么具体文件


最后几句:
umount /mnt 
losetup -d /dev/loop0 
dd if=/tmp/tmp_loop | gzip -9 > /tmp/Image.gz 
rm -f /tmp/tmp_loop 
sync 
卸载分区
通知系统不再需要虚拟磁盘
将生成的/tmp下的tmp_loop文件(就是那个虚拟磁盘文件),用GZIP压缩,并拷贝到/tmp/下,并改名为Image.gz
删除磁盘虚拟文件
文件写操作同步,在LINUX下的磁盘操作时,是有一个缓冲的过程,相当于你发过写磁盘的命令,但此时向磁盘的写操作还没发生,时已经向用户返回写成功了,为了确保写操作完成,就需要这个sync命令以确保你的镜像文件完整


最后需要注意的是:
至于你的文件系统里面要放什么东西,完全由你自己决定,比如你需要一个BusyBox之类的,也需你还要支持你自己的驱动,我在这里只是简单提两句,请参阅相关文档
总体思路是一样的,你可以根据我说的整体思路,你完全可以举一反三,灵活运用,呵,我在这里YY了几句,请高手嘴下留情哈!!!!!






    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 想安装samba服务,想制作iso镜像来挂载,如何制作iso文件?
  • Linux下怎么制作帮助文件
  • 关于Red Hat linux的ISO文件制作(没分了)
  • 如何在制作带qtopia库的根文件系统?
  • Linux下如何制作img文件?
  • 怎样制作成.exe的安装文件?
  • busybox制作ramdisk文件系统出错
  • 嵌入式Linux下,怎么制作cpio文件系统?
  • 在jb6中,如何制作包含jdbc和自定义包的jar文件。
  • 一个linux安装文件制作问题
  • 请问已经生成了Image文件,如何制作可以引导系统的Linux光盘
  • 如何制作安装文件
  • 怎样制作linux下的安装文件
  • 如何写制作usb启动盘的lilo.conf文件?
  • rpm制作时遇到cp文件问题
  • .jar文件是怎么回事,如何制作.jar文件?
  • 关于制作文件?
  • python代码制作configure文件示例
  • 有高手成功制作文件系统吗?请进帮忙
  • 如何制作可用于VirtualPC中系统安装的带启动信息的ISO文件
  • ubuntu8.10有个制作u盘启动盘的功能,谁能制作个u盘启动盘的iso给我?小点的,有桌面的。
  • Destoon模板怎么制作?destoon模板制作简单教程
  • usb闪存启动盘制作工具 Flashboot
  • 制作usb启动盘
  • USB启动盘制作软件 iBurnMgr
  • 图标、光标制作工具 Greenfish
  • 探讨下启动盘的制作原理!
  • 如何制作FC4启动光盘(grub)?
  • Java安装程序制作工具 IzPack
  • 图表制作软件 Openchart2
  • ThinkPHP标签怎么制作?thinkphp标签制作实例教程


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3