Android 자체의 SD 카드 오류를 확인하고 수정 하시겠습니까?


42

때때로 내 SD 카드가 "손상"되어 많은 읽기 / 쓰기 오류가 발생합니다. 일반적으로 SD 카드를 Windows 7에 연결하고 "오류 확인" (드라이브> 도구> 오류 확인을 마우스 오른쪽 단추로 클릭) 옵션을 선택하면 손상이 발견되어 수정됩니다.

드라이브 오류에 대해 SD 카드를 확인 하고 안드로이드 자체에서 SD 카드를 수정하기위한 도구 나 앱이 있습니까?

또한 busybox가 설치된 상태에서 뿌리 내리는 거품에 대해 언급하고 싶습니다.


당신은 일을, 터미널 응용 프로그램과 함께 시도 su하고 실행 /system/bin/fsck.exfat?
Izzy

@Izzy 제공합니다No such file or directory
Irfan

다른 위치를 확인하십시오. /system/xbin대신 있을까요? 시도 cd디렉토리에 보내고, 그리고 ls fsc*가능한 것을 확인 할 수 있습니다. 어딘가에 있어야합니다 :)
이지

1
바로 그거죠. Busybox는 가능한 한 얇아 지려고합니다. "man mount"로 Google 이모를 사용해보십시오. :) 그리고 아래 답변을 참조하십시오. 불분명 한 부분이 있으면 의견을 말하십시오 (또는 채팅으로 나를 보아라-앞으로 몇 시간 동안 연락을 드릴 수는 없지만 도움을 줄 수있는 다른 회원들이 여전히 있습니다 :)
Izzy

2
SD 카드에 반복적으로 오류가 발생하면 실제로 H2testw를 사용하여 용량이 명시된 용량인지 확인해야합니다 (독일어, 독일어 및 영어로 된 소프트웨어로만 링크하십시오. 반대로 보이는 경우에도 공식적인 집이라고 믿습니다). 불량 SD 카드는 자동으로 손상됩니다.
코드 블링

답변:


17

루트 및 터미널 에뮬레이터 (예 : Android 터미널 에뮬레이터 (또는을 사용하여 adb shell))를 사용 하여이 문제를 해결할 수 있습니다 . 작업을 수행하는 이진 파일은이라고 fsck하며 대개 /system/xbin또는 에 위치합니다 /system/bin. 때로는 특별한 변형이 필요합니다. 예를 들어, 호출 될 수 있습니다 fsck.exfat. 먼저 올바른 바이너리를 찾으십시오.

cd /system/xbin
ls fsc*

찾을 수 없으면로 반복하십시오 /system/bin. 여기서는 처음에 발견되었다고 가정하고 간단히 호출합니다 fsck(그렇지 않은 경우 다음을 적절히 조정하십시오).

fsck"리눅스 코어"에서 나온 것처럼 , 구문에 대해서는 맨 페이지 를 참조하십시오 . Android에서는 작동하지 않는 옵션이있을 수 있지만 가장 기본적인 옵션이 있습니다. 자세한 내용은 링크 된 매뉴얼 페이지를 참조하십시오 (또는 Linux VM을 실행하고 man fsck해당 페이지가 사라지는 경우 사용 ). 여기서 기본 사항을 고수합니다.

먼저 SD 카드가 연결된 장치를 찾아야합니다. 마운트 된 경우이 mount명령은 다음을 지원합니다.

mount

기본적으로, 출력을 확인하고 SD 카드가 어디에 있는지 확인하십시오. 일반적으로 이것은을 사용하는 vold것이지만 장치마다 다릅니다. 출력에는 다음과 같은 내용이 포함될 수 있습니다 /dev/block/vold/179:17 on /mnt/storage/sdcard.이 경우 견적의 첫 부분은 장치입니다. "드라이브"를 복구하려면 먼저 마운트를 해제해야합니다. 설정 메뉴를 통해 또는 터미널에있는 것처럼 발급하여 수행 할 수 있습니다.

umount /dev/block/vold/179:17

이제 수리 작업을 할 수 있습니다. 기본 구문은 다음과 같습니다.

fsck [options] [-t fstype] <filesystem> [fsoptions]

그래서 우리는 먼저 가장 간단한 접근법을 시도하고 fsck모든 것이 스스로 파악 되기를 바랍니다 .

fsck -C -r /dev/block/vold/179:17

기본적으로 의미 : 진행 상황을 표시하고 (-C) 사용자에게 항상 오류를 복구하도록 요청하십시오 (-r) /dev/block/vold/179:17. 그래도 문제가 해결되지 않으면 링크 된 매뉴얼 페이지에서 추가 옵션을 확인하십시오.


4
당신은 또한 자신에게 저장할 수 있습니다 cd사용하여 원하는 경우 단계를 ls /system/bin/fsc*하고 ls /system/xbin/fsc*현재 작업 디렉토리가 무엇이든에서. 와 함께 두 명령을 하나의 명령으로 결합 할 수도 ls /system/xbin/fsc* /system/bin/fsc*있습니다.
eldarerathis

