재부팅시 fsck.ext4를 강제 실행하지만 실제로는 "강제"


21

우분투 10.04 서버 중 하나에서 문제가 발생했습니다. 실행 fsck.ext4 -n /dev/sda5하면 사용 가능한 inode 수, 사용 가능한 블록 수 등에 오류가 있음을 알려줍니다.

나는 시도했다 :

touch /forcefsck

또한 시도 :

shutdown -rF now

여전히 재부팅 후에도 오류가 표시됩니다.

또한 방금 eeePC 넷 북인 Ubuntu 10.10을 확인했는데 같은 문제가 있습니다!

재부팅 할 때 "/"파일 시스템의 "강제" "강제" "강력하게 내 파일 시스템 수정"fsck를 어떻게 강제 실행할 수 있습니까?

설명 :fsck.ext4 -n 마운트 된 파일 시스템이므로 오류가 있는지 확인하기 위해 실행 합니다. 이것은 나에게 말한다. 부팅 과정에서 30 번 마운트 할 때마다 자동 fsck 가 루트 파일 시스템의 오류를 정확하게 처리한다고 생각했습니다 . 그러나 내 경우에는 그렇게하지 않습니다. LiveCD로 재부팅하고 오류를 수정 한 다음 다시 재부팅 할 수 있지만 라이브 서버의 경우 다운 타임이 심각합니다. 재부팅, 자동 fsck, 계속 부팅은 라이브 서버에서 훨씬 더 지속 가능하며 올바른 동작이어야한다고 생각합니다.

추가 정보 : 출력은 다음과 같습니다. autofsck가 고칠 것 같지 않습니까?

root@server:~# fsck.ext4 -n /dev/sda5
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda5 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda5 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (1849368, counted=1948909).
Fix? no

Free inodes count wrong (545504, counted=552134).
Fix? no


/dev/sda5: ********** WARNING: Filesystem still has errors **********

/dev/sda5: 116752/662256 files (0.2% non-contiguous), 795324/2644692 blocks

사용중인 Ubuntu 서버 버전은 무엇입니까?
crncosta

10.04. 질문을 편집하겠습니다.
UrkoM

실제로 그렇게 할 수 있다고 생각하지 않습니다. 실제로 수동으로 확인하는 것이 좋습니다.
RolandiXor

1
죄송하지만 더 많은 정보가 필요합니다. 마운트 된 파일 시스템에서 fsck를 수행하고 있습니까? LiveCD로 부팅하고 다시 / dev / sda5를 마운트 해제 한 상태로 다시 확인할 수 있습니까?
crncosta

파일 시스템이 아니라 하드 드라이브가 손상되었을 수 있습니까? 어떤 경우에는 ext4가 오류를 수정하지 않고 불량 섹터가 몇 개있을뿐일 것으로 예상됩니다.
Stefano Palazzo

답변:


10

e2fsck 매뉴얼 페이지에서 :

"일반적으로 마운트 된 파일 시스템에서 e2fsck를 실행하는 것은 안전하지 않습니다. 유일한 예외는 -n 옵션이 지정되고 -c, -l 또는 -L 옵션이 지정되지 않은 경우입니다. 그러나 안전하더라도 파일 시스템이 마운트 된 경우 e2fsck로 인쇄 된 결과가 유효하지 않습니다 .e2fsck가 마운트 된 파일 시스템을 검사해야하는지 묻는 경우 유일한 대답은``아니요 ''입니다. 다른 방법으로도이 질문에 대답하는 것을 고려해야합니다. "

따라서 -n 옵션을 사용해도 fsck로 마운트 된 FS를 검사하면 결과가 전혀 유효하지 않을 수 있습니다. 마운트 된 파일 시스템을 확인하지 마십시오. Live-CD / Live-USB를 사용하십시오.

마운트 된 파일 시스템을 확인하지 않으면 왜 touch /forcefsck마운트를 해제하고 고칠 수 있는지 사용해야하는 이유를 이해하지 못합니다 . 그러나 이런 경우에 문제를 해결 한 후에도 FS에 여전히 오류가 있으면 다음을 사용하는 것이 좋습니다.

e2fsck -cy /dev/sda5

이렇게하면 불량 블록이라는 하드 드라이브 관련 문제가 해결됩니다 (시간이 오래 걸림).

마운트 된 파일 시스템을 확인하려면 진행 방법을 모르겠지만 다른 질문을 만들어야한다고 생각합니다.


파일 시스템이 마운트되었습니다. 물론 마운트를 해제 할 때 fsck를 수행해야합니다. 그러나 마운트하지 않고 fsck -n을 실행하여 변경하지 않고 확인하면 오류가 있음을 알려줍니다. 그리고 재부팅시 fsck가 수정해서는 안됩니까 ???
UrkoM

방금 첫 문장에서 말한 것을 보았습니다. 왜 fsck -n이 마운트 된 파일 시스템에서 유효하지 않습니까? 마운트 된 파일 시스템에 안정적인 방식으로 오류가 있는지 어떻게 확인할 수 있습니까?
UrkoM

"일반적으로 마운트 된 파일 시스템에서 e2fsck를 실행하는 것은 안전하지 않습니다. -n 옵션을 지정하고 -c, -l 또는 -L 옵션을 사용하는 경우는 예외입니다."라는 e2fsck 매뉴얼 페이지를 확인할 수 있습니다. 그러나 파일 시스템이 마운트되어 있으면 e2fsck에 의해 인쇄 된 결과가 유효하지 않습니다 .e2fsck가 마운트 된 파일 시스템을 검사해야하는지 묻는 경우 유일한 대답은 ''입니다. 실제로 무엇을하고 있는지 아는 전문가 만이 다른 방법으로이 질문에 대답해야합니다. "
Nyamiou The Galeanthrope

