tr '\0' '\071' < /dev/zero | dd of=/dev/sda bs=1M conv=fsync 2>/dev/null
이 명령은 디스크를 0으로 만드는 dd 명령 직후에 실행됩니다. 16진수 덤프 출력을 변경합니다.
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
7745d6000
도착하다
0000000 3939 3939 3939 3939 3939 3939 3939 3939
*
7745d6000
하지만 이 명령이 정확히 무엇을 달성하려고 하는지 알 수 없습니다.
답변1
그것을 분석해 봅시다:
tr '\0' '\071' < /dev/zero
읽기에서 /dev/zero
0바이트를 생성하고 '\0'
모든 0바이트( )를 8진수( '\071'
)에 71을 포함하는 바이트로 바꿉니다.즉ASCII에서는 숫자 9, 16진수에서는 0x39( hexdump
표시되는 내용)입니다. 결과는 0x39바이트의 끝이 없는 스트림입니다.
dd of=/dev/sda bs=1M conv=fsync 2>/dev/null
이 입력(9개 모두)을 받아 한 번에 1MB씩 기록하고 /dev/sda
완료하기 전에 데이터가 기록되었는지 확인하십시오.
dd
/dev/sda
끝에 도달했을 때 중지 tr
하면 중지됩니다(더 이상 파이프에 쓸 수 없으며 중지됩니다).
아마도 그 목적은 이전에 드라이브에 있던 모든 데이터를 마스킹하는 것입니다. 이것이 실제로 유용한지는 또 다른 문제입니다.
답변2
하지만 이 명령이 정확히 무엇을 달성하려고 하는지 알 수 없습니다.
null 바이트를 071(0x39 57 00111001) 바이트로 대체합니다. 어떤 용도로 사용되는지 모르겠습니다.
일반적으로 드라이브 상태를 확인하려면 다음과 같은 다른 모드를 사용할 수 있습니다.
00000000 0000 0x0
11111111 0377 0xFF
01010101 0125 0x55
10101010 0252 0xAA
이 모든 값이 사용됩니다.badblocks