Làm cách nào để tìm nhật ký khởi động trước đó sau khi Ubuntu 16.04+ khởi động lại?


20

Câu hỏi của tôi là, làm thế nào tôi có thể tìm thấy nhật ký khởi động từ lần thử khởi động hệ thống trước đó?

Hôm nay khi cấp nguồn cho PC của tôi, quá trình khởi động đã dừng trên logo Ubuntu, khi tôi nhấn Esctôi đã thấy một số dòng chứa một số lỗi kernel và yêu cầu khởi động lại ở phía dưới, vì vậy tôi nhấn Ctrl+ ALt+ Delvà lần khởi động tiếp theo vẫn ổn mà không gặp vấn đề gì.

Tôi gặp khó khăn khi tìm tin nhắn từ màn hình tôi đã thấy trong lần khởi động không thành công đầu tiên. Tôi có nên chụp ảnh vào điện thoại của tôi?

/var/log/bootỞ đó nhưng trống rỗng, tôi đã tìm kiếm kern.logsyslog cho các chuỗi tôi nhớ với ngày hôm nay như thế nào errornhưng không thấy gì quen thuộc với những gì tôi đã thấy trên màn hình khởi động trước đó.

$ journalctl -b -1 chỉ cung cấp cho tôi các tin nhắn kernel trong khi khởi động, tôi cũng có thể tìm thấy ở những nơi khác và chúng không phải là những gì xuất hiện trên màn hình trong khi khởi động, tạp chí là vô dụng đối với tôi, tôi đang tìm kiếm các tin nhắn xuất hiện trên màn hình trong thời gian khởi động.

Hiện tại, chỉ có tùy chọn là chụp ảnh viết tin nhắn trên giấy.

Câu trả lời:


17

Báo cáo là một lỗi đó là một tính năng không có giấy tờ

Có một báo cáo lỗi nộp về chủ đề này . Bởi vì rsyslogđã duy trì nhiều tạp chí khởi động trong /var/log/syslogsyslog.1, .2.gz, .3.gz... syslog.7.gzcác nhà phát triển cảm thấy giữ thêm journalctlcác bản ghi sẽ lãng phí không gian đĩa.

Báo cáo lỗi nêu vào ngày 3 tháng 1 năm 2018 rằng đối với các bản cài đặt mới rsyslogsẽ không còn là mặc định và journalctlsẽ giữ nhiều nhật ký dữ liệu khởi động.

Tạo nhiều nhật ký khởi động mà không cần cài đặt lại Ubuntu

Hầu hết chúng ta sẽ không cài đặt mới để kích hoạt nhiều journalctlnhật ký khởi động trong trường hợp chúng ta có thể sử dụng:

$ sudo mkdir -p /var/log/journal
$ sudo systemd-tmpfiles --create --prefix /var/log/journal
Cannot set file attribute for '/var/log/journal', value=0x00800000, mask=0x00800000: Operation not supported

Theo báo cáo github này, thông báo cảnh báo "Không thể đặt thuộc tính tệp" có thể bị bỏ qua.

Tùy chọn lưu trữ liên tục tùy chọn

Sau khi sử dụng ghi nhật ký khởi động trước đó trong nhiều tháng, tôi đã phát hiện ra một tùy chọn khác có thể được đặt trong /etc/systemd/journald.conf:

Từ trang người đàn ông journald.conf :

Lưu trữ =

Kiểm soát nơi lưu trữ dữ liệu tạp chí. Một trong những "dễ bay hơi", "dai dẳng", "tự động" và "không". Nếu "không ổn định", dữ liệu nhật ký nhật ký sẽ chỉ được lưu trữ trong bộ nhớ, tức là bên dưới hệ thống phân cấp / run / log / tạp chí (được tạo nếu cần). Nếu "liên tục", dữ liệu sẽ được lưu trữ tốt nhất trên đĩa, tức là bên dưới /var/log/journalhệ thống phân cấp (được tạo nếu cần), với dự phòng /run/log/journal(được tạo nếu cần), trong khi khởi động sớm và nếu đĩa không thể ghi được. "Tự động" tương tự như "liên tục" nhưng thư mục /var/log/journal không được tạo nếu cần, để sự tồn tại của nó kiểm soát nơi dữ liệu nhật ký đi. "không" tắt tất cả bộ nhớ, tất cả dữ liệu nhật ký nhận được sẽ bị loại bỏ. Chuyển tiếp đến các mục tiêu khác, chẳng hạn như bảng điều khiển, Tuy nhiên, bộ đệm nhật ký kernel hoặc ổ cắm syslog vẫn sẽ hoạt động. Mặc định là "tự động".

