有时,没有明显的原因,我的屏幕突然变“黑”,只显示一行文字:
/dev/sda1: clean 1068388/64102400 files, 29744985/256399616 blocks
就好像系统要重新启动一样。但此后什么也没有发生,我必须按下重置按钮。
这种情况已经发生过三次了。早上重新开始后一次,并且从未运行过任何大任务(只是打开浏览器 - 不可重现)。它从未在极端负载(训练神经网络)下发生过,所以我很确定这不是一个热问题,如这个帖子。
/var/log/kern.log
我在文件中发现以下可疑行
... [ 0.024000] tsc: Fast TSC calibration failed
...
... [ 0.796335] dpc 0000:00:01.1:pcie010: DPC error containment capabilities: Int Msg #0, RPExt+ PoisonedTLP+ SwTrigger+ RP PIO Log 6, DL_ActiveErr+
最后一行连续出现三次,但我不知道这意味着什么。
我在跑步:
- 操作系统:Ubuntu 18.04
- 内核:4.15.0-39-generic (x86_64)
- 桌面版:GNOME Shell 3.28.3
- 显示驱动程序:NVIDIA 396.45
- 编译器:Clang 3.3 + LLVM 3.3 + CUDA 9.2
- 文件系统:ext4
在一台相当新的台式机上,其规格如下:
- 处理器:AMD Ryzen Threadripper 1900X 8 核 @ 3.80GHz(16 核)
- 主板:华擎X399专业游戏
- 内存:64512MB
- 磁盘:1050GB Crucial_CT1050MX + 4001GB Elements SE 25FF
- 显卡:2x SLI NVIDIA GeForce GTX 1080 Ti 11264MB
造成这个问题的原因可能是什么?
智能控制
作为对评论的回应,输出来自
sudo smartctl --all /dev/sda
是
=== START OF INFORMATION SECTION ===
Device Model: Crucial_CT1050MX300SSD1
Serial Number: 173818DBA7DB
LU WWN Device Id: 5 00a075 118dba7db
Firmware Version: M0CR060
User C apacity: 1.050.214.588.416 bytes [1,05 TB]
Sector Size: 512 bytes logical/physical
Rotation Rate: Solid State Device
Form Factor: 2.5 inches
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: ACS-3 T13/2161-D revision 5
SATA Version is: SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Sat Nov 17 14:39:52 2018 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 2783) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 13) minutes.
Conveyance self-test routine
recommended polling time: ( 3) minutes.
SCT capabilities: (0x0035) SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 100 100 000 Pre-fail Always - 0
5 Reallocated_Sector_Ct 0x0032 100 100 010 Old_age Always - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 454
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 333
171 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 0
172 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 0
173 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 1
174 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 1
183 Runtime_Bad_Block 0x0032 100 100 000 Old_age Always - 0
184 End-to-End_Error 0x0032 100 100 000 Old_age Always - 0
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
194 Temperature_Celsius 0x0022 074 059 000 Old_age Always - 26 (Min/Max 16/41)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 100 100 000 Old_age Always - 0
202 Unknown_SSD_Attribute 0x0030 100 100 001 Old_age Offline - 0
206 Unknown_SSD_Attribute 0x000e 100 100 000 Old_age Always - 0
246 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 945594898
247 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 29549867
248 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 8744251
180 Unused_Rsvd_Blk_Cnt_Tot 0x0033 000 000 000 Pre-fail Always - 4424
210 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
更新(注销而不是黑屏)
刚才,我没有出现黑屏,而是无缘无故地退出了我的帐户。看来这些问题是相关的。在此事件发生期间,Vim 在 中突出显示了这些行kern.log
:
Nov 19 09:44:52 Gauss kernel: [ 0.793729] dpc 0000:00:01.1:pcie010: DPC error containment capabilities: Int Msg #0, RPExt+ PoisonedTLP+ SwTrigger+ RP PIO Log 6, DL_ActiveErr+
Nov 19 09:44:52 Gauss kernel: [ 0.793735] dpc 0000:00:03.1:pcie010: DPC error containment capabilities: Int Msg #0, RPExt+ PoisonedTLP+ SwTrigger+ RP PIO Log 6, DL_ActiveErr+
Nov 19 09:44:52 Gauss kernel: [ 0.793744] dpc 0000:40:03.1:pcie010: DPC error containment capabilities: Int Msg #0, RPExt+ PoisonedTLP+ SwTrigger+ RP PIO Log 6, DL_ActiveErr+
...
Nov 19 09:44:52 Gauss kernel: [ 0.890282] RAS: Correctable Errors collector initialized.
...
Nov 19 09:44:52 Gauss kernel: [ 1.026963] nvidia: module verification failed: signature and/or required key missing - tainting kernel
...
Nov 19 09:44:52 Gauss kernel: [ 2.927217] scsi 10:0:0:1: Failed to get diagnostic page 0x1
Nov 19 09:44:52 Gauss kernel: [ 2.927219] scsi 10:0:0:1: Failed to bind enclosure -19
...
Nov 19 09:44:52 Gauss kernel: [ 5.227132] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro
...
Nov 19 09:44:52 Gauss kernel: [ 5.602354] thermal thermal_zone0: failed to read out thermal zone (-61)
答案1
看起来您的 X11 或 Wayland GUI 服务器崩溃了,并让您返回到文本模式控制台。一行文本可能来自在切换到 GUI 模式之前启动系统时进行的文件系统检查。由于 Ubuntu 18.04 在第一个虚拟控制台上启动 GUI,因此如果 GUI 服务器崩溃且未重新启动,则该虚拟控制台将无响应。
(其他 Linux 发行版传统上使用第 7 个虚拟控制台作为 GUI,导致系统在 X11 服务器崩溃时自动恢复到默认的第一个虚拟控制台,并在其上显示功能登录提示。Ubuntu 显然将 GUI 服务器移至第一个虚拟控制台以在引导启动和 GUI 登录之间进行更无缝的过渡,但如果 GUI 服务器崩溃,您现在需要了解虚拟控制台才能访问文本模式登录提示。)
您中的行/var/log/kern.log
都是在 Linux 内核启动后的几秒钟内记录的(根据每行开头方括号中的启动后秒数值),因此它们可能不直接相关。
尝试按Control+Alt+F2.如果内核仍然存在,您现在应该在黑屏上看到文本模式登录提示。然后,您可以登录并尝试sudo systemctl restart gdm
重新启动 GUI,或以文本模式收集日志和其他故障排除信息。请注意,重新启动gdm
可能会自动返回到 GUI,但第二个虚拟控制台上的登录会话仍将保持登录状态:您可以使用Control-Alt-F1和在它们之间切换Control-Alt-F2。
由于内核日志没有显示任何内容,因此可能内核很好,只是桌面崩溃了。在这种情况下,其他日志文件可能会更有帮助:
/var/log/gdm.log
/var/log/Xorg.0.log
如果存在(嗯,Wayland 的等价物是什么?)
免责声明:我自己还没有尝试过 Ubuntu 18.04;这个答案只是基于我所读到的内容。
答案2
这可能有点遥远,但我今天在我的机器上遇到了您今天描述的完全相同的症状(崩溃,然后注销而不是黑屏)。
我也在 Ubuntu 18.04 上并使用 Nvidia GPU。
由于每个人都提到他们认为这可能是 Nvidida 驱动程序的问题,我决定尝试一下此线程中的答案,尽管它仅部分适用于我们的问题:
删除你的 nvidia 驱动程序
sudo apt-get purge nvidia*
重启
再次安装 Nvidida 驱动程序
到目前为止,我还没有遇到过黑屏或突然注销的情况
答案3
这里还有另一个解决方案。我已经遇到了同样的问题,但找不到任何对我的案例有用的建议解决方案。我使用VMware工作站并在Ubuntu启动时遇到同样的问题。就我而言,崩溃的主要原因不是显卡驱动程序或类似的原因。安装的 Ubuntu 中没有足够的可用空间。因此,我按照以下步骤来解决该问题。
1) 通过添加以下行来更改 .vmx 配置文件:
BIOS.bootDelay = "50000"
*这会导致更长的启动延迟,因此,您可以使用 Shift+Enter 进入 Grub 菜单。
*如果您在Windows中打开.vmx文件时遇到问题,请先将文件扩展名更改为.txt,然后添加上述行并保存文件,然后将扩展名更改回.vmx
2)运行VMware并运行Ubuntu
3) 点击屏幕后,按住Shift键,然后按Enter键进入grub菜单。
4) 选择 Ubuntu 的高级选项。
5)选择root,然后按Enter键。
6) 现在您拥有 root 访问权限,可以删除任意文件以释放 Ubuntu 中的可用空间。
请注意,一些用户建议使用 Alt+Shift+F2 或 F3 来访问终端。这对我不起作用,因为我没有 root 用户的密码。但是,使用以下步骤帮助我解决了该问题。
祝你好运,哈迈德
答案4
这是我在其他地方没有见过的另一个解决方案,我认为分享它会有所帮助。
我使用的是 Ubuntu 20.04 LTS,amd64 发行版,在显示“/dev/sda1: clean ...”错误后,我在启动时也遇到了同样的问题。就我而言,问题的次要原因是磁盘已满。
因此,如果您出现此症状,请快速df
查看df -h
分区上还剩多少空间。使用du
或du -h
命令,您可以查看包含大量数据的目录。解决方案就像删除不必要的文件一样简单。
然而,就我而言,事实证明 /var/log 目录大约有 100GB(?!),这是由系统中的某些问题引起的,导致不断写入 /var/log/syslog 文件并最终填满驱动器。所以,这是问题的主要原因。此时我不确定罪魁祸首是什么资源,但检查 /var/log/syslog 文件可能会为您的情况提供一些指示。如果您也是这种情况,我建议您研究如何正确删除 /var/log/syslog 文件,然后尝试解决问题的主要原因。
由于我的系统上没有任何重要的东西,因此我对保留日志文件不感兴趣,因此我安装了 logrotate 软件包并设置了每日轮换并配置系统以删除轮换文件。我还发现了一个很大的日志文件,因此我以 root 身份设置了一个 cronjob 来删除超过 1 天的日志文件。您可以以crontab -e
root 身份执行此操作,并将此行添加到文件末尾:
0 * * * * Journalctl --vacum-time=1d
我还做了一个很好的循环apt-get update
。apt-get upgrade
我建议进一步阅读:
https://ma.ttias.be/clear-systemd-journal/
https://github.com/andyholmes/gnome-shell-extension-gsconnect/issues/588 https://askubuntu.com/questions/515146/very-large-log-files-what-should-i-do https://kifarunix.com/how-to-configure-log-rotation-with-logrotate-on-ubuntu-18-04-lts/
祝调试愉快,祝你好运,
8bitrocks