fsck : 가장 철저한 디스크 검사를위한 옵션


12

알려진 문제가있는 디스크가 있습니다 (복제하려고 할 때 dd가 개그 때문에 알고 있습니다). 그러나 라이브 CD로 부팅하고 마운트 해제 된 파티션에서 fsck를 실행하면 다음과 같은 결과가 나타납니다.

ubuntu@ubuntu:~$ sudo fsck /dev/sdf1
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
/dev/sdf1: clean, 227091/9625600 files, 12789815/38497756 blocks

밀리 초 후에. 전체 하드 드라이브를 ms 단위로 체크 아웃했다고 믿기 어렵습니다.

또한 sdf1 또는 전체 물리 디스크 sdf를 fscking해야하는지 확실하지 않습니다. 전체 드라이브를 사용해 볼 때 :

ubuntu@ubuntu:~$ sudo fsck /dev/sdf
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
fsck.ext2: Device or resource busy while trying to open /dev/sdf
Filesystem mounted or opened exclusively by another program?

어떤 파티션도 마운트되어 있지 않기 때문에 이해할 수 없습니다 (방금 라이브 CD로 부팅하고 명령을 실행했습니다).

그래서 내 기본적인 질문은 : 문제 디스크를 분석하는 데 1 밀리 초 이상을 소비하기 위해 fsck (또는 더 나은 다른 도구)를 얻는 방법은 무엇입니까?

답변:


14

우선, 파티션에서 fsck를 실행하는 것이 옳습니다. fsck는 전체 디스크가 아닌 파일 시스템에서만 작동합니다. 를 사용하여 디스크의 모든 파티션 목록을 얻을 수 있습니다 fdisk -l /dev/sdd.

파일 시스템 유형은 아마도 ext3 (대부분의 Linux 배포판의 기본값) 일 것이므로 저널이 깨끗하면 일반적으로 fsck를 전달합니다. fsck -f위에서 언급했듯이 전체 검사를 강제합니다.

그러나 디스크에 읽기 오류가있는 경우 dd는 실제로 디스크 내용에 신경 쓰지 않기 때문에 fsck가 dd에 도움이되지 않습니다.

dd가 디스크를 읽고 읽기 오류를 계속 발생 시키려면을 사용하십시오 dd conv=noerror,sync.이 오류는 읽기 오류가 지속되면 읽기 오류가 발생하면 블록에 널 바이트를 추가합니다.

백업을 완료 한 후 fsck -f복제본을 실행하여 다시 실행해야합니다.

또 다른 팁 : 파티션을 파일로 백업하는 경우을 사용하여 루프백 마운트 할 수 있습니다 mount -o loop filename.ext3 /mountpoint. 또한 200G 파티션을 500G 드라이브로 복제한다고 가정하면 resize2fs /dev/sdx1sdx가 새 드라이브이고 단일 500G 파티션으로 파티션 된 경우 실행할 수 있으며 파일 시스템의 크기가 500G로 조정됩니다.

마지막으로, 디스크에 읽기 오류가 발생하는 형태 인 경우 데이터 복구가 완료 될 때까지 디스크를 껐다가 켜지지 않는 것이 좋습니다. 일부 장애 모드에서 디스크는 특정 시점에서 더 이상 OS가 더 이상 스핀 업하거나 인식하지 못하며,이 시점에서 드라이브에서 데이터를 가져 오는 것이 상당히 비쌉니다.


"dd conv = noerror, sync"를 시도했지만 복제 된 디스크를 부팅 할 수 없습니다. 부팅 디스크가 제대로 작동하기 때문에 실망 스럽지만 fscks는 좋지만 디스크에 불량 블록이 1 개 있기 때문에 다른 디스크에 복제 할 수는 없습니다 (데이터가없는 경우). 나는 붙어있는 것 같습니다 ...
프레드 해밀턴

디스크를 부팅 할 수없는 다른 이유가있을 수 있습니다 (다른 디스크 구조 및 MBR / 부팅 로더 문제). 먼저 새 디스크의 파일 시스템이 정상인지 확인할 수 있으면 GRUB 부트 로더 등을 업데이트하여 설치 CD에서 복구 모드를 사용하여 시스템으로 부팅 할 수 있습니다. 먼저 fsck -f / dev / sdx1을 실행 한 다음 mount / dev / sdx1 / mnt로 파일 시스템을 마운트하십시오. x를 적절한 드라이브 문자로 바꾸십시오.
Kristian

