Đến cuối "trình tự khởi động" 1 , tôi thấy một loạt các thông báo chẩn đoán dài rất nhanh, ngay trước khi tôi thấy dấu nhắc đăng nhập 2 .
AFAICT, hầu hết, nếu không phải tất cả, các dòng tạo nên đầu ra có thời gian ngắn này bắt đầu bằng một trong các chuỗi được hiển thị bên dưới
[ OK ]
[FAILED]
... Trong đó OK
màu xanh lá cây và FAILED
màu đỏ 3 .
Những tin nhắn này quá nhanh để tôi đọc.
Câu hỏi của tôi là:
Có cách nào để làm cho những tin nhắn này dễ đọc hơn không?
Các giải pháp có thể xuất hiện trong tâm trí bao gồm (theo thứ tự ưu tiên):
- phát bóng (hoặc đơn giản là chuyển hướng) những thông điệp nguyên văn 4 đến một số tệp nhật ký liên tục;
- cho phép một cơ chế kiểu phân trang (
Press any key to continue...
); - chèn tạm dừng (có độ dài cấu hình) sau khi các tin nhắn đó được in;
- cho phép một số phím (hoặc tổ hợp phím) tạm dừng đầu ra ra màn hình 5 .
EDIT: dựa trên các ý kiến tôi đã nhận được cho đến nay, tôi phải kết luận rằng từ nguyên văn trong (1) ở trên là không được hiểu hoặc không được thực hiện nghiêm túc, mặc dù tôi đã nhấn mạnh nhiều nhất có thể. Tôi sẽ làm cho nó nhấp nháy nếu tôi có thể ...
EDIT2: gợi ý mà meuh đưa ra trong các bình luận có vẻ hứa hẹn với tôi, nhưng tôi chưa thể làm cho nó hoạt động được. Đây là những gì tôi đã làm:
Đầu tiên, tôi đã thêm vào như sau vào cuối /etc/rsyslog.conf
:
# Save boot messages also to boot.log
local7.* /var/log/boot.log
... và khởi động lại. Tôi thấy các thông báo chẩn đoán thông thường bay qua, nhưng không có /var/log/boot.log
tệp nào được tạo.
Sau đó, trong trường hợp (không thể thừa nhận) rằng /var/log/boot.log
phải tồn tại trước đó rsyslog
có thể ghi vào nó, tôi đã thực thi (với quyền root):
touch /var/log/boot.log
chgrp adm /var/log/boot.log
chmod 640 /var/log/boot.log
... Trong đó các lệnh chgrp
và chmod
được dự định để tạo quyền sở hữu và quyền /var/log/boot.log
khớp với các quyền của tất cả các tệp nhật ký khác bên dưới /var/log
. Sau đó, tôi khởi động lại, thấy các tin nhắn, vv Các tập tin /var/log/boot.log
vẫn trống sau khi khởi động lại này.
(Tôi đã cùng phi kết quả khi tôi thay đổi các điều khoản của /var/log/boot.log
để 666
.)
Tôi grep
đã xuất ra journalctl --boot
và các tệp bên dưới /var/log
cho bất cứ điều gì tôi có thể nghĩ về điều đó có thể chỉ ra điều gì đó không ổn với tôi rsyslog
, nhưng không tìm thấy gì. (Tôi hoàn toàn không quen thuộc rsyslog
, vì vậy tôi chắc chắn rằng tìm kiếm của tôi khá kém.)
Rõ ràng là những gì tôi đã làm cho đến nay là không đủ để cho phép ghi nhật ký mong muốn. Bây giờ tôi đang tìm kiếm bất cứ thứ gì tôi đang thiếu. Tôi đã không thể tìm thấy nhiều tài liệu có liên quan, mặc dù. Ví dụ, không phải rsyslog.conf(5)
cũng không rsyslogd(8)
muốn giải thích điều gì local7
( rsyslog.conf(5)
ít nhất là đủ duyên dáng để đề cập đến nó một lần, mà không cung cấp thêm thông tin nào).
EDIT3
Thông tin phân phối:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.3 (jessie)
Release: 8.3
Codename: jessie
$ uname -a
Linux myhost 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux
EDIT4
Thông tin bổ sung có khả năng liên quan:
$ cat /lib/systemd/system/rsyslog.service
[Unit]
Description=System Logging Service
Requires=syslog.socket
Documentation=man:rsyslogd(8)
Documentation=http://www.rsyslog.com/doc/
[Service]
Type=notify
ExecStart=/usr/sbin/rsyslogd -n
StandardOutput=null
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=syslog.service
$ cat /proc/$(pgrep rsyslogd)/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 128529 128529 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 128529 128529 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
$ sudo ls /proc/$(pgrep rsyslogd)/fd | wc -l
10
1 Tức là diễn ra khi tôi (khởi động lại) máy của mình.
2 FWIW, multi-user.target
là mặc định của tôi.
3 Văn bản còn lại toàn màu trắng trên nền đen. Điều này đúng với lời nhắc đăng nhập tiếp theo.
4 Tôi thấy hoàn toàn không thể chấp nhận bất kỳ giải pháp nào không cho phép tôi xem văn bản chính xác của những tin nhắn này khi chúng xuất hiện trong chuỗi khởi động. Vì, luôn luôn, tôi không quen thuộc với bất kỳ thông điệp chẩn đoán nào được đề cập đến, tôi không thể nhận ra tất cả các cách mà thông tin cơ bản được truyền tải bởi tin nhắn ban đầu có thể bị diễn giải, lan truyền trên nhiều tin nhắn khác , bị chìm trong các tin nhắn khác, v.v. (Chỉ bằng cách tìm kiếm trực tuyến từ ngữ chính xác của tin nhắn gốc, tôi mới có hy vọng tìm ra giải pháp cho vấn đề.) Mọi thứ tôi đã thử cho đến nay, bao gồm journalctl -b
và dmesg
đã thất bại trong việc đưa cho tôi các thông điệp ban đầu nguyên văn. Ví dụ, khi tôi chạy khởi động, tôi chỉ có thể thấy một màu đỏ FAILED
, nhưng journalctl --boot | grep FAILED | wc -l
trả về 0
và journalctl --boot | grep -i FAILED | wc -l
trả về 1086
. Đây không phải là những gì tôi đang tìm kiếm.
5 Trong hệ thống của tôi, tôi sẽ có ít hơn một giây để bấm phím hoặc tổ hợp phím đó và không có báo trước khi khoảng thời gian ngắn này bắt đầu. Trừ khi người ta có thể định cấu hình thời lượng của khoảng thời gian trong đó phải nhấn phím như vậy, bất kỳ giải pháp dựa trên phím bấm nào là không thực tế để trở thành bất kỳ thứ gì khác hơn là thao tác cuối cùng. Ngoài ra, FWIW, tôi đã thử nhấn phím hoặc phím khi tin nhắn nhấp nháy, nhưng không có sự khác biệt nào.Scroll
LockPause/
Break
/var/log/boot.log
systemd
và tôi sắp tham gia hàng ngũ của họ ... Tôi đã chỉnh sửa fn 4 của mình để đánh vần (thậm chí nhiều hơn) tại sao journalctl --boot | grep -i fail
, chẳng hạn, không phải là gì Tôi đang tìm.
journal
là sự hiện diện của [OK]
/ [FAILED]
. Các tin nhắn là giống hệt nhau. Cách đúng để chẩn đoán / khắc phục sự cố các đơn vị bị lỗi là thông qua systemctl
, chỉ để bạn biết. Tôi không biết liệu bạn có thể tạm dừng quá trình khởi động thông qua phím tắt không (họ nói CTRL + S / CTRL + Q sẽ hoạt động nhưng không, ít nhất là không phải trên i915 / KMS). Tuy nhiên, bạn có thể Vô hiệu hóa xóa tin nhắn khởi động và cuộn qua các tin nhắn đó trên TTY1 bằng Shift + PGUp / Xuống.
journalctl -b
(với quyền root) cung cấp cho bạn chính xác điều đó, tức là xem văn bản chính xác của những tin nhắn này khi chúng xuất hiện trong chuỗi khởi động ?