Ubuntu 16.04+가 다시 시작된 후 이전 부팅 로그를 찾는 방법은 무엇입니까?


20

내 질문은 이전 시스템 부팅 시도에서 부팅 로그를 어떻게 찾을 수 있습니까?

나는 누르면 오늘 처음으로 전력 공급이 내 PC에 부팅 프로세스는 우분투 로고를 중지했을 때 Esc나는 몇 가지 커널 오류를 포함하는 여러 줄을 볼 수 있고 하단에 필요한 재시작 내가 누를 수 있도록, Ctrl+ ALt+ Del와 다음 부팅 문제없이 확인을했다.

처음 부팅에 실패한 화면에서 메시지를 찾는 데 문제가 있습니다. 휴대폰으로 사진을 찍어야합니까?

/var/log/boot비어 있지만, 오늘 날짜로 기억했던 문자열에 대해 kern.logsyslog 를 검색 error했지만 이전 부팅 화면에서 본 것에 익숙하지 않은 것을 발견했습니다.

$ journalctl -b -1 부팅하는 동안 커널 메시지 만 표시하고 다른 곳에서도 찾을 수 있으며 부팅하는 동안 화면에 표시되지 않았으며 journalctl은 나에게 쓸모가 없습니다. 부팅시 화면에 나타나는 메시지를 찾고 있습니다.

현재로서는 옵션은 종이에 메시지를 쓰는 사진을 찍는 것입니다.

답변:


17

문서화되지 않은 기능인 버그로보고 됨

주제 에 관한 버그 보고서가 있습니다 . 때문에 rsyslog이미 여러 부팅 저널을 유지 /var/log/syslog하고 syslog.1, .2.gz, .3.gz... syslog.7.gz개발자는 별도의 유지 느꼈다 journalctl디스크 공간을 낭비 할 로그를.

버그 보고서는 2018 년 1 월 3 일 에 새로운 설치의 rsyslog경우 더 이상 기본값이 아니며 journalctl여러 부팅 데이터 로그를 유지 한다고 나타 냅니다.

우분투를 다시 설치하지 않고 여러 부팅 로그 만들기

우리 중 대부분은 새로운 설치를하지 않으므로 여러 journalctl부팅 로그 를 활성화 할 수 있습니다.

$ 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

github 보고서 에 따르면 "파일 속성을 설정할 수 없습니다" 라는 경고 메시지를 무시할 수 있습니다.

선택적 영구 저장소 설정

몇 달 동안 이전 부팅 로깅을 사용한 후 다음과 같이 설정할 수있는 다른 옵션발견 했습니다 /etc/systemd/journald.conf.

에서 journald.conf man 페이지 :

저장 =

저널 데이터를 저장할 위치를 제어합니다. "휘발성", "지속적", "자동"및 "없음"중 하나입니다. "휘발성"인 경우 저널 로그 데이터는 메모리에만 저장됩니다 (예 : / run / log / journal 계층 구조 (필요한 경우 작성 됨)). "지속적"인 경우 데이터는 디스크에, 바람직하게 /var/log/journal/run/log/journal초기 부팅 중에 디스크에 쓰기 가능하지 않은 경우 (필요한 경우 생성되는) 계층 구조 아래 (필요한 경우 생성됨)에 저장됩니다. "auto"는 "persistent"와 유사하지만 /var/log/journal 필요한 경우 디렉토리 가 작성되지 않으므로 로그 데이터의 위치를 ​​제어합니다. "없음"은 모든 스토리지를 끄고 수신 된 모든 로그 데이터가 삭제됩니다. 콘솔과 같은 다른 대상으로 전달 그러나 커널 로그 버퍼 또는 syslog 소켓은 여전히 ​​작동합니다. 기본값은 "auto"입니다.

간단히 말해서 주석을 제거하고 행을 다음과 같이 수정하십시오.

Storage=persistent

이전 부츠 목록 표시

$ 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

마지막 부팅 로그 표시

$ 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

-b-1다른 참조와 다른 매개 변수에주의를 기울이십시오 . 에서 man 페이지 :

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

특정 부팅 메시지를 표시합니다. "_BOOT_ID ="와 일치하는 항목이 추가됩니다.

인수가 비어있을 수 있으며,이 경우 현재 부팅에 대한 로그가 표시됩니다.

부팅 ID가 생략되면 양수 오프셋은 저널의 시작 부분에서 시작하는 부트를 찾고, 0보다 크거나 같지 않은 저널은 저널 끝에서 시작하는 부트를 찾습니다. 따라서 1은 저널에서 시간순으로 발견 된 첫 번째 부팅을 의미하고 2는 두 번째 등을 의미합니다. -0은 마지막 부팅이고 -1은 마지막 부팅 전 등입니다. 빈 오프셋은 현재 부팅이 마지막 부팅이 아닌 경우를 제외하고 -0을 지정하는 것과 같습니다 (예 : --directory가 다른 시스템의 로그를 보도록 지정 되었기 때문에).

그런 다음 가끔 cron또는 타이머 를 사용 하여 이전 로그를 정리할 수 있습니다 .

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

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