훌륭한 제안이지만 복제 된 파티션에서 fsck -f를 실행했을 때 문자 그대로 수백 가지 오류 (노드의 불법 블록, 압축 지원없이 파일 시스템에 압축 비트 세트, 잘못된 확장 속성 블록 등)가 발생했습니다. 클론이 완전히 막혔습니다 ... 다음에 무엇을 해야할지 모르겠습니다 ... 모든 파일을 깨끗한 파티션으로 복사하려고합니다. 어쨌든 감사합니다.
Fred Hamilton

4
dd보다 ddrescue (또는 dd_rescue + dd_rhelp)를 사용하는 것이 좋습니다. 오류를 처리하고 오류가 발생한 섹터를 재 시도하는 것이 더 현명합니다. gnu.org/software/ddrescue/ddrescue.html kalysto.org/utilities/dd_rhelp/index.en.html garloff.de/kurt/linux/ddrescue
freiheit 5

1
복구 미디어로부터 (1) 부팅 (루트 파티션을 마운트 해제해야합니다), (2) 실행을 다음과 같이 루트 EXT2, EXT3 또는 ext4에 파티션 (가능하면 자동화 된 모든 수정과) 가장 철저한 디스크 검사가 실행됩니다 e2fsck -f -cc -D -p. 이렇게하면 미디어에 대한 비파괴적인 읽기 / 쓰기 검사로 강제 검사를 수행하고 안전하게 해결할 수있는 모든 발견 된 문제를 복구합니다. 2TB HDD의 경우 며칠이 걸릴 수 있습니다 ...
Mikko Rantalainen

10

이것은 귀하의 경우에는 관련이 없지만 어쨌든 언급 할 것이라고 생각했습니다.

하위 디스크 검사의 경우 badblocks유틸리티를 사용할 수 있습니다 . 그것은 장치를 통과하고 불량 블록을보고합니다 (물론 아무것도 수리 할 수는 없습니다). 적어도 디스크가 물리적으로 손상되었는지 확인하는 데 유용합니다.

또한 파일 시스템에서 잘못된 블록을 사용하지 않도록 e2fsck할 수 있습니다 badblocks. 에서 e2fsck수동 :

  -c     This option causes e2fsck to use badblocks(8) program to do a  read-
         only scan of the device in order to find any bad blocks.  If any bad
         blocks are found, they are added to the bad block inode  to  prevent
         them from being allocated to a file or directory.  If this option is
         specified twice, then the bad block scan will be done using  a  non-
         destructive read-write test.

또한 fsck_hfs -s불량 블록을 스캔합니다.
awiebe

5

-f 옵션을 fsck로 설정하려고합니다 (파일 시스템이 깨끗한 것처럼 보이더라도 강제 검사).

단일 사용자 모드에서 fsck를 실행해야합니다. 라이브 CDROM 부팅없이이 작업을 수행하는 쉬운 방법 중 하나는 -F 옵션을 사용하여 재부팅하는 것입니다.

shutdown -rF now 

고맙지 만 한 가지 질문 : 라이브 CD를 사용하여 -F 옵션으로 재부팅하면 라이브 CD가 검사를 실행해야한다는 것을 어떻게 알 수 있습니까? 그것은 CD이고, 내가 아는 기억이 없다 ...
Fred Hamilton

라이브 CD에서 그렇게 할 필요는 없다고 생각합니다. 라이브 CD로 부팅하고 -f (force) 옵션이 포함 된 마운트 해제 된 파티션에서 fsck를 실행하면됩니다. 또는 shutdown -rF를 사용하여 하드 디스크에서 재부팅 할 수 있습니다. 파일 시스템이 마운트되기 전에 fsck를 강제 실행합니다.
Richard Hoskins

실제로 단일 사용자 모드에서 fsck를 수행합니다. 내 답변을 편집했습니다.
Richard Hoskins

1
-F에 대한 플래그 shutdown일반적으로 공식적으로 문서화되어 있지 않습니다 (참고 man shutdown하고 shutdown --help있으며이 아니다주의) 당신이 직장에 믿을 수 있습니다. 때때로 그것은 no-op입니다. 공식적으로 루트 파티션을 검사하는 유일한 방법은 대체 미디어에서 부팅하는 것입니다.
Mikko Rantalainen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.