RHEL/Rocky LINUX KVM启用虚拟化的命令比较复杂,可能不是每个工程师都能够看懂。
要将给定的命令拆解为原子的Linux命令,我们需要展开循环和花括号扩展。原命令如下:
bash
for drv in qemu network nodedev nwfilter secret storage interface; do systemctl start virt${drv}d{,-ro,-admin}.socket done
拆解步骤:
-
循环变量
drv
的取值有 7 个:
qemu
,network
,nodedev
,nwfilter
,secret
,storage
,interface
。 -
花括号扩展
{,-ro,-admin}
会生成 3 个后缀:
空后缀(即无额外字符)、-ro
、-admin
。 -
每个
drv
值会生成 3 个独立的服务名,格式为:
virt<drv>d.socket
、virt<drv>d-ro.socket
、virt<drv>d-admin.socket
。
原子命令列表:
依次执行以下命令,每个命令启动一个独立的 socket 服务:
bash
# qemu 相关服务 systemctl start virtqemud.socket systemctl start virtqemud-ro.socket systemctl start virtqemud-admin.socket # network 相关服务 systemctl start virtnetworkd.socket systemctl start virtnetworkd-ro.socket systemctl start virtnetworkd-admin.socket # nodedev 相关服务 systemctl start virtnodedevd.socket systemctl start virtnodedevd-ro.socket systemctl start virtnodedevd-admin.socket # nwfilter 相关服务 systemctl start virtnwfilterd.socket systemctl start virtnwfilterd-ro.socket systemctl start virtnwfilterd-admin.socket # secret 相关服务 systemctl start virtsecretd.socket systemctl start virtsecretd-ro.socket systemctl start virtsecretd-admin.socket # storage 相关服务 systemctl start virtstoraged.socket systemctl start virtstoraged-ro.socket systemctl start virtstoraged-admin.socket # interface 相关服务 systemctl start virtinterfaced.socket systemctl start virtinterfaced-ro.socket systemctl start virtinterfaced-admin.socket
说明:
-
共拆解为 21 条独立命令(7 个模块 × 每个模块 3 个服务)。
-
每条命令仅操作一个
.socket
单元,符合原子性要求。 -
这些命令覆盖了虚拟化所需的全部 socket 服务(QEMU、网络、节点设备、网络过滤、密钥管理、存储和接口)。