fsck는 언제 위험한가요?


37

최근에 일관성 문제로 인해 원격 데이터 센터에있는 시스템의 루트 파일 시스템이 읽기 전용으로 다시 마운트되는 것을 보았습니다.

재부팅시이 오류가 표시되었습니다.

UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY (i.e., without -a or -p options)

제안한대로 fsck를 실행하고로 수정 사항을 수동으로 수락 Y하면 오류가 수정되고 이제 시스템이 정상입니다.

이제는 fsck가 모든 것을 자동으로 실행하고 복구하도록 구성된 경우 흥미로울 것이라고 생각합니다.이 경우와 같은 일부 대안은 원격 데이터 센터로 직접 이동하여 영향을받는 시스템에 콘솔을 연결하기 때문입니다.

내 질문은 : 왜 기본적으로 fsck가 수동 개입을 요구합니까? 그러한 프로그램에 의해 수행 된 정정이 어떻게 그리고 언제 안전하지 않습니까? sysadmin이 일정 시간 동안 (다른 작업을 수행하기 위해) 제안 된 수정 사항을 제쳐 두거나 모두 중단하려는 경우는 무엇입니까?


15
개발자가 100 % 확신하면 오류가 자동으로 수정 될 수 있으며, 처음에는 오류가 아닙니다.
user253751 2016 년

답변:


42

fsck기본 하드웨어가 어떻게 든 손상된 경우 확실히 좋은 것보다 더 많은 해를 끼칩니다. 나쁜 CPU, 나쁜 RAM, 죽어가는 하드 드라이브, 디스크 컨트롤러가 잘못되었습니다 ...이 경우 더 많은 손상이 불가피합니다.

의심스러운 경우 손상된 디스크의 이미지 dd_rescue나 다른 도구를 사용하여 이미지를 수정 한 다음 해당 이미지를 성공적으로 수정할 수 있는지 확인하는 것이 좋습니다. 이렇게하면 여전히 원래 설정을 사용할 수 있습니다.


4
나는 하드웨어 고장으로 많은 일을 해왔으며 이것에 동의합니다. 내가하고 싶은 마지막 일은 불량 하드웨어가 의심되는 경우 fsck입니다. 또한 저전력 이벤트와 후속 복구가 자동 fsck에 의해 크게 지연되는 것을 보았습니다.
jorfus

구체적인 예를 들면 다음과 같습니다. "무작위로"(약 10 ^ 5에서 1 회) 디스크 컨트롤러를 사용하여 모든 장치에서 XXXXXXYY를 차단하기 위해 읽기 또는 쓰기를 000000YY에서 차단하기 위해 000000YY로 쓰는 컴퓨터에서 작업했습니다. 첫 번째 장치. 즉, 구조화 된 잘못된 데이터와 구조화되지 않은 잘못된 데이터를 종종 부트 섹터와 부트 디스크의 다양한 중요 파일 시스템 구조에 분사했습니다. 이러한 상황 (수백만 번의 읽기)에서 fsck를 실행하면 데이터 복구 가능성이 없어집니다.
Eric Towers

2
10 ^ 5의 1은 많지만 Mb는 10 바이트입니다.
Nelson

1
@Nelson : 그것은 일종의 ... "바이트"가 아닌 "단일 블록 전송"이있는 단위입니다. 따라서 백만 블록 당 10 개의 불량 블록 쓰기 (그리고 블록은 바이트보다 훨씬 큽니다).
Eric Towers

21

당신은 본 곳 예를 fsck했다,하지만 전혀 성공적으로 작동하지 않았다 어디 더 후 충분한 손상된 파일 시스템을 보았다. 완전 자동으로 작동하면 dd디스크 덤프 와 같은 작업을 수행 할 기회가 없을 수 있으며 대부분의 경우 수리를 시도하기 전에 수행해야 할 훌륭한 아이디어입니다.

자동으로 그런 것을 시도하는 것은 결코 좋은 생각 이 아닙니다 .

