파일 시스템은 Linux에서 축소한 후에도 여전히 이전 값을 표시하지만 LVM에서는 올바른 값을 표시합니다.

파일 시스템은 Linux에서 축소한 후에도 여전히 이전 값을 표시하지만 LVM에서는 올바른 값을 표시합니다.

우리의 임무는 LVM의 파일 시스템 크기를 8T에서 7T로 조정하는 것입니다. resize2fs 명령을 제공했고 명령이 계속 실행되는 동안 "쓰기 실패: 피어에 의한 연결 재설정" 오류가 발생하지만 다시 로그인하면 resize2fs 명령이 프로세스 목록에서 계속 실행 중입니다. 프로세스가 완료되면 "lvreduce"를 사용하여 LVM을 줄이고 다시 마운트했습니다.

이제 df -h에서는 여전히 8TB가 표시되지만 LVM에서는 7TB가 표시됩니다. 이 문제를 해결하는 방법은 무엇입니까?

답변1

resize2fs아마도 작업을 완료하지 못했지만 출력의 끝을 놓쳤기 때문에 알 수 없습니다.

당신은해야아니요lvreduce그런 다음 수행되고 실행되었습니다. 이로 인해 파일 시스템의 일부가 손상되었을 가능성이 높습니다. 다른 바이트가 반환될 수 있으므로 lvextend손실된 바이트가 반환되고 파일 시스템이 복구되기를 기대하고 실행하면 이 작업을 취소 할 수 없습니다 .lvextend

제가 추측해야 한다면, 아마도 resize2fs어떤 출력도 내보내지 않고 한동안 작업한 후 연결이 재설정되었을 것입니다. 연결이 재설정된 후에도 한동안 계속 실행됩니다(무시하거나 SIGHUP전혀 수신하지 않습니까?). 그러나 아마도 거의 완료되면 일부 상태 출력을 내보내고 존재하지 않는 터미널에 쓰려고 하는 오류나 신호를 받기 때문에 즉시 종료됩니다. 그러나 그것은 끝나지 않았습니다.

resize2fs파일 시스템의 상태는 공개된 질문이지만 합리적으로 사용 가능한 상태로 유지되고 파일 시스템 크기 감소가 구현되지 않았기를 바랄 수 있습니다.

이야기의 이 부분의 교훈은 다음과 같습니다. 연결이 중단될 가능성이 있는 경우 resize2fs아래에서 screen(또는 직업으로 또는 기타) 중요한 작업을 수행하십시오.at

무엇을 하든, 이 시점에서 시도할 수 있는 모든 것은 위험하므로 백업이 잘 되어 있는지 확인하십시오. 좋은 백업이 없으면 파일 시스템을 읽기 전용으로 마운트하고(손상을 악화시킬 수 있으므로 읽기+쓰기로 마운트하지 마십시오) 즉시 가져올 수 있습니다.

가장 안전한 방법은 파일 시스템을 삭제하고 백업에서 복원하는 것입니다. 그러나 파일 시스템을 다시 제자리로 복원하려면 다음 두 작업을 조합하여 수행해야 할 수도 있습니다.

  • fsck파일 시스템은 그대로입니다. 이렇게 하면 파일 시스템 끝을 넘어서는 읽기 시도에 대해 알리고 잠재적으로 해당 범위를 벗어난 데이터의 양에 대한 아이디어를 얻을 수 있습니다. resize2fs충돌이 발생하기 전에 데이터가 성공적으로 이동되었을 수 있으므로 너무 많지 않기를 바랍니다 .
  • 파일 시스템을 만족시키기 위해 블록 장치 사용량을 lvextend이전 크기로 다시 확장하고 fsck첫 번째 방향부터 전체 작업을 다시 시도하십시오. 이로 인해 파일 시스템이 유효한 데이터가 존재하는 범위를 넘어서는 바이트 범위에 액세스할 때 일부 자동 손상이 발생할 수 있습니다.

나는 당신에게 가장 좋은 것이 무엇인지 잘 모르겠습니다. 이는 파일 시스템에서 무슨 일이 일어나고 있는지의 레이아웃과 사건 이후 얼마나 많은 영향을 받았는지에 따라 다릅니다(적어도 한 번은 읽기+쓰기로 마운트했다고 언급하셨습니다...)

관련 정보