This patch fixes problems with the re-assembly of the dmesg from the records stored in pstore. The current code simply ignores the last 6 characters of the file name to form a base record id, which then groups any pstore files with this base id into the reconstructed dmesg.txt. This approach fails when the following oops generated the following in pstore: -rw-------. 1 root root 1808 Oct 27 22:07 dmesg-efi-166692286101001 -rw-------. 1 root root 1341 Oct 27 22:07 dmesg-efi-166692286101002 -rw-------. 1 root root 1812 Oct 27 22:07 dmesg-efi-166692286102001 -rw-------. 1 root root 1820 Oct 27 22:07 dmesg-efi-166692286102002 -rw-------. 1 root root 1807 Oct 27 22:07 dmesg-efi-166692286103001 -rw-------. 1 root root 1791 Oct 27 22:07 dmesg-efi-166692286103002 -rw-------. 1 root root 1773 Oct 27 22:07 dmesg-efi-166692286104001 -rw-------. 1 root root 1801 Oct 27 22:07 dmesg-efi-166692286104002 -rw-------. 1 root root 1821 Oct 27 22:07 dmesg-efi-166692286105001 -rw-------. 1 root root 1809 Oct 27 22:07 dmesg-efi-166692286105002 -rw-------. 1 root root 1804 Oct 27 22:07 dmesg-efi-166692286106001 -rw-------. 1 root root 1817 Oct 27 22:07 dmesg-efi-166692286106002 -rw-------. 1 root root 1792 Oct 27 22:07 dmesg-efi-166692286107001 -rw-------. 1 root root 1810 Oct 27 22:07 dmesg-efi-166692286107002 -rw-------. 1 root root 1717 Oct 27 22:07 dmesg-efi-166692286108001 -rw-------. 1 root root 1808 Oct 27 22:07 dmesg-efi-166692286108002 -rw-------. 1 root root 1764 Oct 27 22:07 dmesg-efi-166692286109001 -rw-------. 1 root root 1765 Oct 27 22:07 dmesg-efi-166692286109002 -rw-------. 1 root root 1796 Oct 27 22:07 dmesg-efi-166692286110001 -rw-------. 1 root root 1816 Oct 27 22:07 dmesg-efi-166692286110002 -rw-------. 1 root root 1793 Oct 27 22:07 dmesg-efi-166692286111001 -rw-------. 1 root root 1751 Oct 27 22:07 dmesg-efi-166692286111002 -rw-------. 1 root root 1813 Oct 27 22:07 dmesg-efi-166692286112001 -rw-------. 1 root root 1786 Oct 27 22:07 dmesg-efi-166692286112002 -rw-------. 1 root root 1754 Oct 27 22:07 dmesg-efi-166692286113001 -rw-------. 1 root root 1752 Oct 27 22:07 dmesg-efi-166692286113002 -rw-------. 1 root root 1803 Oct 27 22:07 dmesg-efi-166692286114001 -rw-------. 1 root root 1759 Oct 27 22:07 dmesg-efi-166692286114002 -rw-------. 1 root root 1805 Oct 27 22:07 dmesg-efi-166692286115001 -rw-------. 1 root root 1787 Oct 27 22:07 dmesg-efi-166692286115002 -rw-------. 1 root root 1815 Oct 27 22:07 dmesg-efi-166692286116001 -rw-------. 1 root root 1771 Oct 27 22:07 dmesg-efi-166692286116002 -rw-------. 1 root root 1816 Oct 27 22:07 dmesg-efi-166692286117002 -rw-------. 1 root root 1388 Oct 27 22:07 dmesg-efi-166692286701003 -rw-------. 1 root root 1824 Oct 27 22:07 dmesg-efi-166692286702003 -rw-------. 1 root root 1795 Oct 27 22:07 dmesg-efi-166692286703003 -rw-------. 1 root root 1805 Oct 27 22:07 dmesg-efi-166692286704003 -rw-------. 1 root root 1813 Oct 27 22:07 dmesg-efi-166692286705003 -rw-------. 1 root root 1821 Oct 27 22:07 dmesg-efi-166692286706003 -rw-------. 1 root root 1814 Oct 27 22:07 dmesg-efi-166692286707003 -rw-------. 1 root root 1812 Oct 27 22:07 dmesg-efi-166692286708003 -rw-------. 1 root root 1769 Oct 27 22:07 dmesg-efi-166692286709003 -rw-------. 1 root root 1820 Oct 27 22:07 dmesg-efi-166692286710003 -rw-------. 1 root root 1755 Oct 27 22:07 dmesg-efi-166692286711003 -rw-------. 1 root root 1790 Oct 27 22:07 dmesg-efi-166692286712003 -rw-------. 1 root root 1756 Oct 27 22:07 dmesg-efi-166692286713003 -rw-------. 1 root root 1763 Oct 27 22:07 dmesg-efi-166692286714003 -rw-------. 1 root root 1791 Oct 27 22:07 dmesg-efi-166692286715003 -rw-------. 1 root root 1775 Oct 27 22:07 dmesg-efi-166692286716003 -rw-------. 1 root root 1820 Oct 27 22:07 dmesg-efi-166692286717003 The "reconstructed" dmesg.txt that resulted from the above contained the following (ignoring actual contents, just providing the Part info): Emergency#3 Part17 Emergency#3 Part16 Emergency#3 Part15 Emergency#3 Part14 Emergency#3 Part13 Emergency#3 Part12 Emergency#3 Part11 Emergency#3 Part10 Emergency#3 Part9 Emergency#3 Part8 Emergency#3 Part7 Emergency#3 Part6 Emergency#3 Part5 Emergency#3 Part4 Emergency#3 Part3 Emergency#3 Part2 Emergency#3 Part1 Panic#2 Part17 Panic#2 Part16 Oops#1 Part16 Panic#2 Part15 Oops#1 Part15 Panic#2 Part14 Oops#1 Part14 Panic#2 Part13 Oops#1 Part13 Panic#2 Part12 Oops#1 Part12 Panic#2 Part11 Oops#1 Part11 Panic#2 Part10 Oops#1 Part10 Panic#2 Part9 Oops#1 Part9 Panic#2 Part8 Oops#1 Part8 Panic#2 Part7 Oops#1 Part7 Panic#2 Part6 Oops#1 Part6 Panic#2 Part5 Oops#1 Part5 Panic#2 Part4 Oops#1 Part4 Panic#2 Part3 Oops#1 Part3 Panic#2 Part2 Oops#1 Part2 Panic#2 Part1 Oops#1 Part1 The above is a interleaved mess of three dmesg dumps. This patch fixes the above problems, and simplifies the dmesg reconstruction process. The code now distinguishes between records on EFI vs ERST, which have differently formatted record identifiers. Using knowledge of the format of the record ids allows vastly improved reconstruction process. With this change in place, the above pstore records now result in the following: # ls -alR /var/lib/systemd/pstore 1666922861: total 8 drwxr-xr-x. 4 root root 28 Nov 18 14:58 . drwxr-xr-x. 7 root root 144 Nov 18 14:58 .. drwxr-xr-x. 2 root root 4096 Nov 18 14:58 001 drwxr-xr-x. 2 root root 4096 Nov 18 14:58 002 1666922861/001: total 100 drwxr-xr-x. 2 root root 4096 Nov 18 14:58 . drwxr-xr-x. 4 root root 28 Nov 18 14:58 .. -rw-------. 1 root root 1808 Oct 27 22:07 dmesg-efi-166692286101001 -rw-------. 1 root root 1812 Oct 27 22:07 dmesg-efi-166692286102001 -rw-------. 1 root root 1807 Oct 27 22:07 dmesg-efi-166692286103001 -rw-------. 1 root root 1773 Oct 27 22:07 dmesg-efi-166692286104001 -rw-------. 1 root root 1821 Oct 27 22:07 dmesg-efi-166692286105001 -rw-------. 1 root root 1804 Oct 27 22:07 dmesg-efi-166692286106001 -rw-------. 1 root root 1792 Oct 27 22:07 dmesg-efi-166692286107001 -rw-------. 1 root root 1717 Oct 27 22:07 dmesg-efi-166692286108001 -rw-------. 1 root root 1764 Oct 27 22:07 dmesg-efi-166692286109001 -rw-------. 1 root root 1796 Oct 27 22:07 dmesg-efi-166692286110001 -rw-------. 1 root root 1793 Oct 27 22:07 dmesg-efi-166692286111001 -rw-------. 1 root root 1813 Oct 27 22:07 dmesg-efi-166692286112001 -rw-------. 1 root root 1754 Oct 27 22:07 dmesg-efi-166692286113001 -rw-------. 1 root root 1803 Oct 27 22:07 dmesg-efi-166692286114001 -rw-------. 1 root root 1805 Oct 27 22:07 dmesg-efi-166692286115001 -rw-------. 1 root root 1815 Oct 27 22:07 dmesg-efi-166692286116001 -rw-r-----. 1 root root 28677 Nov 18 14:58 dmesg.txt 1666922861/002: total 104 drwxr-xr-x. 2 root root 4096 Nov 18 14:58 . drwxr-xr-x. 4 root root 28 Nov 18 14:58 .. -rw-------. 1 root root 1341 Oct 27 22:07 dmesg-efi-166692286101002 -rw-------. 1 root root 1820 Oct 27 22:07 dmesg-efi-166692286102002 -rw-------. 1 root root 1791 Oct 27 22:07 dmesg-efi-166692286103002 -rw-------. 1 root root 1801 Oct 27 22:07 dmesg-efi-166692286104002 -rw-------. 1 root root 1809 Oct 27 22:07 dmesg-efi-166692286105002 -rw-------. 1 root root 1817 Oct 27 22:07 dmesg-efi-166692286106002 -rw-------. 1 root root 1810 Oct 27 22:07 dmesg-efi-166692286107002 -rw-------. 1 root root 1808 Oct 27 22:07 dmesg-efi-166692286108002 -rw-------. 1 root root 1765 Oct 27 22:07 dmesg-efi-166692286109002 -rw-------. 1 root root 1816 Oct 27 22:07 dmesg-efi-166692286110002 -rw-------. 1 root root 1751 Oct 27 22:07 dmesg-efi-166692286111002 -rw-------. 1 root root 1786 Oct 27 22:07 dmesg-efi-166692286112002 -rw-------. 1 root root 1752 Oct 27 22:07 dmesg-efi-166692286113002 -rw-------. 1 root root 1759 Oct 27 22:07 dmesg-efi-166692286114002 -rw-------. 1 root root 1787 Oct 27 22:07 dmesg-efi-166692286115002 -rw-------. 1 root root 1771 Oct 27 22:07 dmesg-efi-166692286116002 -rw-------. 1 root root 1816 Oct 27 22:07 dmesg-efi-166692286117002 -rw-r-----. 1 root root 30000 Nov 18 14:58 dmesg.txt 1666922867: total 4 drwxr-xr-x. 3 root root 17 Nov 18 14:58 . drwxr-xr-x. 7 root root 144 Nov 18 14:58 .. drwxr-xr-x. 2 root root 4096 Nov 18 14:58 003 1666922867/003: total 104 drwxr-xr-x. 2 root root 4096 Nov 18 14:58 . drwxr-xr-x. 3 root root 17 Nov 18 14:58 .. -rw-------. 1 root root 1388 Oct 27 22:07 dmesg-efi-166692286701003 -rw-------. 1 root root 1824 Oct 27 22:07 dmesg-efi-166692286702003 -rw-------. 1 root root 1795 Oct 27 22:07 dmesg-efi-166692286703003 -rw-------. 1 root root 1805 Oct 27 22:07 dmesg-efi-166692286704003 -rw-------. 1 root root 1813 Oct 27 22:07 dmesg-efi-166692286705003 -rw-------. 1 root root 1821 Oct 27 22:07 dmesg-efi-166692286706003 -rw-------. 1 root root 1814 Oct 27 22:07 dmesg-efi-166692286707003 -rw-------. 1 root root 1812 Oct 27 22:07 dmesg-efi-166692286708003 -rw-------. 1 root root 1769 Oct 27 22:07 dmesg-efi-166692286709003 -rw-------. 1 root root 1820 Oct 27 22:07 dmesg-efi-166692286710003 -rw-------. 1 root root 1755 Oct 27 22:07 dmesg-efi-166692286711003 -rw-------. 1 root root 1790 Oct 27 22:07 dmesg-efi-166692286712003 -rw-------. 1 root root 1756 Oct 27 22:07 dmesg-efi-166692286713003 -rw-------. 1 root root 1763 Oct 27 22:07 dmesg-efi-166692286714003 -rw-------. 1 root root 1791 Oct 27 22:07 dmesg-efi-166692286715003 -rw-------. 1 root root 1775 Oct 27 22:07 dmesg-efi-166692286716003 -rw-------. 1 root root 1820 Oct 27 22:07 dmesg-efi-166692286717003 -rw-r-----. 1 root root 30111 Nov 18 14:58 dmesg.txt Furthemore, pstore records on ERST are now able to accurately identify the change in timestamp sequence in order to start a new dmesg.txt, as needed.
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list or join our IRC channel.
Stable branches with backported patches are available in the stable repo.