1
아니요, 혼동하지 않습니다. 제가 모르는 것은이 질문이 실제로 SD 카드에 관한 것입니다. 네, 사실 몇 가지를 혼동했습니다. 엄밀히 말하면 SD 카드를 ext로 포맷 할 수 있으므로 그렇게하는 사람들에게 적용될 수 있습니다.
Lie Ryan

1
요점을 알았어. "평균 사용자"(또는 "의심스러운"사용자)는 적어도 상호 운용성을 위해 FAT를 사용하는 것이 좋습니다. ExtFS는 OS에서의 대부분에서 지원됩니다 적어도 때까지 쉽게 그리고 기본적으로 (윈도우는 평소와 같이, 여기에 함정 남아 추측)에 필요한 추가 드라이버없이.
Izzy

1
이 답변에 감사드립니다. 필자가 필요하다고 생각합니다. 에 오류가 발생했습니다. umount루트 여야합니까?
유기농 대리석

1
물론 @OrganicMarble-위의 모든 명령에 대해 또는 그런 식으로 장치 (로 시작하는 모든 것)에 액세스 할 수 없습니다 /dev.
Izzy

3

이것에 감사합니다, 그것은 내 하루를 저장 :)

root@android:/ # mount | grep -i sdcard
/dev/block/nandk /mnt/sdcard vfat rw,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0

root@android:/ # /system/bin/fsck_msdos -y /dev/block/nandk

이 답변을 게시 해 주셔서 감사합니다. 수락 된 답변에서 vfat 파일 시스템을 수정하는 방법을 몰랐습니다. 공감.
유기농 대리석

2

SD 카드에 반복적으로 오류가 발생하면 실제로 H2testw를 사용하여 용량이 명시된 용량인지 확인해야합니다 (독일어, 독일어 및 영어로 된 소프트웨어로만 링크하십시오. 반대로 보이는 경우에도 공식적인 집이라고 믿습니다). 불량 SD 카드는 자동으로 손상됩니다.


오랫동안 잊혀진 답변에 대한 공감대에 감사드립니다. 아마도 의견이어야하지만, 당시에는 그 평판이 없었을 것입니다. 주석이 올라가서 보일 때까지 여기에 남겨 두겠습니다.
코드 블링

나는 당신의 의견을 상향 조정했습니다.
unforgettableid

@unforgettableid 감사합니다. 모든 사람이이 위험에 대해 알고 있는지 확인하고 싶습니다. 실제로 데이터를 잃어 버리는 것은 짜증납니다.
코드 블링

좋아요, 이제 의견이 상향 조정되었으므로이 답변을 삭제할 수 있습니다. :)
잊을 수없는

@unforgettableid는 가시성을 위해 지금 둘 다 떠날 것입니다
Code Bling


0

내가 실수하지 않으면 롬에 따라 다음을 수행하여 재부팅 할 때 안드로이드가 내부 및 외부 저장소를 fsck하도록 강제 할 수 있습니다.

터미널 앱을 실행하고 유형

su
touch /forcefsck

그런 다음 재부팅하십시오.

휴대 전화가 뿌리를 내리지 않으면 분명히 실패합니다.

출처 : http://forum.xda-developers.com/showpost.php?p=57027579&postcount=20


"ROM에 따라 다름"은 무슨 뜻입니까?
unforgettableid

이 트릭은 모든 전화에서 작동하지 않을 수 있습니다. 다른 전화는 아무것도하지 않을 수 있습니다. 또한 당신의 전화는 루팅해야합니다.
Trekeyus

재부팅 한 후에 fsck실제로 실행 되는지 여부를 어떻게 알 수 있습니까?
unforgettableid

1
-1. 난 당신의 게시물을 downvoted했습니다. 이유는 다음과 같습니다. 문제를 조사하는 데 더 많은 시간을 보냈습니다. 당신의 제안 된 기술은 아마 100 % 오해 일 것입니다. 독자들이 그것이 도움이된다고 생각하도록 속일 수도 있지만,이 기법은 실제로 아무 것도하지 않습니다.
잊을 수없는

2
touch /forcefsck/forcefsck파일 존재 여부를 확인하는 init 스크립트가있는 장치에서만 작동 합니다. 그런 init 스크립트를 가진 하나의 Android 장치를 알지 못합니다. 따라서 귀하의 기술은 데비안, 우분투 및 민트 장치에서 작동 할 가능성이 있지만 모든 안드로이드 장치에서 작동한다는 것은 매우 의심 스럽습니다. 누군가가 init 스크립트를 사용하여 하나의 Android 기기를 찾은 경우 /forcefsck알려주십시오. 이 의견에 회신하십시오.
잊을 수없는
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.