dd寫緩存
㈠ linux下的dd命令備份時無視文件系統嗎比如備份還原一個ntfs分區不會破壞任何許可權如果對l
dd是純二進制的一比一復制,不管什麼文件系統,是一種分區的完全復制,不會破壞許可權的。
dd也有緩存機制的。
㈡ Linux dd指令燒錄U-boot到SD卡但沒有成功
通過dd命令製作鏡像, 是看不到寫入的鏡像文件的。
能夠看到的,是鏡像文件裡麵包含的內容。
㈢ 如何測試Linux磁碟的讀寫速度
用法:
1.測試IO讀
hdparm -t --direct /dev/sda3
IO讀用上面的命令測試即可,不過 hdparm 這個工具需要自己安裝,而且需要root用戶去執行。
2.測試IO寫
sync;/usr/bin/time -p bash -c "(dd if=/dev/zero of=test.dd bs=1000K count=20000;sync)"
dd bs=1M count=20000 if=/dev/zero of=test.dd conv=fdatasync dd命令測試是IO的順序寫和讀方式。
3.查看文件系統塊大小
tune2fs -l /dev/sda1 | grep Block
上面的命令行有些復雜,做下詳細的解釋:
(1)sync 命令用來刷新文件系統的緩沖區,執行sync命令實際的作用是把內存中的數據緩沖寫入到磁碟中。
先執行下sync命令,是為了減少對後面測試的影響。也可以使用 echo 3 > /proc/sys/vm/drop_caches 來清除緩存。
(2)time 命令用來測試命令的執行時間,shell內建還有一個time命令,我們這里使用全路徑來指定使用的是非內建命令。
-p 選項設置時間的輸出格式為POSIX預設時間格式,單位是秒,在後面的測試小節可以看到time -p 的輸出形式。
(3)bash 命令 -c 選項的作用是將後面的字元串參數當作bash腳本來執行,看起來有些畫蛇添足,好像直接執行也是可行的,
其實不然,因為後面字元串中包含了兩條命令行,而time命令需要統計這兩條命令行的執行時間。
(4)小括弧的意思是另起一個子進程來執行括弧中的腳本,dd 這條命令行這里就不講了,不知道的話Bai吧。
重點是sync命令,因為當dd退出時,這條命令行提交的大部分內容都在內存緩沖區(寫緩存),甚至如果機器的內存相比於你提交的數據要大得多,
那可能數據都在內存中,而再執行sync才能將內存中的數據寫入到磁碟中,否則就成了測試內存的寫速度,那顯然不是你想要的結果。