Linux建立檔案系統並掛載的方法 -----dd
首先看看怎麼在磁碟上生成一個塊檔案:
虛擬機器技術 - 把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@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9907339/viewspace-1050392/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- AIX 系統建立邏輯卷、新增檔案系統並掛載使用AI
- Linux 建立檔案系統及掛載檔案系統詳解一薦Linux
- Linux dd 在當前目錄建立檔案系統Linux
- linux 掛載xfs檔案系統Linux
- Linux掛載檔案系統(轉)Linux
- Linux系統掛載win系統的共享檔案Linux
- Linux 檔案系統掛載mount命令Linux
- 檔案系統的掛載 與 非掛載
- Linux系統中建立檔案常用的方法!Linux
- 掛載fat檔案系統
- linux下掛載NTFS和FAT檔案系統Linux
- linux系統之間透過nfs網路檔案系統掛載設定方法LinuxNFS
- CentOS 7下掛載NTFS檔案系統並實行開機自動掛載CentOS
- linux如何系統掛載u盤複製檔案Linux
- linux-掛載NFS網路檔案系統教程LinuxNFS
- Linux核心啟動之根檔案系統掛載Linux
- Linux系統下建立檔案最常見的8種方法!Linux
- 何在Mac系統上建立大檔案?教你在Mac系統建立大檔案的方法Mac
- Oracle RAC NFS掛載檔案系統OracleNFS
- macOS 下NFS 檔案系統掛載MacNFS
- linux 檔案掛載Linux
- findmnt-尋找掛載的檔案系統
- Linux下NFS(網路檔案系統)的建立與配置方法LinuxNFS
- 【Linux】Linux檔案系統管理1 磁碟分割槽、格式化、掛載-卷標掛載Linux
- 【Linux】Linux檔案系統管理2 磁碟分割槽、格式化、掛載-UUID掛載LinuxUI
- 如何在 Linux 中檢視已掛載的檔案系統型別Linux型別
- 使用 SSHFS 掛載遠端的 Linux 檔案系統及目錄Linux
- [轉載]btrfs檔案系統的kali linux 用snapper建立快照LinuxAPP
- vmware中增加硬碟掛載檔案系統硬碟
- findmnt命令查詢已掛載的檔案系統
- 在Linux系統上建立檔案的8個方法,記得收藏哦!Linux
- linux掛載裝置檔案Linux
- Linux下加掛檔案系統的小結 (zt)Linux
- Linux下加掛檔案系統的小結(轉)Linux
- 查詢linux系統中大檔案的方法Linux
- 【LINUX】磁碟格式化 建立檔案系統Linux
- 掛載檔案系統mount命令引數選項-linux命令入門Linux
- 【Solaris】Solaris檔案系統管理1 UFS檔案系統的建立