fstab 파일을 편집하여 파일 시스템 복구

fstab 파일을 편집하여 파일 시스템 복구

fstab 파일을 다시 편집하여 xfs 복구를 실행할 수 있습니까?

/dev/mapper/vg-linux_root /                       xfs     defaults        0 0
UUID=7de1dc5c-b605-4a6f-bdf1-f1e869f6ffb9 /boot   xfs     defaults        0 0
/dev/mapper/vg-linux_var /var                     xfs     defaults        0 0
/dev/mapper/vg-linux_swap swap                    swap    defaults        0 0

잘 모르겠지만 마지막 숫자를 0에서 1로 바꾸면 되지 않나요?

답변1

아니요, 단순히 /etc/fstab을 편집한다고 해서 xfs_repair가 실행되는 것은 아닙니다.

다른 파일 시스템 유형에서도 작동합니다. 하지만 여기서 XFS는 특별합니다.

XFS 파일 시스템의 6번째 필드를 /etc/fstab0이 아닌 값으로 변경하면 시스템이 작동하게 됩니다 fsck.xfs. 매뉴얼 페이지에는 다음과 같이 나와 있습니다.

NAME
       fsck.xfs - do nothing, successfully

[...]

       However,  the  system  administrator  can force fsck.xfs to run xfs_re‐
       pair(8) at boot time by creating a /forcefsck file or booting the  sys‐
       tem with "fsck.mode=force" on the kernel command line.

그래서 저는 보통 fsck.xfs아무것도 하지 않습니다.

시작할 때 실제로 실행되도록 하려면 xfs_repair다음 두 가지 조건을 충족해야 합니다.

a) 연결된 XFS 파일 시스템의 경우 실행 /etc/fstab하려면 필드 6이 0이 아니어야 합니다 fsck.xfs.

b) /forcefsck파일은 루트 파일 시스템(또는 루트 파일 시스템을 확인하려는 경우 initramfs)에 있어야 합니다. 그렇지 않으면 커널 명령줄에 fsck.mode=force부팅 옵션이 있어야 합니다. 그러면 아무것도 하지 않는 대신 fsck.xfs실행이 발생합니다 .xfs_repair

그렇다면 xfs_repair의 특별한 점은 무엇입니까?

XFS 파일 시스템과 xfs_repair도구는 모두 기본 디스크의 상태가 양호하거나 적어도 불량 블록을 내장된 예비 블록(모든 최신 디스크와 마찬가지로)으로 투명하게 교체할 수 있다고 가정합니다. 최신 디스크에 운영 체제에 표시되는 영구 불량 블록이 있는 경우 이는 일반적으로 내장된 예비 블록 메커니즘이 불량 블록 수에 의해 압도되어 디스크가 곧 완전히 실패할 수 있음을 의미합니다.

매뉴얼 페이지에는 다음과 xfs_repair같이 나와 있습니다.

   Disk Errors
       xfs_repair aborts on most disk I/O errors. Therefore, if you are trying
       to  repair  a  filesystem that was damaged due to a disk drive failure,
       steps should be taken to ensure that all blocks in the  filesystem  are
       readable and writable before attempting to use xfs_repair to repair the
       filesystem. A possible method is using dd(8) to copy the  data  onto  a
       good disk.

따라서 일반적인 상황에서는 xfs_repair자동으로 실행되도록 설정하면 안 됩니다.

XFS 파일 시스템에 오류가 있는 경우 항상 기본 디스크의 상태를 먼저 평가해야 합니다. 파티션/LV의 전체 내용을 읽고 명령이 오류 없이 완료되는지 확인하는 smartctl -a /dev/<disk device>것이 유용할 수 있습니다 .dd/dev/null

디스크에 오류가 발생하면 먼저 파티션/LV의 내용을 오류가 없는 새 디스크에 복사한 다음( dd또는 사용 가능) 오류가 없는 디스크에서 파일 시스템을 실행해야 합니다 ddrescue.xfs_repair

xfs_repair파일 시스템 수준 오류가 발생하는 것을 알고 있는 경우 디스크 상태가 양호하더라도 시작 시 자동으로 실행하는 것이 적절한 해결 방법일 수 있습니다. 그러나 이는 해결책이 아니라 해결 방법입니다. 파일 시스템 오류의 원인을 찾아 근본 원인을 수정해야 합니다. (아마도 업데이트된 커널 패키지가 필요한 파일 시스템 드라이버 버그일까요?)

답변2

위 파일에 /dev/sda오류가 있으면 해당 파일을 실행해야 합니다 fsck. 실제로 디스크 자체는 복구되지 않고 파일만 복구된다는 점을 명심하세요. 디스크에 오류가 있고 장애가 발생하면 디스크를 교체하고 백업에서 데이터를 복원하는 것이 가장 좋습니다. 디스크가 충분히 나빠지면 특히 디스크가 완전히 손상된 경우 데이터가 손실될 수 있기 때문입니다.

관련 정보