![从不需要虚拟化的 F25 工作站中删除 KVM 是否安全?](https://linux22.com/image/104681/%E4%BB%8E%E4%B8%8D%E9%9C%80%E8%A6%81%E8%99%9A%E6%8B%9F%E5%8C%96%E7%9A%84%20F25%20%E5%B7%A5%E4%BD%9C%E7%AB%99%E4%B8%AD%E5%88%A0%E9%99%A4%20KVM%20%E6%98%AF%E5%90%A6%E5%AE%89%E5%85%A8%EF%BC%9F.png)
我在一些 AMD 硬件上安装了 Fedora 25。我注意到安装后存在一座桥。这是不寻常的,因为我没有安装它或要求包含它的软件包。我的安装是带有开发人员工具的库存工作站。
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:f6:da:cf txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
libvirt
和qemu
是常见的嫌疑人,但它们似乎没有安装:
bulldozer$ sudo dnf remove libvirt
No match for argument: libvirt
Error: No packages marked for removal.
bulldozer$ sudo dnf remove qemu
No match for argument: qemu
Error: No packages marked for removal.
看起来 KVM 就是这个包(见下文)。我找不到预装软件包的原因。
我的问题是,从仅使用 SSH 进行远程访问和开发人员工具的无头工作站中删除 KVM 是否安全?现在 Fedora 需要 KVM 才能运行吗?
================================================================================
Package Arch Version Repository
Size
================================================================================
Removing:
SDL2 x86_64 2.0.5-3.fc25 @updates 1.1 M
boost-random x86_64 1.60.0-10.fc25 @updates 25 k
boost-thread x86_64 1.60.0-10.fc25 @updates 162 k
celt051 x86_64 0.5.1.3-11.fc24 @anaconda 112 k
corosync x86_64 2.4.2-1.fc25 @updates 475 k
corosynclib x86_64 2.4.2-1.fc25 @updates 277 k
cyrus-sasl x86_64 2.1.26-26.2.fc24 @anaconda 137 k
cyrus-sasl-md5 x86_64 2.1.26-26.2.fc24 @anaconda 84 k
dmidecode x86_64 1:3.0-6.fc25 @updates 215 k
edk2-ovmf noarch 20161105git3b25ca8-1.fc25
@updates 6.2 M
genisoimage x86_64 1.1.11-31.fc24 @anaconda 1.1 M
glusterfs x86_64 3.9.1-1.fc25 @updates 1.8 M
glusterfs-api x86_64 3.9.1-1.fc25 @updates 170 k
glusterfs-client-xlators x86_64 3.9.1-1.fc25 @updates 3.8 M
glusterfs-fuse x86_64 3.9.1-1.fc25 @updates 329 k
glusterfs-libs x86_64 3.9.1-1.fc25 @updates 1.2 M
gnome-boxes x86_64 3.22.3-2.fc25 @updates 5.0 M
gperftools-libs x86_64 2.5-2.fc25 @anaconda 1.3 M
gtk-vnc2 x86_64 0.6.0-1.fc25 @anaconda 205 k
gvnc x86_64 0.6.0-1.fc25 @anaconda 241 k
ipxe-roms-qemu noarch 20160622-1.git0418631.fc25
@anaconda 2.2 M
libcacard x86_64 3:2.5.2-2.fc24 @anaconda 93 k
libfdt x86_64 1.4.2-1.fc25 @anaconda 45 k
libgovirt x86_64 0.3.4-1.fc25 @anaconda 198 k
libibverbs x86_64 1.2.1-1.fc25 @anaconda 123 k
libiscsi x86_64 1.15.0-2.fc24 @anaconda 186 k
libnfs x86_64 1.9.8-2.fc24 @anaconda 284 k
libphodav x86_64 2.1-1.fc25 @updates 109 k
libqb x86_64 1.0.1-1.fc25 @updates 187 k
librados2 x86_64 1:10.2.4-2.fc25 @updates 6.4 M
librbd1 x86_64 1:10.2.4-2.fc25 @updates 7.8 M
librdmacm x86_64 1.1.0-1.fc25 @anaconda 136 k
libusal x86_64 1.1.11-31.fc24 @anaconda 450 k
libvirt-daemon x86_64 2.2.0-2.fc25 @updates 2.5 M
libvirt-daemon-config-network x86_64 2.2.0-2.fc25 @updates 228
libvirt-daemon-driver-interface x86_64 2.2.0-2.fc25 @updates 112 k
libvirt-daemon-driver-network x86_64 2.2.0-2.fc25 @updates 534 k
libvirt-daemon-driver-nodedev x86_64 2.2.0-2.fc25 @updates 112 k
libvirt-daemon-driver-nwfilter x86_64 2.2.0-2.fc25 @updates 169 k
libvirt-daemon-driver-qemu x86_64 2.2.0-2.fc25 @updates 1.3 M
libvirt-daemon-driver-secret x86_64 2.2.0-2.fc25 @updates 83 k
libvirt-daemon-driver-storage x86_64 2.2.0-2.fc25 @updates 658 k
libvirt-daemon-kvm x86_64 2.2.0-2.fc25 @updates 0
libvirt-gconfig x86_64 1.0.0-1.fc25 @updates 359 k
libvirt-glib x86_64 1.0.0-1.fc25 @updates 257 k
libvirt-gobject x86_64 1.0.0-1.fc25 @updates 216 k
libvirt-libs x86_64 2.2.0-2.fc25 @updates 22 M
libwsman1 x86_64 2.6.2-7.fc25 @anaconda 322 k
lttng-ust x86_64 2.8.1-2.fc25 @anaconda 977 k
lzop x86_64 1.03-15.fc25 @anaconda 103 k
netcf-libs x86_64 0.2.8-4.fc24 @anaconda 199 k
numactl-libs x86_64 2.0.11-2.fc24 @anaconda 45 k
numad x86_64 0.5-21.20150602git.fc24 @anaconda 56 k
qemu-common x86_64 2:2.7.1-2.fc25 @updates 1.0 M
qemu-img x86_64 2:2.7.1-2.fc25 @updates 4.2 M
qemu-kvm x86_64 2:2.7.1-2.fc25 @updates 0
qemu-system-x86 x86_64 2:2.7.1-2.fc25 @updates 20 M
radvd x86_64 2.14-1.fc25 @anaconda 179 k
seabios-bin noarch 1.9.3-1.fc25 @anaconda 647 k
seavgabios-bin noarch 1.9.3-1.fc25 @anaconda 230 k
sgabios-bin noarch 1:0.20110622svn-9.fc24 @anaconda 4.0 k
sheepdog x86_64 1.0.1-2.fc25 @updates 851 k
spice-glib x86_64 0.33-2.fc25 @anaconda 1.3 M
spice-gtk3 x86_64 0.33-2.fc25 @anaconda 257 k
spice-server x86_64 0.13.3-1.fc25 @updates 1.2 M
systemd-container x86_64 231-12.fc25 @updates 955 k
usbredir x86_64 0.7.1-2.fc24 @anaconda 96 k
userspace-rcu x86_64 0.9.2-2.fc25 @anaconda 292 k
virglrenderer x86_64 0.5.0-1.20160411git61846f92f.fc25
@anaconda 1.8 M
vte3 x86_64 0.36.5-2.fc24 @anaconda 987 k
xen-libs x86_64 4.7.1-6.fc25 @updates 1.5 M
xen-licenses x86_64 4.7.1-6.fc25 @updates 389 k
Transaction Summary
================================================================================
Remove 72 Packages
Installed size: 109 M
Is this ok [y/N]:
答案1
1.“libvirt 和 qemu 是最常见的嫌疑对象”
但它们似乎没有安装
$ rpm -q --whatprovides /lib/systemd/system/libvirtd.service
libvirt-daemon-2.2.0-2.fc25.x86_64
有一个替代方法可以删除软件包:
systemctl disable --now libvirtd.service
或者,如果您想确保没有软件可以请求 libvirtd 启动:
systemctl mask --now libvirt.service
systemctl
您可能在正在运行的服务 ( ) 或进程 ( ps -ax
/ ps ax
)列表中发现了这一点。如果您首先找到了进程 ID,那么即使名称不同,也可以通过一个巧妙的技巧来获取服务。
$ ps -ax|grep libvirt
992 ? Ssl 0:00 /usr/sbin/libvirtd
1365 ? S 0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
1366 ? S 0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
6997 pts/0 S+ 0:00 grep --color=auto libvirt
$ systemctl status 992
● libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2017-02-04 13:15:19 GMT; 3h 41min ago
Docs: man:libvirtd(8)
http://libvirt.org
Main PID: 992 (libvirtd)
Tasks: 18 (limit: 4915)
CGroup: /system.slice/libvirtd.service
├─ 992 /usr/sbin/libvirtd
├─1365 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
└─1366 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
2.“我找不到预装包的原因”
... gnome-boxes
$ dnf info gnome-boxes|grep Summary
Summary : A simple GNOME 3 application to access remote or virtual systems
3.《移除KVM安全吗》
来自仅使用 SSH 进行远程访问和开发人员工具的无头工作站?现在 Fedora 需要 KVM 才能运行吗?
你的删除列表对我来说看起来不错。
它甚至没有卸载 GNOME。请注意,类似dnf remove systemd
或 之类的命令dnf remove dnf
会警告删除“受保护的包”。但是,我理解一些重要的包可能会被删除的担忧,这不是严格的包依赖性。您可以减少需要审查的内容:
在 Debian 上,我会使用apt-get remove X
.它会向我显示已删除的软件包,并且分别地显示可以“自动删除”的包,因为它们不再被任何包依赖。
结果更清楚地表明您只是删除了libvirt
、gnome-boxes
和一个名为 的库,libguestfs
该库依赖于 libvirt (但没有其他依赖项)。
libguestfs 已经/被一些非常酷的工具使用。 virt-sparsify
可以用来获取已分区可移动驱动器的稀疏映像(如果以 root 身份运行,则禁用 libvirt)。
编辑:我注意到dnf remove
在 Fedora 26 上已经显示了“删除依赖包”和“删除未使用的依赖项”的单独列表。耶!我不记得它以前这样做过。
如果您的dnf
命令似乎没有显示单独的列表,则有一种更晦涩的方法,可以使其表现得像apt-get
并且不包含未使用的依赖项的自动功能autoremove
。
# dnf remove --setopt "clean_requirements_on_remove=0" libvirt-daemon
Dependencies resolved.
======================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================
Removing:
gnome-boxes x86_64 3.22.3-2.fc25 @updates 5.0 M
libguestfs x86_64 1:1.34.3-1.fc25 @fedora 3.8 M
libguestfs-tools-c x86_64 1:1.34.3-1.fc25 @fedora 15 M
libguestfs-xfs x86_64 1:1.34.3-1.fc25 @fedora 9
libvirt-daemon x86_64 2.2.0-2.fc25 @updates 2.5 M
libvirt-daemon-config-network x86_64 2.2.0-2.fc25 @updates 228
libvirt-daemon-driver-interface x86_64 2.2.0-2.fc25 @updates 112 k
libvirt-daemon-driver-network x86_64 2.2.0-2.fc25 @updates 534 k
libvirt-daemon-driver-nodedev x86_64 2.2.0-2.fc25 @updates 112 k
libvirt-daemon-driver-nwfilter x86_64 2.2.0-2.fc25 @updates 169 k
libvirt-daemon-driver-qemu x86_64 2.2.0-2.fc25 @updates 1.3 M
libvirt-daemon-driver-secret x86_64 2.2.0-2.fc25 @updates 83 k
libvirt-daemon-driver-storage x86_64 2.2.0-2.fc25 @updates 658 k
libvirt-daemon-kvm x86_64 2.2.0-2.fc25 @updates 0
Transaction Summary
======================================================================================================================================================
Remove 14 Packages
Installed size: 29 M
Is this ok [y/N]
(然后,我会使用dnf autoremove
)。
答案2
删除 KVM 是安全的。它默认安装在 Workstation 上,因为它是常见的软件开发人员用例。如果您不需要它,可以将其删除。 (另一方面,考虑到所有因素,它在那里的开销相当小,所以你也可以忽略它。)