Linux建立檔案系統並掛載的方法 -----dd

maojinyu發表於2011-05-26
Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4

首先看看怎麼在磁碟上生成一個塊檔案:

虛擬機器技術 - Linux安裝在一個檔案中(用dd生成虛擬塊裝置檔案)

第一個問題是:什麼是虛擬塊裝置檔案?虛擬塊裝置檔案是本人杜撰的一個名稱,該類檔案在主機作業系統上是普通檔案,在虛擬機器中作為一個虛擬塊裝置,也就是虛擬機器中的硬碟。在虛擬機器中對虛擬塊裝置的讀寫,實際都是對主機上該檔案的操作。

虛擬塊裝置檔案更通用的名稱是硬碟映象檔案(Hard Disk Image),但不是所有的硬碟映象檔案都是虛擬塊裝置檔案,例如,目前GhostGHO格式的映象檔案就不能成為虛擬機器中的硬碟。

LInuxdd命令,可以用於生成虛擬塊裝置檔案。既可以用於建立空映象檔案,也可以用於建立物理硬碟的映象。先看一個實際例子:

# 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/zeroLinux提供的一個特殊的字元裝置,它的特點是可以永遠讀該檔案,每次讀取的結果都是二進位制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

除了前面已經解釋的ofif引數,這次又出現了bscount引數。bs=1M表示每一次讀寫1M資料,count=100表示讀寫100次, 這樣就指定了生成檔案的大小為100Mbs引數還可以進一步細分為ibsobs兩種,為讀操作與寫操作分別指定不同的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,表示略過1000Block不寫(這裡Block按照bs的定義是1M),count=0表示寫入0Block。用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@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9907339/viewspace-1050392/,如需轉載,請註明出處,否則將追究法律責任。

相關文章