使用Device Mapper创建线性阵列

​ 在之前的文章:《QEMU/KVM启动物理分区的Windows并调优》中笔者使用mdadm创建线性阵列,使VM启动物理硬盘分区上的Windows系统。这个做法思路清晰且具有实操性,但根据这个issue,Linux内核上游已将CONFIG_MD_LINEAR编译参数弃置了,这意味着在6.8及以后的内核中将无法使用mdadm创建线性阵列,相关模块已不再被内核包含,modprobe linear命令将失效。

​ 好在创建线性阵列的方法不止这一种,使用device mapper也可以实现同样的目的。参考这个帖子,这里提供一个新的libvirt hook脚本,使用device mapper动态创建和销毁线性阵列:

#!/usr/bin/env bash
#
# Author: yjzzjy4 (https://github.com/yjzzjy4)
#
# This script creates and distroys /dev/mapper/win10-kvm for booting physical windows drive.
#
WIN_PART=/dev/disk/by-uuid/7CEA3A30EA39E6D4
EFI_DI