Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux_faq:bash_bits_operations [2020/11/22 19:38] – [Зачем мне такое надо] adminlinux_faq:bash_bits_operations [2020/12/08 21:09] (current) – [Как обойтись без файлика] admin
Line 58: Line 58:
   dd if=/dev/sdc bs=16384 count=3897983 | sha1sum -b -   dd if=/dev/sdc bs=16384 count=3897983 | sha1sum -b -
   9cee0b471cd582196b1c9fddf780186e69c526be *-   9cee0b471cd582196b1c9fddf780186e69c526be *-
-На новой флехе всё совпадает. +На новой флехе всё совпадает. \\ 
 +Вот скрипт для проверки флешки. Сначала скрипт заливает весь диск единичками, проверяет, потом - заливает нулями и проверяет: 
 +<code>#!/bin/bash  
 + 
 +disk=$1 
 +disk_size=`blockdev --getsize64 $disk` 
 +block_size=32768 
 +count=$(( $disk_size / $block_size )) 
 +red=`tput setaf 1` 
 +green=`tput setaf 2` 
 +reset=`tput sgr0` 
 + 
 +echo "Disk: ${disk}, Disk Size in bytes: ${disk_size}, Blocks count: ${count}" 
 +echo "Calculating reference sha1sum with ones..." 
 +ref_csum=`export LC_ALL=C && dd if=/dev/zero bs=$block_size count=$count status=progress | tr '\0-\377' '\377\376\375\374\373\372\371\370\367\366\365\364\363\362\361\360\357\356\355\354\353\352\351\350\347\346\345\344\343\342\341\340\337\336\335\334\333\332\331\330\327\326\325\324\323\322\321\320\317\316\315\314\313\312\311\310\307\306\305\304\303\302\301\300\277\276\275\274\273\272\271\270\267\266\265\264\263\262\261\260\257\256\255\254\253\252\251\250\247\246\245\244\243\242\241\240\237\236\235\234\233\232\231\230\227\226\225\224\223\222\221\220\217\216\215\214\213\212\211\210\207\206\205\204\203\202\201\200\177\176\175\174\173\172\171\170\167\166\165\164\163\162\161\160\157\156\155\154\153\152\151\150\147\146\145\144\143\142\141\140\137\136\135\134\133\132\131\130\127\126\125\124\123\122\121\120\117\116\115\114\113\112\111\110\107\106\105\104\103\102\101\100\77\76\75\74\73\72\71\70\67\66\65\64\63\62\61\60\57\56\55\54\53\52\51\50\47\46\45\44\43\42\41\40\37\36\35\34\33\32\31\30\27\26\25\24\23\22\21\20\17\16\15\14\13\12\11\10\7\6\5\4\3\2\1\0' | sha1sum -b -` 
 +echo "Reference sha1sum with ones: $ref_csum" 
 + 
 +echo "Filling disk with ones..." 
 +export LC_ALL=C && dd if=/dev/zero bs=$block_size count=$count status=progress | tr '\0-\377' '\377\376\375\374\373\372\371\370\367\366\365\364\363\362\361\360\357\356\355\354\353\352\351\350\347\346\345\344\343\342\341\340\337\336\335\334\333\332\331\330\327\326\325\324\323\322\321\320\317\316\315\314\313\312\311\310\307\306\305\304\303\302\301\300\277\276\275\274\273\272\271\270\267\266\265\264\263\262\261\260\257\256\255\254\253\252\251\250\247\246\245\244\243\242\241\240\237\236\235\234\233\232\231\230\227\226\225\224\223\222\221\220\217\216\215\214\213\212\211\210\207\206\205\204\203\202\201\200\177\176\175\174\173\172\171\170\167\166\165\164\163\162\161\160\157\156\155\154\153\152\151\150\147\146\145\144\143\142\141\140\137\136\135\134\133\132\131\130\127\126\125\124\123\122\121\120\117\116\115\114\113\112\111\110\107\106\105\104\103\102\101\100\77\76\75\74\73\72\71\70\67\66\65\64\63\62\61\60\57\56\55\54\53\52\51\50\47\46\45\44\43\42\41\40\37\36\35\34\33\32\31\30\27\26\25\24\23\22\21\20\17\16\15\14\13\12\11\10\7\6\5\4\3\2\1\0' | dd of=$disk bs=$block_size  
 +echo "Flushing buffers to disks..." 
 +sync 
 +sync 
 +echo 3 > /proc/sys/vm/drop_caches  
 + 
 +echo "Calculating sha1sum of the disk content..." 
 +fact_csum=`dd if=$disk bs=$block_size count=$count status=progress | sha1sum -b -` 
 +echo "Fact disk content sha1sum checksum: $fact_csum" 
 + 
 +if [ "$ref_csum" = "$fact_csum" ]; then  
 +  echo "Check with ones passed... ${green}Disk is OK!${reset}" 
 +else 
 +  echo "Check with ones failed... ${red}Disk is BAD!${reset}" 
 +fi 
 + 
 +echo "Calculating reference sha1sum with zeroes..." 
 +ref_csum=`dd if=/dev/zero bs=$block_size count=$count status=progress | sha1sum -b -` 
 +echo "Reference sha1sum with zeroes: $ref_csum" 
 + 
 +echo "Filling disk with zeroes..." 
 +dd if=/dev/zero of=$disk bs=$block_size count=$count status=progress 
 +echo "Flushing buffers to disks..." 
 +sync 
 +sync 
 +echo 3 > /proc/sys/vm/drop_caches  
 + 
 +echo "Calculating sha1sum of the disk content..." 
 +fact_csum=`dd if=$disk bs=$block_size count=$count status=progress | sha1sum -b -` 
 +echo "Fact disk content sha1sum checksum: $fact_csum" 
 + 
 +if [ "$ref_csum" = "$fact_csum" ]; then  
 +  echo "Check with ones passed... ${green}Disk is OK!${reset}" 
 +else 
 +  echo "Check with ones failed... ${red}Disk is BAD!${reset}" 
 +fi</code> 
  • linux_faq/bash_bits_operations.txt
  • Last modified: 2020/12/08 21:09
  • by admin