마운트 된 파일 시스템을 확인하는 방법을 모른다면 다른 질문을 만들어야 할 수도 있습니다.
Nyamiou The Galeanthrope

마지막 두 개의 주석을 답변에 추가 할 수 있습니까? 그럼 받아들이겠습니다. 나는 그것을 모른다. 그래서 그 이유는 ... fsck -n이 저널을 처리하지 않기 때문에 파일 시스템 상태가 최신 변경 사항을 보지 않고 일관성이 없기 때문이라고 생각합니다.
UrkoM

24

나는 이것이 정말로 오래된 스레드라는 것을 알고 있지만 최근 에이 문제를 해결해야했기 때문에 부팅 중에 (12.04의 경우) fsck에서 발견 된 문제를 OS가 강제로 수정하는 방법을 게시하고 싶었습니다.

명령을 실행해야합니다 sudo touch /forcefsck. 다음 부팅시 fsck를 수행하게됩니다. /var/log/boot.log에서 fsck의 결과를 볼 수 있습니다.

그러나 fsck가 찾은 내용을 수정한다고 보장하지는 않습니다. 이렇게하려면 / etc / default / rcS 파일을 편집해야합니다. 해당 파일 끝에 줄이 있습니다.

FSCKFIX=no

다음과 같이 변경해야합니다.

FSCKFIX=yes

이는 fsck를 -y 옵션과 함께 실행하는 것과 동일한 효과를 가지며, 이로 인해 가능한 모든 수정 사항을 강제로 구현하고 사용자 상호 작용을 요구하지 않습니다.

이를 통해 OP가 요청한 것처럼 fsck를 라이브 디스크에서 부팅 할 필요없이 실행할 수 있으며, 특히 원격 시스템에있는 경우 항상 가능하지는 않습니다.


1
sudo touch /forcefscksudo shutdown -r명령 과 함께 Ubuntu EC2 인스턴스에서이 항목을 편집 하면 파일 시스템 문제와 로그인시 확인 경고가 성공적으로 해결되었습니다. 쉽고 무중단-건배.
c.gutierrez

서버 결함에 대해 동일한 질문이 있었고이 답변은 Ubuntu 14.04 시스템에서 저에게도 도움이되었습니다. 그냥하고 sudo touch /forcefsck다시 부팅하지 않았습니다. 편집 rcS이 필요했습니다.
Teemu Leisti

12
sudo touch /forcefsck
sudo reboot

/ forcefcsk를 터치하면 오타가 있습니다. "c"와 "s"가 서로 바뀝니다. fsck는 FileSystemChecK의 줄임말입니다.


루트 파일 시스템이 수정 해야하는 오류로 인해 읽기 전용으로 마운트되어 있기 때문에 이것은 작동하지 않습니다 fsck! 닭고기와 계란 문제는 liveCD를 통해 해결하거나 드라이브를 다른 컴퓨터로 가져 와서 만 해결할 수 있습니다.
HDave

3

파티션이 사용 중이므로 fsck를 강제로 켜거나 복구 할 수 없습니다. 다른 파티션 또는 라이브 CD에서 검사를 실행하십시오.


2
매우 사실이지만 부팅시 자동 fsck는 파티션을 사용하기 전에 발생해야합니다. 정확하게 "/"의 오류를 수정할 수 있습니다. 그렇지 않으면 요점이 뭐야?
UrkoM

3
수표는 사용하기 전에 발생한다고 믿지만 권고 검사에 가깝습니다. 오류 수정 방법을 결정하는 것은 사용자의 책임입니다. / etc / fstab을 보면 쉽게 확인할 수 있습니다. "/"는 다른 파티션과 다른 검사를받습니다.
charlie-tca

루트가 피봇되기 전에 발생합니까? 즉. 초기 램 디스크.
mckenzm

1

다음과 같은 방법으로 수정을 자동으로 수행 할 수 있습니다.

Tune2fs -c 5 -i 10 / dev / sda1

-c실행하기 전에 마운트의 최대 수입니다 fsck-i실행하기 전에 일의 최대 수입니다 fsck.

이 경우, 5 번의 마운트 또는 10 일마다 (둘 중 빠른 날짜마다) 수행됩니다.

Linux SuSE 13.2와 Linux Mint 18.0이있는 두 대의 컴퓨터가 있으며 두 컴퓨터 모두 완벽하게 작동합니다.


다음과 같이 자동 양식의 양식 및 설명은 다음과 같습니다. Tune2fs -c 5 -i 10 / dev / sda1 여기서, -c는 fsck를 실행하기 전의 최대 마운트 수입니다. 여기서 : -i는 fsck를 실행하기 전의 최대 일 수입니다. 이 경우, 5 번의 마운트 또는 10 일마다 (둘 중 빠른 날짜마다) 수행됩니다. Linux SuSE 13.2와 Linux MInt 18.0을 사용하는 두 대의 컴퓨터가 있으며 모두 완벽하게 작동합니다.
hk3jld

다음과 같이 자동 양식의 양식 및 설명은 다음과 같습니다. Tune2fs -c 5 -i 10 / dev / sda1 여기서, -c는 fsck를 실행하기 전의 최대 마운트 수입니다. 여기서 : -i는 fsck를 실행하기 전의 최대 일 수입니다. 이 경우, 5 번의 마운트 또는 10 일마다 (둘 중 빠른 날짜마다) 수행됩니다. Linux SuSE 13.2와 Linux MInt 18.0을 사용하는 두 대의 컴퓨터가 있으며 모두 완벽하게 작동합니다. 괜찮 나는 영어를 모르지만 나는 훈련을 희망하는 번역기를 사용
hk3jld가

1
우분투에서도 작동합니까?
George Udosen

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