내 우분투는 부팅 할 때마다 fsck를 실행합니다 done. fsck von util-linux 2.20.1 /dev/sda1:

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

/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



답변

/ 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


답변

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

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

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

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


답변

모든 부팅 에서이 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로 설정되었다는 결론을 얻었습니다. 이는 마운트 수에 관계없이 fsck가 부팅시 실행되지 않음을 의미합니다. 당신은 명령으로 당신을 확인할 수 있습니다-

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

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

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

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


답변