linux下badblocks的使用:
[root@localhost ~]# badblocks -h
badblocks:選項需要一個參數 -- h
Usage: badblocks [-b block_size] [-i input_file] [-o output_file] [-svwnf]
[-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]
[-p num_passes] [-t test_pattern [-t test_pattern [...]]]
device [last_block [first_block]]
常用參數含義:
-b block-size
以字節為單位, 指定區塊的大小, 注意這是指每次的讀(寫)大小, 修改並不影響總的讀(寫)量
-i input_file
讀入一個已知的壞塊列表。 Badblocks 命令將會跳過對這些已知是壞塊的區塊檢查。如果 input_file 參數是“-”,則列表從標准輸入讀入。 在這個列表中列舉出的區塊也會在 新的 壞道記錄文件或者壞道記錄輸出時被忽略掉。 dumpe2fs(8) 的 -b 選項能夠在一個已有的文件系統中得到被標記為壞塊的列表,而且已經做成了符合這個選項的格式。
-o output_file
將壞塊的列表寫到指定的文件中。如果沒有這個選項, badblocks 命令會在標准輸出中輸出這個列表。
-n
使用非破壞性的讀寫模式。默認值是非破壞性的只讀模式測試。這個選項不能與 -w 選項一起使用,因為它們是互斥的。
-s
通過輸出正在被檢測的區塊的號碼以表示檢測進程。
-v
混雜模式檢測。
-w
使用寫模式測試. 這個參數會破壞硬盤上的原有數據. 通過使用這個選項 badblocks 通過往每個區塊上寫入一些特定的字符(0xaa,0x55,0xff,0x00),讀出來后再比較其內容,決定是否為壞塊。 這個選項不能與 -n 選項一起使用,因為它們是互斥的。
-f
正常情況下,badblocks命令不會在一個已經激活的設備上讀寫模式或者是非破壞性的讀寫模式的檢測,因為這可能會導致系統的崩潰。 使用 -f 標志可以使這種情況強制執行,但是最好不要在正常的情況下使用它。如果/etc/mtab文件發生了錯誤,而設備實際上並沒有被激活的時候,這個 參數才會是安全的。
-c number of blocks
每一次檢測區塊的數目。默認值是16。增加這個數目可以增加檢測 壞塊 的效率可同時也會增加內存的耗費。 Badblocks 命令在只讀模式下需要花費與每一次檢測的區塊相同數目的內存容量。在讀寫模式下,這個比例是兩倍而在非破壞性的讀寫模式下,這個比例是三倍。
device [last_block [first_block]]
[磁盤裝置][磁盤區塊數 [啟始區塊]]
典型命令:
數據安全 badblocks -n -b 4096 -c 16 -s /dev/sdx -o blocks-list
不保留數據badblocks -w -b 4096 -c 16 -s /dev/sdx -o blocks-list
指定數據badblocks -w -b 4096 -c 16 -s /dev/sdx -o blocks-list 122096645 15110746
讀檢測[root@localhost ~]# badblocks -v /dev/sr0 (默認是只讀檢測)
正在檢查從 0 到 927743的塊
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found. (0/0/0 errors)