it-swarm-ko.com

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

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

[email protected]:~$ 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

1 밀리 초 후. 몇 초 만에 전체 하드 드라이브를 확인했다고 믿기 어렵습니다.

또한 sdf1을 fsck'ing해야하는지 아니면 전체 물리적 디스크 sdf를 fsck'ing해야하는지 확실하지 않습니다. 전체 드라이브를 시도 할 때 :

[email protected]:~$ 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에서 부팅하고 명령을 실행했습니다).

그래서 내 기본적인 질문은 : 어떻게 fsck (또는 더 잘 작동 할 수있는 다른 도구)를 사용하여 문제 디스크를 분석하는 데 1 밀리 초 이상을 소비 할 수 있습니까?

12
Fred Hamilton

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

파일 시스템 유형은 아마도 ext3 (대부분의 Linux 배포판에서 기본값) 일 것입니다. 즉, 저널이 정리되어있는 한 일반적으로 fsck를 전달합니다. fsck -f는 위에서 언급했듯이 전체 확인을 강제합니다.

그러나 디스크에 읽기 오류가있는 경우 fsck의 양은 dd에 도움이되지 않습니다. dd는 실제로 디스크의 내용에 관심이 없기 때문입니다.

Dd가 디스크를 읽고 읽기 오류를 계속하려면 dd conv=noerror,sync를 사용하십시오. 그러면 읽기 오류가 계속되고 읽기 오류가있을 때 모든 블록에 널 바이트가 추가됩니다.

백업을 완료 한 후 클론에서 fsck -f를 실행하여 다시 시작하고 실행해야합니다.

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

마지막으로, 디스크가 읽기 오류를 제공하는 모양 인 경우 데이터 복구가 완료 될 때까지 디스크를 껐다가 켜지 않는 것이 좋습니다. 일부 오류 모드에서는 디스크가 더 이상 회전하지 않거나 OS에서 인식하지 못하며 그 시점에서 드라이브에서 데이터를 가져 오는 데 상당한 비용이 듭니다.

14
Kristian

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

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

또한 e2fsckbadblocks를 사용하여 파일 시스템에서 사용되는 불량 블록을 방지 할 수 있습니다. 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.
10
Jonik

-f 옵션을 fsck (파일 시스템이 깨끗해 보이는 경우에도 강제 검사)를 원합니다.

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

shutdown -rF now 
5
Richard Hoskins