Ubuntu của tôi đang chạy fsck trên mỗi lần khởi động


19

Trên mỗi lần khởi động, nó giống nhau:

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

Đây có phải là một loại tùy chọn mà Ubuntu sử dụng để đảm bảo tính nhất quán của hệ thống tập tin hoặc có vấn đề gì với ổ cứng của tôi không? fsckmất tới 30 giây trong khi khởi động và cứ thế tăng gấp ba lần thời gian cần thiết.

Sản lượng đầy đủ (một phần bằng tiếng Đức):

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

Phiên bản Ubuntu nào bạn đang chạy? Hệ thống của bạn tắt máy sạch sẽ?
ubfan1

Tăng x64 = 13,04 64 bit. Tắt máy chạy sạch như tôi có thể nói (Logfile tắt máy ở đâu?)
s3lph

1
fsck nói nó không chạy, âm lượng đã sạch.
psusi

Nhưng thành phần kiểm tra phải chạy để nói nó sạch, phải không?
s3lph

Câu trả lời:


25

/ dev / sda1: sạch, 908443/38690816 Tệp, 44176804/154733312 Khối

Dòng sản nhắn đó là này :

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

Nó bỏ qua "kiểm tra đầy đủ" nhưng chỉ cần đảm bảo rằng một số bài kiểm tra nhanh cho tạp chí là sạch sẽ và không có inode mồ côi:

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

Điều này là bình thường và dự kiến. Nếu đó là một kiểm tra kỹ lưỡng thực sự thì sẽ mất nhiều thời gian hơn nhưng thường mất một giây hoặc ít hơn. systemd-fsck(8)Trang hướng dẫn Systemd có các điều kiện kích hoạt kiểm tra đầy đủ:

systemd-fsck-root.service chịu trách nhiệm kiểm tra hệ thống tệp trên hệ thống tệp gốc, nhưng chỉ khi hệ thống tệp gốc không được kiểm tra trong initramfs. systemd-fsck @ .service được sử dụng cho tất cả các hệ thống tệp khác và cho hệ thống tệp gốc trong initramfs.

Các dịch vụ này được khởi động khi khởi động nếu passno trong / etc / fstab cho hệ thống tệp được đặt thành giá trị lớn hơn 0. Kiểm tra hệ thống tập tin cho root được thực hiện trước các hệ thống tập tin khác. Các hệ thống tệp khác có thể được kiểm tra song song, ngoại trừ khi chúng nằm trên cùng một đĩa quay.

systemd-fsck không biết bất kỳ chi tiết nào về các hệ thống tệp cụ thể và chỉ thực hiện các trình kiểm tra hệ thống tệp cụ thể cho từng loại hệ thống tệp (/sbin/fsck.*). Người trợ giúp này sẽ quyết định xem hệ thống tập tin có thực sự được kiểm tra hay không dựa trên thời gian kể từ lần kiểm tra cuối cùng, số lần gắn kết, unmean unmount, v.v.

