1. linux dd讀取寫入磁碟速度
time有計時作用,dd用於複製,從if讀出,寫到of。if=/dev/zero不產生IO,因此可以用來測試純寫速度。同理of=/dev/null不產生IO,可以用來測試純讀速度。bs是每次讀或寫
的大小,即一個塊的大小,count是讀寫塊的數量。
指定出讀取,寫入檔案到硬碟的速度
1.測/目錄所在磁碟的純寫速度:
[root@base-dmz1 /]# time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 2.57314 seconds, 398 MB/s
real 0m2.787s
user 0m0.920s
sys 0m1.867s
以上是因為使用了time才顯示的,linux5中不需要使用,在linux4中是不會有(1024000000 bytes (1.0 GB) copied, 2.57314 seconds, 398 MB/s)部分,因此需要time命令來計
算複製的時間。
2.測/目錄所在磁碟的純讀速度:
dd if=/kvm/ftp/other/1Gb.file bs=64k |dd of=/dev/null
382860+0 records in
382860+0 records out
3136389120 bytes (3.1 GB) copied, 68.38 seconds, 45.9 MB/s
real 1m8.406s
user 0m0.039s
sys 0m4.573s
3.測讀寫速度(這是什麼):
dd if=/vat/test of=/oradata/test1 bs=64k
dd: writing `/oradata/test1': No space left on device
5025+0 records in
5024+0 records out
329261056 bytes (329 MB) copied, 23.8813 seconds, 13.8 MB/s
註:理論上複製量越大測試越準確。
2. 使用Linux dd命令作硬碟複製
來源硬碟:IBM 20G 5400RPM FAT16分區1;Linux native分區1;FreeBSD分區1,內又分為一個主Sillice和一個Swap Sillice;擴充分區1,4個邏輯分區,其中最後一個是Linux Swap分區。IDE1 Master
目標盤:西部資料30G 7200RPM,空白盤。IDE2 Master
進入Linux,運行: dd if=/dev/hda of=/dev/hdc
dd就是Linux/Unix下通用的複製、鏡像程式,if=輸入的檔案 of=輸出的檔案。由於在Linux下所有的硬體都表示為檔案,所以可以進行任何複製、複製。比如還可以把/dev/hda複製到MO、磁帶以及映像檔案中,當然,目標“檔案”必須比原“檔案”大,不然就會溢出。
20G的硬碟複製了大約不到2個小時,在整個過程中,使用K6-2 500CPU,UDMA2開啟的情況下,CPU佔用率只有18%-19%,從來沒有超過20%。在此期間還可以玩玩掃雷、國際象棋等遊戲,也可以看看文檔、協助什麼的,但是最好不要作寫操作。當然你可以估計時間,在複製進程還沒有到Linux分區,或者已經過了Linux分區的時候,也可以進行寫操作,但是要當心!
最後,dd會報告一共複製了多少位元組,這就是來源硬碟的實際大小。完成以後,30G的西部資料硬碟就跟原來的IBM硬碟“一模一樣”了,只不過是後面有10G的空空間,你可以在份一個分區(我的硬碟不能在分主要磁碟分割了,因為4個Primray分區已滿,只能在芬邏輯分區),或者用PQ、Fips擴大原有的分區。如果你什麼都不做,那麼從新啟動Win98以後,跟原來是一模一樣的。如果啟動Linux,就有了一些問題,因為對於新硬碟來說,相當於運行完了dd程式就切斷了電源,因此檔案系統處於un
clean狀態,在啟動的時候會報錯,不要怕,輸入root密碼,然後運行:fsck / 這就啟動了檔案系統檢測程式,相當於Windows下的磁碟檢測,對於所有的問題都回答“y”,大部分都是/tmp的問題,無關緊要的。修複完畢,輸入:reboot就可以安全的啟動Linux了!
總的來說,Linux下的dd相對於Ghost各有所長。dd的複製是完全基於二進位的物理複製,從硬碟的第一個位元組道最後一個位元組,完全一樣的複製了一邊,所以是最保險、最準確的。而且由於dd是物理複製,所以只要是硬碟上存在的分區,無論Linux是否認識,甚至是Linux認不出是什麼的一段資料,都可以原原本本的複製,例如FreeBSD分區、其他動作系統的分區,甚至加密扇區什麼的,就連邏輯壞塊也原樣複製!因此除非出現物理問題,不然dd是絕對不會出錯的!而Ghost則比較“進階”一些,可以在複製的時候改變分區大小(他認識的分區格式),壓縮映像檔案(dd本身不具有壓縮功能,但是可以用gzip、bzip2等工具壓縮產生的檔案),在Windows下還有explore軟體可以單獨提取檔案出來,還有網路功能,而且速度也要比dd快一些(好像Ghost使用了較大的緩衝)。另外一點dd的優勢在於,在複製的同時還可以幹些別的事情,不像Ghost那樣只能乾等。因此從這方面來看,dd的速度又要比Ghost快,因為它完全佔用系統的時間是零!
其它Unix下的dd操作跟Linux下的雷同,只不過是/dev/hda的稱謂變化一下。我
在FreeBSD4.2下實驗過,效果跟Linux下完全相同,時間稍微長一點點,但是在FreeBSD下,dd的CPU佔用率有時會達到30%以上。
如果你的來源硬碟是IDE,而目標盤是SCSI的,這時要注意了,雖然對於硬體來說是沒有什麼問題,因為現在的Linux還是FreeBSD都支援隨插即用;但是,/etc/fstab檔案需要修改,在dd之前要把所有的hda改成sda,然後再改回來^_^
來源:
http://news.newhua.com/news1/Skills_System/2010/76/1076143929KD4FCHE9CDKAK2GEH64F1109GA213EDA8EHH0BE44K90J.html
http://blog.21ic.com/user1/3108/archives/2008/46201.html