我知道这个问题似乎在wifi、蓝牙或nvidia方面被问了很多,但我正在努力解决一个与cd-rom/dvd相关的问题。
我在并行VM上运行Ubuntu,没有物理DVD,也没有连接的ISO映像。
systemd在一段不重复的时间后,它的CPU高达100%,也就是说,它在启动时没有一致性。几天前我更新Ubuntu时,它似乎就开始了。使用udevadm监视器,我可以看到以下内容:
KERNEL[26618.989007] change /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.020644] change /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.077203] change /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.200954] change /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
UDEV [26619.233814] change /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.281478] change /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.312935] change /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.360996] change /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.478767] change /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
UDEV [26619.504989] change /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)不断地重复。
与ata4和sr0相关的dmesg信息:
[ 2.165687] ata4: SATA max UDMA/133 abar m8192@0xf0200000 port 0xf0200180 irq 30
[ 2.808027] ata4: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[ 2.808812] ata4.00: ATAPI: Virtual DVD-ROM [1], FWR1, max UDMA/25
[ 2.810047] ata4.00: configured for UDMA/25
[ 2.811856] scsi 3:0:0:0: CD-ROM Virtual DVD-ROM R103 PQ: 0 ANSI: 5
[ 2.872450] sr 3:0:0:0: [sr0] scsi3-mmc drive: 44x/44x cd/rw xa/form2 cdda tray
[ 2.872465] cdrom: Uniform CD-ROM driver Revision: 3.20
[ 2.932438] sr 3:0:0:0: Attached scsi CD-ROM sr0查看journalctl \ grep‘systemd’,我看到以下可能有用的信息:
Sep 09 17:15:01 ubuntu-vm systemd[1]: systemd-udevd.service: Watchdog timeout (limit 3min)!
Sep 09 17:15:01 ubuntu-vm systemd[1]: systemd-udevd.service: Killing process 205157 (systemd-udevd) with signal SIGABRT.
Sep 09 17:15:01 ubuntu-vm systemd-udevd[205158]: sr0: Spawned process 'cdrom_id --eject-media /dev/sr0' [205517] is taking longer than 59s to complete
Sep 09 17:15:01 ubuntu-vm systemd-udevd[205158]: sr0: Spawned process 'cdrom_id --eject-media /dev/sr0' [205517] timed out after 2min 59s, killing
Sep 09 17:15:01 ubuntu-vm systemd-udevd[205158]: sr0: Process 'cdrom_id --eject-media /dev/sr0' terminated by signal KILL.
Sep 09 17:15:01 ubuntu-vm systemd-udevd[205158]: sr0: Failed to wait for spawned command 'cdrom_id --eject-media /dev/sr0': Input/output error
Sep 09 17:15:01 ubuntu-vm systemd-udevd[205158]: sr0: Failed to execute 'cdrom_id --eject-media /dev/sr0', ignoring: Input/output error
Sep 09 17:15:02 ubuntu-vm systemd[1]: systemd-udevd.service: Main process exited, code=dumped, status=6/ABRT
Sep 09 17:15:02 ubuntu-vm systemd[1]: systemd-udevd.service: Killing process 205158 (systemd-udevd) with signal SIGKILL.
Sep 09 17:15:02 ubuntu-vm systemd[1]: systemd-udevd.service: Killing process 205192 (systemd-udevd) with signal SIGKILL.
Sep 09 17:15:02 ubuntu-vm systemd[1]: systemd-udevd.service: Failed with result 'watchdog'.
Sep 09 17:15:02 ubuntu-vm systemd[1]: systemd-udevd.service: Scheduled restart job, restart counter is at 5.
Sep 09 17:15:02 ubuntu-vm systemd[1]: systemd-udevd.service: Found left-over process 205158 (systemd-udevd) in control group while starting unit. Ignoring.这个消息序列偶尔会出现,它看起来像是一个进程正在启动,以弹出一个cd光盘。没有挂载sr0。
我可以终止这个过程,但是它最终会重新启动,我不想继续这样做。我也不想要一个‘贴石膏’来阻止它,因为我可能想安装一个DVD或ISO映像,但无论如何,它将很好地确定什么可能导致系统开始与sr0一起工作,并停止它。
我对Linux并不十分精通--我正在将它用于特定的开发工具--我已经调查了我所能做的事情,但是任何帮助都会得到感谢。
编辑:终止进程是一个临时的修复,因为它是立即重新启动的,尽管从它开始上升的地方开始以较低的CPU %启动。运行这些命令(如udevadm man条目)将停止这个问题:
sudo systemctl stop systemd-udevd systemd-udevd-kernel.socket systemd-udevd-control.socket
sudo systemctl start systemd-udevd systemd-udevd-kernel.socket systemd-udevd-control.socket所以感觉这可能是个靴子订单的事?也许是在与光盘设备交互之前没有初始化的东西?知道怎么说吗?
谢谢,
安德鲁
发布于 2021-09-11 18:03:30
谁知道到底是什么导致了这一切的开始。如果没有回应,这就是我所做的。
在/usr/local/bin中创建一个脚本,并使其可执行:
#!/bin/bash
# Restart systemd-udevd to prevent runaway CD-ROM service
systemctl stop systemd-udevd systemd-udevd-kernel.socket systemd-udevd-control.socket
sleep 1
systemctl start systemd-udevd systemd-udevd-kernel.socket systemd-udevd-control.socket在/etc/systemd/system中创建Systemctl服务:
[Unit]
Description=Stop CD-ROM runaway service
After=graphical.target
[Service]
Type=simple
ExecStart=/usr/local/bin/stopCdRomNotifications.sh
[Install]
WantedBy=default.target然后通过以下方式启用它:
sudo systemctl enable [myscriptname]现在,在启动时,失控系统d-udevd进程被停止,然后在非失控状态下重新启动。如果没有脚本中的睡眠1语句,它就不会起作用:我推测,当被要求重新启动时,它处于“即将停止”的状态,所以它不会先停止!毫秒或微秒的延迟可能有效,我没有费心去尝试。
在我看来,这有点像贴石膏,但我不明白为什么会突然发生这种情况,除非可能是Ubuntu的最新更新导致了这种情况。嗯,Linux。
编辑:我现在有一个根本原因,但没有不粘石膏的答案。这个问题是由VM的并行配置以及5.11.0.34内核版本造成的。如果我将VM配置为没有连接的CD/DVD -“失控”系统-udevd进程启动;如果我用附加的ISO映像配置它,那么它不会。引导到较早版本的内核没有问题,导致问题的是内核版本加上“断开”CD/DVD。目前,答案是用连接的ISO映像配置VM。这也修正了启动VM时2分钟的启动延迟.
https://askubuntu.com/questions/1362833
复制相似问题