linux文件系统文件img挂载,Linux创建文件系统并挂载的方法 -----dd

Normal

0

7.8 pt

0

2

false

false

false

MicrosoftInternetExplorer4

首先看看怎么在磁盘上生成一个块文件:

虚拟机技术-把Linux安装在一个文件中(用dd生成虚拟块设备文件)

第一个问题是:什么是虚拟块设备文件?虚拟块设备文件是本人杜撰的一个名称,该类文件在主机操作系统上是普通文件,在虚拟机中作为一个虚拟块设备,也就是虚拟机中的硬盘。在虚拟机中对虚拟块设备的读写,实际都是对主机上该文件的操作。

虚拟块设备文件更通用的名称是硬盘镜像文件(Hard Disk Image),但不是所有的硬盘镜像文件都是虚拟块设备文件,例如,目前Ghost的GHO格式的镜像文件就不能成为虚拟机中的硬盘。

LInux的dd命令,可以用于生成虚拟块设备文件。既可以用于创建空镜像文件,也可以用于创建物理硬盘的镜像。先看一个实际例子:

# dd if=/dev/hda of=/mnt/nebula/hda_dd.image4757130+0

records in4757130+0 records out

上面这个命令将IDE设备/dev/hda的内容复制到/mnt/nebula/hda_dd.image文件。参数if告诉dd从哪个文件读取数 据,参数of告诉dd读出的数据写入哪个文件中。注意,对于dd来说,输入和输出都是文件,dd做的只是文件拷贝工作,这得益于Unix/Linux下面 将设备也抽象为特殊的文件。

一般来说设备文件有两种,一种是块设备,一种是字符设备。块设备的特点是可以随机读写(Random Access),比如内存、硬盘等。字符设备的特点是顺序读写(Sequential

Access),比如鼠标,键盘,麦克风等。

前面说了如何生成物理硬盘的镜像,如果想生成空镜像文件(本文的主要目的),还需要一个特殊的设备。/dev/zero是Linux提供的一个特殊的字符设备,它的特点是可以永远读该文件,每次读取的结果都是二进制0。下面的命令可以生成一个100M的空镜像文件:

dd if=/dev/zero of=100M.img bs=1M count=100

100+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 0.18719 seconds, 560 MB/s

除了前面已经解释的of和if参数,这次又出现了bs和count参数。bs=1M表示每一次读写1M数据,count=100表示读写100次, 这样就指定了生成文件的大小为100M。bs参数还可以进一步细分为ibs和obs两种,为读操作与写操作分别指定不同的Buffer大小。

这样就生成100M的空镜像文件,问题是,如果要生成1G的虚拟块设备文件,就得占用1G的硬盘空间,而这个镜像文件完全是空的,是不是有一点浪费?好在Linux支持Sparse(稀疏)文件。请看下面的例子

# dd if=/dev/zero of=1G.img bs=1M seek=1000 count=0

0+0 records in

0+0 records out

0 bytes (0 B) copied, 3.3e-05 seconds, 0.0 kB/s

# ls -l 1G.img

-rw-r–r– 1 root root 1048576000 Mar 25 15:32 1G.img

# du -m 1G.img

1 1G.img

这里用了一个新的命令seek,表示略过1000个Block不写(这里Block按照bs的定义是1M),count=0表示写入0个Block。用ls命令看新生成的文件,大小可以看出是1000M。但是再用du一看,实际占用硬盘大小只有1M。现在为止已经讲解了如何生成空镜像文件,以及如何利用稀疏文件有效减少镜像文件对磁盘空间的占用。现在让我们在上面建立文件系统,操作很简单:mkfs.ext2 1G.img在这儿我选择了ext2磁盘格式,你也可以根据自己的喜好来做接下来会提示:is not a block special device按y继续,之后就成功在这个文件中建立了文件系统之后就是挂载文件系统了,mount 1G.img /mnt/ -o loop这样就可以在/mnt/目录下享受你的块文件了,除了能够像普通磁盘一样操作之外,还限定了它的大小只有1G,连磁盘配额都省了!

虚拟机技术的一大特点是封装性(Encapsulation),说的是将整个操作系统装进在文件系统的一个普通文件中。可以在虚拟机中运行该文件中的操作系统。虚拟机能够提供的诸多好处不是本文的重点,就不多说。

很多人可能熟悉用Ghost生成的系统镜像文件,这和虚拟机使用的操作系统镜像文件类似,只不过前者用于恢复真实机器上的操作系统,或用于快速安装多台真实机器,虽然比重装系统方便,却仍然没有后者可利用虚拟机直接运行来的方便快捷。

总的来说,把Linux安装到一个文件中需要5个步骤

[@more@]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值