Tóm lại, xóa nhận xét và sửa lại dòng thành:

Storage=persistent

Hiển thị danh sách những đôi giày trước

$ journalctl --list-boots
-15 58a9e56135564cd8a52d547b19e76bf5 Fri 2018-02-02 18:34:35 MST—Fri 2018-02-02 23:07:14 M
-14 3514e056440341b1b6e5f03d109681bc Sat 2018-02-03 06:05:12 MST—Sat 2018-02-03 08:07:44 M
-13 0d1a32dc275348589f5ecdc72180c018 Sat 2018-02-03 08:08:05 MST—Sat 2018-02-03 08:08:34 M
-12 74159b593f3a401589ee6bd78e31684b Sat 2018-02-03 08:08:51 MST—Sun 2018-02-04 08:32:09 M
-11 4b394a9aad584ab2bfabe3b77eeed78f Sun 2018-02-04 08:32:26 MST—Mon 2018-02-05 16:54:02 M
-10 8e461ed2593c4fd896ca3b71eb3c0fba Mon 2018-02-05 16:54:34 MST—Tue 2018-02-06 03:54:30 M
 -9 ec7ba0e4dfe241c0b9c978d278fcca6d Tue 2018-02-06 03:54:47 MST—Tue 2018-02-06 16:25:02 M
 -8 b5c110267c214c38b63d0a367197d118 Tue 2018-02-06 16:25:19 MST—Thu 2018-02-08 16:49:03 M
 -7 75c3b117ac6a4de984dc3ced15edb7f8 Thu 2018-02-08 16:49:22 MST—Fri 2018-02-09 03:51:09 M
 -6 7338bd1007bc42dda5c8667eeefe1a59 Fri 2018-02-09 03:51:26 MST—Fri 2018-02-09 16:55:52 M
 -5 4b6cd0121327454ca3db035c7ed42df6 Fri 2018-02-09 16:56:09 MST—Sat 2018-02-10 07:55:14 M
 -4 0d56207f9ec0405ca3a3fd638334de2f Sat 2018-02-10 07:55:32 MST—Mon 2018-02-12 22:16:05 M
 -3 0f230cc546fd4aec8f5233e0074ab3e1 Tue 2018-02-13 03:57:20 MST—Wed 2018-02-14 22:58:56 M
 -2 c0d2c0141dd840cbab75d3c2254f8781 Wed 2018-02-14 22:59:13 MST—Sat 2018-02-17 22:46:14 M
 -1 aafb2573a6374e019a7165cb8eee74a0 Sun 2018-02-18 06:02:03 MST—Mon 2018-02-19 04:16:36 M
  0 8462f1969c6f4d61973e7e245014b846 Mon 2018-02-19 04:16:53 MST—Tue 2018-02-20 18:51:42 M

Hiển thị nhật ký khởi động lần cuối

