>

우연히 파티션이 너무 작아서 LV에 ext4 파일 시스템이 손상되어 파괴되었습니다. 파티션을 원래 크기로 다시 확장 한 후 현재 상태 udev 이므로 LV에 새 ext4 FS를 넣었습니다.  장치 파일도 제공하지 않습니다. 나는 여전히 좋은 어딘가에 백업이 있기를 희망하는 오래된 수퍼 블록을 복구해야합니다. 어떻게 찾습니까? 할 수 있습니까? 와이즈 비즈  그것들을 많이 찾은 것 같지만 그중 아무것도 작동하지 않습니다.

testdisk
  • 답변 # 1

    행운이 있거나 파티션에 백업 수퍼 블록이 있습니다. 파일 시스템을 만드는 데 사용 된 옵션 (예 : 방금 기본값을 사용한 경우)을 기억할 경우 다음과 같이 백업 위치를 찾을 수 있습니다.

    sudo /sbin/mkfs.ext4 -n <original_options> <device>
    
    

    와이즈 비즈  디스크에 아무 것도 쓰지 않는 "드라 이런"옵션입니다. 실험하는 동안 디스크를 안전한 곳에 덤프하는 것이 좋습니다. 이미 완료했습니다.)

    원래의 옵션을 기억하지 못하는 경우에도 후보 목록을 얻기 위해 위의 시도를해볼 가치가 있습니다.

    이제 각 후보 수퍼 블록에 대해 -n 로 마운트 해보십시오.  대체 수퍼 블록 (및 읽기 전용)을 사용합니다. 성공하면 일부 파일을 복구 할 수 있습니다.

    만약 후보 수퍼 블록 중 어느 것도 성공적인 마운트를 허용하지 않는다면, 마지막 도랑 노력은 -o ro,sb=<n> 를 사용하여 새로운 수퍼 블록을 작성하는 것일 수 있습니다   -S 옵션 : "수퍼 블록 및 그룹 디스크립터 만 쓰기. 이것은 모든 수퍼 블록 및 백업 수퍼 블록이 손상되고 마지막 디치 복구 방법이 필요한 경우에 유용합니다." >전체 파티션 백업없이이 작업을 수행하십시오.

  • 답변 # 2

    먼저 디스크가 읽기 전용인지 확인하여 데이터를 복구하는 동안 디스크에 더 이상 쓰기가 발생하지 않도록하십시오.

    ext4 수퍼 블록은 아이 노드 수, 블록 수 등에 따라 내용이 매우 다양하기 때문에 찾기가 어렵습니다. 그러나 검색을 시도 할 수있는 마술 서명 0xEF53 (16 비트)이 있습니다. 올바른 장소를 찾으면 수퍼 블록의 시작 (및 총 inode 수)을 그 앞에 56 바이트 (0x38 바이트의 16 진)로 두어야합니다.

    0xEF53의 많은 인스턴스를 찾을 수 있지만 수퍼 블록에서 다른 가능한 값을 확인하면이를 식별 할 수 있습니다.

    다음은 ext4 수퍼 블록 값의 표입니다 : https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#The_Super_Block

    전체 디스크 이미지에 16 진 편집기를 사용하면 결과가 나올 수 있습니다.

    ext4 수퍼 블록처럼 보이는 것을 데이터를 검색하는 프로그램을 작성 (또는 누군가에게 지불)하는 것도 좋은 생각입니다. 예를 들어 OS가 "Linux"이므로 오프셋 72 (0x48)의 32 비트 숫자는 0이어야합니다.

    최고의 행운.

    mkfs.ext4

  • 이전 text processing - 여러 줄 패턴 공간이있는 sed의 ^ 및 $정규식 앵커의 POSIX 동작
  • 다음 리눅스 RAID 어레이를 재 구축 하시겠습니까?