systemctl restart systemd-journald 또는 killall -USR1 systemd-journald해야합니다 . 또한의 주석 Storage=auto을 해제하십시오 /etc/systemd/journald.conf.
Pablo Bianchi

@PabloBianchi 의견을 보내 주셔서 감사합니다. 이미 다중 부팅 로그를 만들고 300MB에서 150MB 미만으로 잘라내는 진공 청소기가 매월 cron작업 으로 설정되어 있으므로 모든 것을 삭제하고 처음부터 다시 시작하여 권장 사항을 테스트하고 싶지 않습니다. 잘하면 그것은 다른 사람들이 어쨌든 아무런 영향을 미치지 않는 오류 메시지를 피하는 데 도움이 될 것입니다.
WinEunuuchs2Unix

1
@PabloBianchi "storage = auto"가 기본값입니다. "storage = persistent"가 소스에서 인용 된 권장 사항을 보여주는 답변을 수정했습니다.
WinEunuuchs2Unix

9

나는 똑같은 문제가 있었고 #ubuntuirc 채널 에서 답을 찾았습니다 .

어떤 이유로 든 /var/log/journal systemd-journal에 액세스 할 수 있는 폴더 그룹 이 누락되었습니다 .

폴더를 추가 한 후 다음을 통해 이전 부팅 로그를 볼 수있었습니다 $ journalctl -b1


고맙지 만, 나는 이미 한동안 완벽하게 작동하도록 journalctl을 만들었지 만 부트 로그가 없으며 부팅시 커널 메시지 일뿐입니다. 다른 곳에서도 찾을 수 있습니다. 부팅하는 동안 화면에 나타나는 메시지가 포함 된 로그를 찾지 못했습니다.
Mike

10
실제로 대체 솔루션이 주어진다 위키 즉 설정 Storage=persistent에서 /etc/systemd/journald.conf실행 systemctl restart systemd-journald.
dma_k 2016 년

1
p도 오해 /var/log/journal했다! 이것은 새로 설치이며 저널이 누락 된 것만 큼 중요한 것이 있습니다!
dashesy

필자의 경우 편집 /etc/systemd/journald.conf 은 이전에 존재하지 않는 /var/log/journal/을 작성하고 loooong
부트 로그

@knb, fwiw, systemctl restart systemd-journald실제로 / var / log / journal을 생성 한 것이 확실합니다
Auspex

5

systemd-journald의 맨 페이지에서 맨 위의 답변으로 솔루션을 수행하는 단계는 다음과 같습니다.

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

나는 이것을 su로했다.


3

대답은 man journald.conf특히 옵션 에서 찾을 수 있습니다 Storage=.

저널 데이터를 저장할 위치를 제어합니다. "휘발성", "지속적", "자동"및 "없음"중 하나입니다. [...] "auto"는 "persistent"와 유사하지만 필요한 경우 / var / log / journal 디렉토리가 작성되지 않으므로 로그 데이터의 위치를 ​​제어합니다. [...] 기본값은 "auto"입니다.

이전 syslog 데몬에서 일반적으로 사용 된 로그 교체 또는 유사한 기술이 필요하지 않습니다. 저널 파일은 기본적으로 특정 크기로 커지도록 구성되며 저널 파일이 너무 커지면 오래된 로그 항목이 자동으로 삭제됩니다.

내 시스템에서이 크기는 현재 120MB로 구성되어 /etc/systemd/journald.conf있으며 systemd-journald.service unit 에 맞게 조정할 수 있습니다 .


3

사용 journalctl -bX이 참조 부트는 X, 그래서 -b0실제 부팅입니다 -b-1(이 폴더가있는 경우에만 작동하기 전에 부팅 /var/log/journal그룹에 속하는 'systemd 저널'선물을). 캔 트는 당신이 얼마나 정확하게 갈 수 있는지 알려주지 만 그 둘은 확실합니다.

사용 가능한 부츠 목록

journalctl --list-boots

2
-b0은 작동했지만 -b1은 나에게 Specifying boot ID has no effect, no persistent journal was found.인터넷 검색 후 더 많은 데이터를 저장하기 위해 활성화해야한다고 생각합니다.
Mike

그런 다음 부팅이 실패한 데이터가 사라진 것 같습니다. 여기를 살펴보면 이전 로깅을 다시 활성화하는 데 많은 번거 로움없이 불가능하다는 것을 알았습니다. 내 시스템에서 약 2 시간 동안 재미를 느꼈습니다.
Videonauth

투표하십시오.하지만 누군가 다른 방법을 추가하기를 바랍니다. 기본 설정으로 이전 세션에서 이전 부팅 로그를 찾을 수 없다면 부끄러운 일입니다. 그런 다음 부팅 문제를 어떻게 해결할 수 있습니까?
Mike

1
이 게시물은 Ubuntu Server 16.04LTS의 기본 구성에서 작동합니다 ( unix.stackexchange.com/a/345978/77095 ) journalctl -o short-precise -k -b -1는 마지막 부팅을 보여줍니다.
jtlindsey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.