请考虑以下最近一次apt-get dist-upgrade
运行的摘录:
Processing triggers for linux-image-5.4.0-59-generic (5.4.0-59.65) ...
/etc/kernel/postinst.d/dkms:
* dkms: running auto installation service for kernel 5.4.0-59-generic
...done.
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-5.4.0-59-generic
/etc/kernel/postinst.d/zz-update-grub:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.0-59-generic
Found initrd image: /boot/initrd.img-5.4.0-59-generic
Found linux image: /boot/vmlinuz-5.4.0-58-generic
Found initrd image: /boot/initrd.img-5.4.0-58-generic
Found linux image: /boot/vmlinuz-5.4.0-56-generic
Found initrd image: /boot/initrd.img-5.4.0-56-generic
/dev/sdg: open failed: No medium found
/dev/sdg: open failed: No medium found
Found Windows Boot Manager on /dev/nvme1n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for UEFI Firmware Settings
done
您会注意到有两行内容/dev/sdg: open failed: No medium found
。
我偶尔会将该驱动器连接到系统,但通常不会。这是一个 SSD,我将其保持完全可启动状态,以用作备用系统。
奇怪的是,这个设备在包升级期间不断弹出,而且我不知道在没有该设备的情况下从哪里检索该信息。
休闲装:
grep -aRi '/dev/sdg' /boot /etc
什么也没得到。同样,查看efibootmgr -v
输出,我可以看到上述消息中提到的磁盘的相应 EFI 条目/dev/sdg
仅引用了分区的编号和 UUID。所以我很困惑它/dev/sdg
从哪里获取的。
问题:那么这些信息存储在哪里?
编辑:忘记了:已应用最新补丁的 Ubuntu 20.04。
迄今为止的发现:
- 脚本
/dev/sdg
生成了对的引用os-prober
- 调用的步骤
lvs
是原因...
确切的调用是lvs --noheadings --separator : -o vg_name,lv_name
- 调用的步骤
- 其他与 LVM 相关的命令给出相同的输出
- 使用
--verbose
和/或--debug
LVM 工具不会改变任何东西,它不会提供更多见解
- 使用
- 中有几个文件
/etc/lvm/archive
,但它们引用了已删除的逻辑卷...我删除了它们(但如果需要,可以通过 进行备份etckeeper
) - 输出发生在 stderr
答案1
我找到了答案。我基本上是在追寻一个幽灵问题。TL;DR:读卡器硬件导致了这个问题。
虽然在某个时候我确实有一个可用的设备sdg
,因此可以合理地假设在某些配置中存在一些残余,但原因却是别的。
除了问题中详述的观察结果之外,lsblk
和blkid
类似工具根本没有显示sdg
任何内容。与 LVM 相关的工具仅给出了上述错误输出。
事实证明,我的机器做过有一个/dev/sdg
由内核创建的。就在那时我意识到必须有某物这会导致内核创建该设备节点。可惜的是,inxi -F
什么也没显示。不过,lshw
还是能揭开一些谜团。以下是相应的输出(摘录):
*-scsi:6
physical id: 2d
logical name: scsi8
capabilities: emulated scsi-host
configuration: driver=usb-storage
*-disk
description: SCSI Disk
product: SD/MMC CRW
vendor: Generic-
physical id: 0.0.0
bus info: scsi@8:0.0.0
logical name: /dev/sdg
version: 1.00
serial: 2012062914345300
capabilities: removable
configuration: ansiversion=6 logicalsectorsize=512 sectorsize=512
*-medium
physical id: 0
logical name: /dev/sdg
一直是读卡器硬件的问题。显示错误是因为当时os-prober
读卡器里没有卡lvs
...
我从中得到的主要教训是不要相信诸如lsblk
和blkid
或甚至之类的工具inxi
,并且总是寻找实际的设备节点或使用其他工具来查询信息。