내 우분투는 부팅 할 때마다 fsck를 실행합니다


19

부팅 할 때마다 동일합니다 :

/dev/sda1: clean, 908443/38690816 files, 44176803/154733312 blocks

파일 시스템 일관성을 유지하기 위해 Ubuntu가 사용하는 옵션입니까, 아니면 HDD에 문제가 있습니까? fsck부팅하는 동안 최대 30 초가 걸리며, 그렇지 않으면 약 3 배의 시간이 걸립니다.

전체 출력 (일부 독일어) :

Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... done.
fsck von util-linux 2.20.1
/dev/sda1: sauber, 908443/38690816 Dateien, 44176803/154733312 Blöcke
udevd[623]: unknown key 'SYSFS{idVendor}' in /lib/udev/rules.d/45-libticables.rules:6

udevd[623]: invalid rule '/lib/udev/rules.d/45-libticables.rules:6'

 * Starting mDNS/DNS-SD daemon                                                 [ OK ]
 * Starting Reload cups, upon starting avahi-daemon to make sure remote queues are populated                                                                   [ OK ]
 * Starting configure network device security                                  [ OK ]
 * Starting bluetooth daemon                                                   [ OK ]
 ####* Starting all other stuff

어떤 버전의 Ubuntu를 실행하고 있습니까? 시스템이 깨끗하게 종료됩니까?
ubfan1

x64 = 13.04 64 비트 내가 말할 수있는 한 셧다운은 깨끗하게 실행됩니다 (셧다운 로그 파일은 어디에 있습니까?)
s3lph

1
fsck는 실행 되지 않았으며 볼륨이 깨끗 하다고 말합니다 .
psusi

그러나 검사 구성 요소가 깨끗하다고 ​​말하기 위해 실행해야합니까?
s3lph

답변:


25

/ dev / sda1 : 정리, 908443/38690816 파일, 44176803/154733312 블록

해당 메시지를 생성하는 줄은 다음과 같습니다.

