web-dev-qa-db-ja.com

ddはディスクを上書きしません

Windowsホストの仮想マシン(VMWare)でUbuntu18.04.1を実行しています。 ddを使用してSDカード全体をゼロにしようとしています。これは、組み込みLinuxをソフトウェアグループにリリースするために使用するプロセスの一部です(空のFSデータがすべて0の場合、SDカードイメージの圧縮率ははるかに高くなります)。

私が使用しているコマンドは次のとおりです。Sudo dd if=/dev/zero of=/dev/sdc bs=4M status=progressそしてそれは正常に完了します;転送されたレコードのプリントアウトと、デバイスにスペースが残っていないというメッセージが表示されます。それから私がSudo cat /dev/sdc | hexdumpディスクの内容を確認すると、ディスクはまだデータでいっぱいであり、ゼロではありません(最後だけではありません)。

SDカードが一貫して機能するためには、SDカードのバイト数を指定する必要がありますか? SDカードをゼロにするたびにこの問題が発生するわけではありません。

完全なコンソール出力:

gen-ccm-root@ubuntu:~$ Sudo dd if=/dev/zero of=/dev/sdc bs=4M status=progress
15929966592 bytes (16 GB, 15 GiB) copied, 1274 s, 12.5 MB/s
dd: error writing '/dev/sdc': No space left on device
3799+0 records in
3798+0 records out
15931539456 bytes (16 GB, 15 GiB) copied, 1274.19 s, 12.5 MB/s
gen-ccm-root@ubuntu:~$ Sudo cat /dev/sdc | hexdump
[Sudo] password for gen-ccm-root: 
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
0101000 2004 0000 6004 0000 0000 0000 0000 0000
0101010 0000 0000 0000 0000 0000 0000 0000 0000
*
0101400 2005 0000 6005 0000 0000 0000 0000 0000
...
3
Eskimoalva

コメントで述べたように、SDカードはbadblocksでした。

私が提案した解決策は、実行することでした。

badblocks -t 0x0000 -sw /dev/sdc

注意:これはdd if=/dev/zeroのような破壊的なデータです。

そして、ユーザーは次のようなものを受け取りました。

7234624 done, 39:10 elapsed. (0/0/2417408 errors)

SDカードの表示が破損しています。

SDカードが交換され、問題が解決されました。

使用する

Sudo fdsik -l

たとえば、結果を参照してください。

/dev/mmcblk0
/dev/mmcblk01
/dev/mmcblk02

出力が異なる可能性があります。

今、あなたは使うべきです:

Sudo dd bs=4M if=exmple.img of=**/dev/mmcblk0** conv=fsync status=progress
0
farhad azimi