Bạn chỉ có thể kiểm tra xem các bài kiểm tra đã thực hiện bên cạnh không có gì để chạy (nếu bạn sử dụng 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

Một câu trả lời cho q tại liên kết của bạn nói rằng bạn có thể kiểm soát hành vi bằng cách sửa đổi /etc/fstab. Có phải chỉ có thể đặt 0hoặc 1tôi có thể cho hệ thống biết khi nào thực hiện kiểm tra "nhanh" này không?
s3lph

@the_Seppi không, bạn không thể hủy kích hoạt fsck trong fstab nhưng thứ tự, câu trả lời khác này của tôi giải thích nó, chỉ cần đọc về sự kết thúc của nó.
Braiam

Tôi đọc được rằng việc thay đổi chữ số cuối cùng thành 0 sẽ vô hiệu hóa fsck trên mount
s3lph

@the_Seppi yeah, bạn đã đúng 12xác định thứ tự cần kiểm tra nhưng 0không ai nói rằng nó không cần. Nhưng sau đó tôi có cả hai giá trị trong 0 và vẫn nhận được kiểm tra.
Braiam

2
Có một lỗi được báo cáo trên launchpad: lỗi khởi động # 1504688 . Nó chứa một giải pháp khả thi trong bình luận # 17 .
azurkin

1

Bạn có chắc chắn rằng fsck đang mất 30 giây và không chỉ là tin nhắn bảng điều khiển tiếp theo liên quan đến udevd mất 30 giây? Nói cách khác, có lẽ udevd đang mất 30 giây để hết thời gian làm việc với những thứ đáng ghét trước khi hiển thị thông báo trên bàn điều khiển?

Hãy thử loại bỏ (hoặc di chuyển nơi nào đó tạm thời)

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

và xem nếu điều đó giúp.


Không, đó chắc chắn là fsck. Các Running /scripts/init-bottom ...doneđược in vào khoảng 3s, fsck sạch vào khoảng độ tuổi 30.
s3lph

Bạn đang sử dụng loại hệ thống tập tin nào?
Joseph Santaniello

Tôi đang sử dụng EXT4
s3lph

Là tạm dừng trước khi nó in "fsck von ..." hoặc trước "/ dev / sda ..."?
Joseph Santaniello

Bạn đang gắn kết / dev / sda1 ở đâu? Bạn có thể thử thêm: noauto,x-systemd.automountvào các tùy chọn fstab nếu đó là / home hoặc thứ gì đó. Vì vậy, hệ thống sẽ bỏ qua việc gắn kết cho đến khi được xác nhận theo: wiki.archlinux.org/index.php/Systemd#Automount
Joseph Santaniello

0

Fsck này trên mỗi lần khởi động đã xảy ra với tôi do đồng hồ xấu. Dường như systemd-fsck @ chạy trước systemd-timesyncd và không có RTC hỗ trợ pin, thời gian hệ thống bị sai tại thời điểm fsck chạy.

Tôi đã xác nhận rằng đây thực sự là thứ kích hoạt kiểm tra đầy đủ (thay vì nhanh chóng thoát fsck), bằng cách vô hiệu hóa systemd-timesynd, đặt đồng hồ thành giá trị đồng bộ hóa được tìm thấy trong tạp chí và chạy fsck. Sau đó, e2fsck tiến hành kiểm tra toàn bộ, một khi nó phát hiện ra rằng thời gian ghi siêu khối cuối cùng là trong tương lai:

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
...

Lưu ý rằng, kích hoạt này cho kiểm tra đầy đủ không liên quan đến các kích hoạt khác về số lần gắn tối đa và khoảng thời gian kể từ lần kiểm tra cuối cùng, được thấy trong dumpe2fs -h, được đề cập trong các câu trả lời khác ở đây.

Lưu ý rằng, không cài đặt đồng hồ (nghĩa là để đồng bộ hóa timesyncd), fsck sẽ không thực hiện kiểm tra đầy đủ, nhưng sẽ thoát nhanh với thông báo 'hệ thống tập tin sạch'.

Như một giải pháp thay thế, tôi đã vô hiệu hóa fsck trong / etc / fstab bằng cách đặt trường 'pass' thành 0. Cuối cùng, tôi sẽ mua RTC hỗ trợ pin cho thiết bị này.


-1

Các tìm kiếm của tôi đưa ra kết luận rằng số lượng gắn kết tối đa mặc định của Ubuntu được đặt thành -1. Điều này có nghĩa là fsck sẽ không bao giờ chạy trên bất kỳ khởi động nào bất kể số lần gắn kết. Bạn có thể kiểm tra của bạn bằng lệnh -

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

Bạn có thể tăng nó theo yêu cầu của bạn bằng cách sử dụng tune2fs. Một ví dụ điển hình như sau -

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

Tùy chỉnh nó theo ý của bạn.


1
Không, điều đó có nghĩa là giá trị sẽ bị vô hiệu hóa bởi kernel và e2fsck: linux.die.net/man/8/tune2fs "Nếu max-mount- Counts là 0 hoặc -1, số lần hệ thống tập tin được gắn kết sẽ bị bỏ qua bởi e2fsck (8) và hạt nhân. "
HappyCactus

Xấu của tôi, sẽ thay đổi bài.
Vivek Ji
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.