操作系统是 Debian 10。
Smartctl 报告硬盘驱动器上的坏块。
Rsync 一直定期对备份驱动器进行备份。
dmesg 没有报告任何错误。
这是否意味着备份驱动器上的数据完好无损?
dmesg 会一直报告读取错误吗?
最近在 GitHub 页面上针对以隐私为重点的 VirtualBox 包装器 HiddenVM 打开了一个问题。揭幕战发布了他声称的表明本地缓存中的文件被发送到外部 IP 的内容:
当我使用 dmesg 时,我看到它在后台做了什么。我从众多信息中挑选了两条:
audit: type=1400 audit(1651914430.711:1128): apparmor="DENIED" operation="open" profile="torbrowser_firefox" name="/home/amnesia/.cache/thumbnails/large/3678dc849747c84908498dd948db8f71.png" pid=10995 comm="pool-firefox" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000 Dropped outbound packet: IN= OUT=wlan0 SRC=i removed the adress DST=i removed the adress LEN=48 TC=0 HOPLIMIT=255 FLOWLBL=762031 PROTO=ICMPv6 TYPE=133 CODE=0 UID=0 GID=0
所以看起来它把文件从我的缓存发送到了某个地址。就像为什么应该更改设置的脚本会打开缓存文件并将它们发送到某个地方?
开场白并没有确切说明他们使用了哪些命令,也没有提供任何进一步的细节。
这两条消息是否表明文件正在从本地计算机发送到外部 IP?
在正常使用过程中,我的 Ubuntu 笔记本电脑会间歇性地遇到一些 I/O 错误,然后/
以只读方式重新挂载(是的,我检查了 SMART 日志,没有任何显示;我也更换了驱动器,没有运气)。问题是我永远无法读取底层的原始错误(如果报告了任何错误),因为到那时文件系统已以只读方式重新安装,因此错误不会在任何地方记录到磁盘,并且如果我运行dmesg
循环缓冲区已完全其他进程抱怨只读文件系统的垃圾邮件,这就是所有可见的。
重申一下,我无法查看,/var/log
因为那时文件系统已被安装为只读,因此rsyslog
根本无法记录任何错误。
我启动新工具的能力也有限,因为此时磁盘子系统会报告一般 I/O 错误。只有缓存常驻的东西是可运行的。
我唯一能想到的就是变成/var/log
内存中的 tmpfs 并重新启动rsyslog
,等待错误发生,希望我能在/var/log
. 甚至可能在循环中运行一些标准工具,如cat
, grep
,less
等,这样在磁盘子系统出现故障后它们肯定会可用。
有没有更简单的选择?
[Sun Mar 1 07:51:40 2020] MTRR default type: uncachable
[Sun Mar 1 07:51:40 2020] MTRR fixed ranges enabled:
[Sun Mar 1 07:51:40 2020] MTRR variable ranges enabled:
[Sun Mar 1 07:51:40 2020] pmd_set_huge: Cannot satisfy [mem 0xf8000000-0xf8200000] with a huge-page mapping due to MTRR override.
几天前我重新启动服务器后,刚刚注意到这些消息。
可能相关:
enable_mtrr_cleanup
在内核参数中找到,我引用:
The kernel tries to adjust MTRR layout from continuous to discrete, to make X server driver able to add WB entry later. This parameter enables that.
我不明白上面的意思,但我觉得我应该提到硬件:
这是戴尔的旧款 PowerEdge T20,配备 CPU(和 iGPU)英特尔至强 E3-1225 v3 3.2GHz、8MB 缓存、4C/4T、英特尔方舟的完整规格+ 它在 UDIMM 中有 32 GB 的 DDR3。
我设法在MTRR(内存类型范围寄存器)上找到的所有内容都在 Wikipedia 上,遗憾的是我对此也不太了解。或多或少外行的任何提示?我什至应该关心dmesg
我的 Debian 10 上的那个消息吗?
与上面的服务器相反,这里有相关部分提到硬件上的 MTRR,这是我的新笔记本电脑,也来自戴尔,Inspiron 15,SO-DIMM 中的 32 GB DDR4:
[Sat Mar 7 10:00:42 2020] MTRR default type: write-back
[Sat Mar 7 10:00:42 2020] MTRR fixed ranges enabled:
[Sat Mar 7 10:00:42 2020] MTRR variable ranges enabled:
我看不出有什么区别,也许在实际应用程序中没有……也许有。
我可以在我的dmesg
协议中看到这 4 条 VALIDATE 行:
$ \dmesg | grep VALIDATE
[ 0.176538] *** VALIDATE proc ***
[ 0.176572] *** VALIDATE cgroup1 ***
[ 0.176574] *** VALIDATE cgroup2 ***
[ 0.374729] *** VALIDATE hugetlbfs ***
谁能告诉我它们的本质是什么?它是无害的吗?它可能是某种警告吗?
我的内核是版本:5.3.0-24-generic
运行dmesg -T
检查便携式磁盘和结果
[Fri Aug 30 21:31:24 2019] usb 2-1: New USB device found, idVendor=1058, idProduct=07a8, bcdDevice=10.42
[Fri Aug 30 21:31:24 2019] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[Fri Aug 30 21:31:24 2019] usb 2-1: Product: My Passport 07A8
[Fri Aug 30 21:31:24 2019] usb 2-1: Manufacturer: Western Digital
[Fri Aug 30 21:31:24 2019] usb 2-1: SerialNumber: 57584E314535335953313736
[Fri Aug 30 21:31:24 2019] usb-storage 2-1:1.0: USB Mass Storage device detected
[Fri Aug 30 21:31:24 2019] scsi host1: usb-storage 2-1:1.0
[Fri Aug 30 21:31:25 2019] scsi 1:0:0:0: Direct-Access WD My Passport 07A8 1042 PQ: 0 ANSI: 6
[Fri Aug 30 21:31:25 2019] scsi 1:0:0:1: Enclosure WD SES Device 1042 PQ: 0 ANSI: 6
[Fri Aug 30 21:31:29 2019] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[Fri Aug 30 21:31:29 2019] sd 1:0:0:0: Attached scsi generic sg1 type 0
[Fri Aug 30 21:31:29 2019] ses 1:0:0:1: Attached Enclosure device
[Fri Aug 30 21:31:29 2019] ses 1:0:0:1: Attached scsi generic sg2 type 13
[Fri Aug 30 21:31:29 2019] sd 1:0:0:0: [sdb] Spinning up disk...
[Fri Aug 30 21:31:30 2019] .
[Fri Aug 30 21:31:35 2019] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[Fri Aug 30 21:31:35 2019] ses 1:0:0:1: Failed to get diagnostic page 0x1
[Fri Aug 30 21:31:35 2019] ses 1:0:0:1: Failed to bind enclosure -19
[Fri Aug 30 21:31:35 2019] usb 2-3: device not accepting address 31, error -62
[Fri Aug 30 21:31:36 2019] .
[Fri Aug 30 21:31:40 2019] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[Fri Aug 30 21:31:40 2019] ready
[Fri Aug 30 21:31:46 2019] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[Fri Aug 30 21:31:46 2019] usb 2-3: device not accepting address 32, error -62
[Fri Aug 30 21:31:46 2019] usb usb2-port3: attempt power cycle
[Fri Aug 30 21:31:52 2019] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[Fri Aug 30 21:31:58 2019] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[Fri Aug 30 21:31:58 2019] usb 2-3: device not accepting address 33, error -62
[Fri Aug 30 21:32:03 2019] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[Fri Aug 30 21:32:09 2019] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[Fri Aug 30 21:32:09 2019] usb 2-3: device not accepting address 34, error -62
[Fri Aug 30 21:32:09 2019] usb usb2-port3: unable to enumerate USB device
[Fri Aug 30 21:34:40 2019] sd 1:0:0:0: timing out command, waited 180s
[Fri Aug 30 21:37:40 2019] sd 1:0:0:0: timing out command, waited 180s
是否损坏?可能或不修复它?
运行lsblk
或fdisk -l
时不显示。
我正在学习linux内核调试,dmesg是输出内核调试日志的工具:
...
[ 2.988000] Trace:
[ 2.988000] [<ffffffff80942810>] __warn+0x160/0x190
[ 2.988000] [<ffffffff8111ae9c>] dwc3_probe+0xc1c/0x1e60
[ 2.988000] [<ffffffff8111ae9c>] dwc3_probe+0xc1c/0x1e60
[ 2.988000] [<ffffffff80fe4434>] platform_drv_probe+0x34/0x90
...
__warn
是核函数,但它的含义是0x160/0x190
什么?我的手机一直在重启。我想知道 dmesg 在它重新启动的那一刻说了什么,所以我可以诊断。
不幸的是,重启不会发生,而且只有在我使用它时才会发生。我连续几天无法将手机连接到笔记本电脑。我现在通过 adb 连接了它,当然小 varlet 没有重新启动。也没有last_kmsg。
版本是 LineageOS 14。我在这里发帖是因为这个问题的答案可能适用于所有基于 unix 的系统。如果你不喜欢,我想把它放到Android上。
我的设想是它不断地写入日志,直到它重新启动。我意识到如果手机不自行重启,日志最终会填满 SD 卡。所以我正在描绘一个像这样的脚本:
dmesg to log.1
if log.1 >1mb, delete it
dmesg log.2
if log.2 >1mb, delete it
dmesg to log.1
虽然我没有写它的能力。任何人都可以帮忙吗?