아, 그리고 현대 서버에는 원격 콘솔이나 최소한 독립적 인 구조 시스템이 있어야 KVM 랙을 서버에 연결하지 않고도 이와 같은 것을 복구 할 수 있습니다.


7
사실, 좋은 생각 이 아닌 것은 사실이 아닐 때 " 절대 절대로 "라고 말하지 않는 것입니다. 좋은 생각의 사용 사례 : 문제가 발생할 경우 서버의 기본 파티션을 처음부터 빨리 다시 만들 수 있습니다. 실제로 중요한 데이터는 원격 파일 시스템을 통해 액세스되며 해당 데이터에 대한 적절한 이중화가 제공됩니다. 나는 오히려 다량의 기회를 줄 fsck -p /fsck -p /var등, 잘 작동, 수동 개입없이 서버를 백업을 받고, 필요한 경우 난 그냥 다시 만들 수있는 그 파티션에 큰 재앙의 작은 비 제로 %의 확률로 위험 .
TOOGAM

1
시스템을 쉽게 다시 설치할 수 있다면 난 그냥 ...
Sven

1
시간이 더 걸릴 것입니다. 옵션은 다음과 같습니다. A) 자동으로 수행 할 위험. B) 누군가에게 fsckpreen을 하라고 지시하면 모든 것이 잘 작동합니다. 그렇다면 약 2 분이 걸립니다. 이것이 일어날 때까지의 가동 중지 시간. C) 누군가 운영 체제를 다시 설치하도록하십시오. 30 분 이상 걸립니다. 옵션 C를 선택하고 있습니까? 아마도 우리가 가진 중요한 차이점은 fsck당신이 당신의 대답에서 인용 한 것보다 더 많은 시간을 일 했다는 것입니다. 나의 주요 요점은 시스템 디자인이 아니었다 (이 싼 시스템은 원격 콘솔을 사용하지 않는다). 그러나 " 절대로, 절대로 " 라고 말하는 것이 너무 정확하지
않다는 말이

동의하지 않기로 합의합시다.
Sven

0

우선, 최신 (저널 화 된) 파일 시스템을 사용하면 시스템 충돌로 인해 파일 시스템이 손상되지 않으며 부팅시 fsck가 필요하지 않습니다.

Ext3, Ext4, ZFS, btrfs, xfs 및 모든 최신 FS는 충돌 또는 시스템 재설정 후 100 % 일관성이 있습니다.

ext2 또는 vfat과 같은 저널링되지 않은 FS는 시스템 루트 파일 시스템에 큰 NOGO입니다.

부팅시 시스템에 fsck가 필요한 경우, 스스로에게 물어봐야합니다. 그 이유는 무엇입니까?

나중에 커널 로그를 조사하여 언제, 어떤 일이 발생했는지 확인해야합니다. 또한 오류가 시작된 이후로 로그에서 시간을 다시 찾아야합니다. smartctl로 디스크를 확인해야합니다. 기타 ... 저널링 된 fs에서 fsck가 필요한 경우 관리자 (dd와 같은 블록 수준 도구 사용) 또는 버그로 fs가 손상되지 않았다고 가정하면 하드웨어에 문제가있는 것이 확실합니다.

따라서 근본 원인을 조사하고 수정하지 않고 (고장난 하드웨어 / 펌웨어 / 소프트웨어 교체 / 업그레이드) fsck를 사용하여 문제를 "수정"하는 것은 바보입니다.

fsck를하고, 부팅을 완료하고, 행복하다는 것이 가장 순진한 말입니다. "나는 당신이 인용 한 것보다 더 많은 시간의 fsck 작업을 해왔다"는 말이 "fsck work"의 의미를 궁금하게 만듭니다. fsck가 프로세스에서 일부 파일과 데이터를 잃어 fs를 일관성있는 상태로 되돌릴 수 있습니다. 백업과 비교 했습니까? 많은 사람들이 알아 차리지 않고 파일을 잃어 버리거나 파일 데이터를 손상시킵니다 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.