나는 다음과 같은 것을 실행하고 싶다
% sudo grep -i -a 'some-string' <drive device>
Linux에서는 <drive device>
다음과 같습니다 /dev/sda1
. Darwin에 해당하는 것을 어떻게 찾을 수 있나요?
(명확하지 않은 경우를 대비하여 실수로 삭제된 데이터를 찾기 위해 최후의 노력을 기울이고 있습니다.)
답변1
OS X는 현재 파일 시스템이 전체 디스크를 차지하는 경우 이와 같은 방식을 사용합니다 /dev/disk5
. 디스크가 분할된 경우 두 번째 파티션 s#
과 마찬가지로 접미사 를 추가합니다. /dev/disk5s2
( s
파티션 역할을 하는 BSDism인 "슬라이스"의 약어입니다.)
디스크는 부팅 시 운영 체제에서 검색한 순서대로 순차적으로 번호가 지정되므로 어떤 장치가 어떤 것인지 알아내기 위해 몇 가지 실험을 수행해야 할 수도 있습니다.
diskutil list
명령줄에 이를 입력 하면 /dev
노드 및 볼륨 이름을 포함하여 사용 가능한 디스크의 자세한 목록이 표시됩니다.
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *121.3 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage 121.0 GB disk0s2
3: Apple_Boot Boot OS X 134.2 MB disk0s3
/dev/disk1
...etc..
/dev/disk7
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS Time Machine *999.5 GB disk7
위의 경우 disk0
디스크에 세 개의 슬라이스가 있으므로 /dev/disk0
전체 디스크에 대해 하나가 추가 /dev/disk0s1
됩니다 ...s3
.
의 경우 disk7
슬라이스가 보고되지 않으므로 /dev/disk7
전체 디스크 노드를 통해 슬라이스에 액세스할 수 있습니다.
답변2
디스크를 ping할 때 grep
(실제로 인쇄할 수 없는 정보를 찾는 것이 아닌 이상) 다음을 수행하는 것이 좋습니다.
tr -c '[:print:]\n' '\n\n' </dev/disk |
grep -b 'regex'
모든 이진 데이터는 개행 문자로 변환되며 grep
보고된 오프셋이 1만큼 증가하지 않는 한 무시할 수 있습니다.
답변3
디스크 장치를 검색할 때 몇 가지 문제를 발견했습니다. 여기에 도우미 스크립트를 사용하여 문서화했습니다.