/* Print the summary message when we're skipping a full check */
log_out(ctx, _("%s: clean, %u/%u files, %llu/%llu blocks"),

"전체 검사"를 건너 뛰지 만 저널에 대한 일부 빠른 테스트가 깨끗하고 고아 inode가 없는지 확인했습니다.

cat /var/log/boot.log 
fsck from util-linux 2.20.1
fsck from util-linux 2.20.1
/dev/sda1: clean, 260598/771552 files, 1684682/3080192 blocks
/dev/sdb10: recovering journal
/dev/sdb10: Clearing orphaned inode 142568 (uid=1000, gid=1000, mode=0100664, size=32768)
/dev/sdb10: Clearing orphaned inode 138527 (uid=1000, gid=1000, mode=0100600, size=9580)
/dev/sdb10: clean, 54957/991232 files, 3498365/3958006 blocks

이것은 정상이며 예상됩니다. 실제 철저한 검사라면 시간이 좀 더 걸리지 만 보통 1 초 정도 걸립니다. 시스템 systemd-fsck(8)매뉴얼 페이지에는 전체 점검이 트리거되는 조건이 있습니다.

systemd-fsck-root.service는 루트 파일 시스템에서 파일 시스템 검사를 담당하지만 루트 파일 시스템이 initramfs에서 검사되지 않은 경우에만 해당됩니다. systemd-fsck @ .service는 다른 모든 파일 시스템 및 initramfs의 루트 파일 시스템에 사용됩니다.

파일 시스템에 대한 / etc / fstab의 passno가 0보다 큰 값으로 설정되어 있으면 부팅시 이러한 서비스가 시작됩니다. 루트에 대한 파일 시스템 검사는 다른 파일 시스템보다 먼저 수행됩니다. 다른 파일 시스템은 동일한 회전 디스크에있는 경우를 제외하고 병렬로 검사 할 수 있습니다.

systemd-fsck는 특정 파일 시스템에 대한 세부 정보를 알지 못하고 각 파일 시스템 유형 (/sbin/fsck.*)에 특정한 파일 시스템 검사기를 실행합니다. 이 도우미는 마지막 확인 이후의 시간, 마운트 수, 부정한 마운트 해제 등을 기반으로 파일 시스템을 실제로 검사해야하는지 여부를 결정합니다.

테스트를 수행하기 위해 아무것도 수행하지 않았는지 간단히 확인할 수 있습니다 (systemd를 사용하는 경우).

sudo systemd-analyze blame | grep fsck
          1.608s systemd-fsck@dev-disk-by\x2duuid-408535fe\x2d28e6\x2d4d82\x2dbb59\x2d9810ead089a3.service
            87ms systemd-fsck@dev-mapper-vlhome\x2dlvhome.service

링크의 q에 대한 답변은을 수정하여 동작을 제어 할 수 있다고 말합니다 /etc/fstab. 이 "빠른"테스트를 수행 할시기 만 설정 0하거나 1시스템에 알릴 수 있습니까?
s3lph

@the_Seppi 아니오, fstab에서 fsck를 비활성화 할 수는 없지만 순서는 이 다른 대답은 설명합니다. 끝 부분에 대해 읽으십시오.
Braiam

마지막 숫자를 0으로 변경하면 마운트시 fsck가 비활성화됩니다.
s3lph

그래 @the_Seppi, 당신 말이 맞아, 1그리고 2검사 할 순서를 결정하지만, 0또는 아무도 그것을 필요로하지 않는다는 것을 말한다. 그러나 나는 0에 두 값을 가지고 여전히 검사를받습니다.
Braiam

2
런치 패드에 버그가보고되었습니다 : upstart bug # 1504688 . 주석 # 17 에 가능한 해결책이 있습니다 .
azurkin

1

udevd와 관련된 다음 콘솔 메시지가 30 초가 걸리는 것이 아니라 30 초가 걸리는 것이 fsck입니까? 다시 말해, udevd가 콘솔 메시지를 표시하기 전에 libticables에 대한 작업을 시간 초과하는 데 30 초가 걸렸습니까?

제거 (또는 일시적으로 다른 곳으로 이동)

/lib/udev/rules.d/45-libticables.rules

도움이되는지 확인하십시오.


아니, 확실히 fsck입니다. 가 Running /scripts/init-bottom ...done약 3 초에 인쇄되면, fsck를 청소 약 30 초에서.
s3lph

어떤 유형의 파일 시스템을 사용하고 있습니까?
Joseph Santaniello


"fsck von ..."을 인쇄하기 전 또는 "/ dev / sda ..."전에 일시 정지입니까?
Joseph Santaniello

/ dev / sda1을 어디에 마운트합니까? noauto,x-systemd.automountfstab 옵션이 / home이거나 다른 경우 fstab 옵션에 추가를 시도 할 수 있습니다 . : 시스템이 장착 건너 뛸 수 있도록이를 따라 acessed 때까지 wiki.archlinux.org/index.php/Systemd#Automount
조셉 Santaniello

0

모든 부팅 에서이 fsck는 나쁜 시계로 인해 나에게 일어났습니다. systemd-fsck @는 systemd-timesyncd 이전에 실행되고 배터리 백업 RTC가 없으면 fsck가 실행될 때 시스템 시간이 잘못되었습니다.

나는 이것이 systemd-timesynd를 비활성화하고, clock을 journalctl에있는 사전 동기화 값으로 설정하고, fsck를 실행함으로써 (fsck가 빨리 종료되는 대신) 전체 검사를 트리거하는 것이 실제로임을 확인했습니다. 그런 다음 e2fsck는 마지막 수퍼 블록 쓰기 시간이 미래임을 감지하면 전체 검사를 진행합니다.

fsck from util-linux 2.29.2
e2fsck 1.43.4 (31-Jan-2017)
Superblock last write time (Mon Jun 19 00:48:11 2017,
    now = Tue Jan 31 20:09:28 2017) is in the future.
Fix<y>? yes
Pass 1: Checking inodes, blocks, and sizes
...

전체 검사를위한이 트리거 dumpe2fs -h는 다른 답변에서 언급 된 마지막 검사 이후 최대 마운트 횟수 및 시간 간격의 다른 트리거와 관련이 없습니다 .

시계를 설정하지 않고 (즉, 시간 동기화를 동기화하지 않으면) fsck는 전체 검사를 수행하지 않지만 'filesystem clean'메시지와 함께 빠르게 종료됩니다.

해결 방법으로 'pass'필드를 0으로 설정하여 / etc / fstab에서 fsck를 비활성화했습니다. 결국이 장치에 대해 배터리 지원 RTC를 구입합니다.


-1

검색 결과 우분투 기본 최대 마운트 수는 -1로 설정되었다는 결론을 얻었습니다. 이는 마운트 수에 관계없이 fsck가 부팅시 실행되지 않음을 의미합니다. 당신은 명령으로 당신을 확인할 수 있습니다-

sudo dumpe2fs -h /dev/sda8 | grep -i 'mount count'

을 사용하여 요구 사항에 따라 늘릴 수 있습니다 tune2fs. 일반적인 예는 다음과 같습니다.

sudo tune2fs -c 30 -i 1w /dev/sda8

당신의 협정에 따라 그것을 주문을 받아서 만드십시오.


1
아닙니다. 이는 커널과 e2fsck에 의해 값이 표시되지 않음을 의미합니다. linux.die.net/man/8/tune2fs "max-mount-counts가 0 또는 -1이면 파일 시스템이 마운트 된 횟수는 무시됩니다. e2fsck (8)와 커널에 의해 "
HappyCactus

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