$ journalctl -b-1
-- Logs begin at Fri 2018-02-02 18:34:35 MST, end at Thu 2018-03-01 16:43:25 MST. --
Feb 28 20:03:15 alien systemd-journald[290]: Runtime journal (/run/log/journal/) is 8.0M, 
Feb 28 20:03:15 alien kernel: Linux version 4.14.23-041423-generic (kernel@kathleen) (gcc 
Feb 28 20:03:15 alien kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-4.14.23-041423-generi
Feb 28 20:03:15 alien kernel: KERNEL supported cpus:
Feb 28 20:03:15 alien kernel:   Intel GenuineIntel
Feb 28 20:03:15 alien kernel:   AMD AuthenticAMD
Feb 28 20:03:15 alien kernel:   Centaur CentaurHauls
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x008: 'MPX bounds registe
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x010: 'MPX CSR'
Feb 28 20:03:15 alien kernel: x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
Feb 28 20:03:15 alien kernel: x86/fpu: xstate_offset[3]:  832, xstate_sizes[3]:   64
Feb 28 20:03:15 alien kernel: x86/fpu: xstate_offset[4]:  896, xstate_sizes[4]:   64
Feb 28 20:03:15 alien kernel: x86/fpu: Enabled xstate features 0x1f, context size is 960 b
Feb 28 20:03:15 alien kernel: e820: BIOS-provided physical RAM map:
Feb 28 20:03:15 alien kernel: BIOS-e820: [mem 0x0000000000000000-0x0000000000057fff] usabl
lines 1-19

Hãy chú ý đến tham số -b-1nó khác với các tham chiếu khác mà bạn có thể thấy. Từ trang nam :

-b [ID][±offset], --boot=[ID][±offset]

Hiển thị tin nhắn từ một khởi động cụ thể. Điều này sẽ thêm một trận đấu cho "_BOOT_ID =".

Đối số có thể trống, trong trường hợp đó nhật ký cho khởi động hiện tại sẽ được hiển thị.

Nếu ID khởi động bị bỏ qua, phần bù dương sẽ tra cứu đôi bốt bắt đầu từ đầu tạp chí và phần bù bằng hoặc ít hơn 0 sẽ tra cứu phần khởi động từ phần cuối của tạp chí. Do đó, 1 có nghĩa là lần khởi động đầu tiên được tìm thấy trong tạp chí theo thứ tự thời gian, 2 lần thứ hai và cứ thế; trong khi -0 là lần khởi động cuối cùng, -1 lần khởi động trước lần cuối, v.v. Một khoảng trống tương đương với việc chỉ định -0, ngoại trừ khi lần khởi động hiện tại không phải là lần khởi động cuối cùng (ví dụ: vì --directory đã được chỉ định để xem nhật ký từ một máy khác).

Sau đó, thỉnh thoảng , có cronhoặc hẹn giờ bạn có thể xóa các bản ghi cũ :

journalctl --vacuum-time=2d  # keep last two days or

journalctl --vacuum-size=300M  # keep last 300MB

Bạn sẽ phải systemctl restart systemd-journald hoặckillall -USR1 systemd-journald . Cũng không chú ý Storage=autotừ /etc/systemd/journald.conf.
Pablo Bianchi

@PabloBianchi Cảm ơn bạn đã bình luận. Vì tôi đã tạo nhật ký nhiều lần khởi động của mình và máy hút bụi để cắt giảm chúng từ 300MB + xuống <150MB được thiết lập như một croncông việc hàng tháng, tôi không muốn xóa mọi thứ và bắt đầu lại từ đầu để kiểm tra các đề xuất của bạn. Hy vọng rằng nó sẽ giúp những người khác tránh được các thông báo lỗi dường như không ảnh hưởng gì.
WinEunuuchs2Unix

1
@PabloBianchi "Storage = auto" là mặc định. Tôi đã sửa đổi câu trả lời của mình cho thấy "lưu trữ = liên tục" là đề xuất được trích dẫn từ các nguồn.
WinEunuuchs2Unix

9

Tôi đã có cùng một vấn đề, và dường như tìm thấy câu trả lời trên #ubuntukênh irc.

Vì lý do gì, tôi đã thiếu /var/log/journal nhóm thư mục có thể truy cập vào nhật ký hệ thống.

Sau khi thêm thư mục, tôi có thể thấy nhật ký của những lần khởi động trước thông qua $ journalctl -b1


Cảm ơn bạn, nhưng tôi đã quản lý để làm cho tạp chí hoạt động hoàn hảo trước đây, nhưng không có nhật ký khởi động ở đó, nó chỉ là thông điệp kernel từ thời gian khởi động, tôi cũng có thể tìm thấy nó ở nơi khác. Tôi đã không quản lý để tìm thấy một bản ghi chứa các thông báo xuất hiện trên màn hình trong khi khởi động.
Mike

10
Thực ra giải pháp thay thế được đưa ra trong wiki , cụ thể là thiết lập Storage=persistenttrong /etc/systemd/journald.confvà chạy systemctl restart systemd-journald.
dma_k

1
yup đã mising /var/log/journalquá! Đây là cài đặt mới, làm thế nào là một cái gì đó quan trọng như tạp chí bị thiếu !!!
bảnh bao

Trong trường hợp chỉnh sửa của tôi /etc/systemd/journald.conf đã tạo ra một thứ không tồn tại trước đó /var/log/journal/và chứa nó với một thư mục con chứa bootlog loooong (mất 1 phút để hoàn thành)
knb

@knb, fwiw, tôi khá chắc chắn systemctl restart systemd-journaldrằng đó thực sự là thứ đã tạo ra / var / log / tạp chí của bạn
Auspex

5

Các bước để thực hiện giải pháp từ câu trả lời hàng đầu ở đây, từ trang man cho systemd-journald:

mkdir -p /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal
systemctl restart systemd-journald

Tôi đã làm điều này như su


3

Câu trả lời có thể được tìm thấy trong man journald.conf, cụ thể là tùy chọn Storage=:

Kiểm soát nơi lưu trữ dữ liệu tạp chí. Một trong những "dễ bay hơi", "liên tục", "tự động" và "không". [...] "auto" tương tự như "dai dẳng" nhưng thư mục / var / log / tạp chí không được tạo nếu cần, để sự tồn tại của nó kiểm soát nơi dữ liệu nhật ký đi. [...] Mặc định là "tự động".

Xin lưu ý rằng không cần xoay vòng nhật ký hoặc các kỹ thuật tương tự phổ biến với trình nền syslog cũ. Theo mặc định, tệp nhật ký được định cấu hình để tăng lên một kích thước nhất định và các mục nhật ký cũ sẽ tự động bị xóa khi tệp nhật ký phát triển quá lớn.

Trên hệ thống của tôi, kích thước này hiện được định cấu hình là 120MB, bạn có thể điều chỉnh nó trong /etc/systemd/journald.confđơn vị systemd-journald.service.


3

Sử dụng journalctl -bXtrong đó x là khởi động mà bạn đề cập đến, -b0khởi động thực tế của bạn và -b-1khởi động trước đó (chỉ hoạt động nếu bạn có thư mục /var/log/journalthuộc nhóm 'systemd-tạp chí'). Không thể cho bạn biết chính xác bạn có thể đi bao xa nhưng hai người đó chắc chắn.

Liệt kê những đôi giày có sẵn với

journalctl --list-boots

2
-b0 đã hoạt động nhưng -b1 đã cho tôi Specifying boot ID has no effect, no persistent journal was found.Sau một vài lần tôi nghĩ rằng nó phải được kích hoạt để lưu trữ nhiều dữ liệu hơn.
Mike

thì tôi đoán là dữ liệu đã biến mất từ ​​lần khởi động thất bại đó. Có một cái nhìn ở đây tôi chỉ phát hiện ra bản thân mình là không thể mà không gặp nhiều rắc rối để kích hoạt lại đăng nhập cũ. Có khoảng 2 giờ vui chơi xung quanh trong hệ thống của tôi.
Videonauth

Bỏ phiếu, nhưng tôi hy vọng ai đó sẽ thêm một cách khác để làm điều này, thật xấu hổ nếu việc tìm kiếm nhật ký khởi động trước đó từ phiên trước đó là không thể với cấu hình mặc định, làm thế nào để gỡ lỗi các vấn đề khởi động?
Mike

1
Bài đăng ở đây hoạt động trong cấu hình mặc định trên Ubuntu Server 16.04LTS ( unix.stackexchange.com/a/345978/77095 ) journalctl -o short-precise -k -b -1hiển thị lần khởi động cuối cùng.
jtlindsey
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.