qemu 中的共享分区

qemu 中的共享分区

除了网络和分区共享之外,我还让 qemu 工作得非常像我想要的那样。我有一些特殊的设置,我需要通过/dev/sda/dev/sda1/dev/sda2。 (是否可以/dev/sda不通过它而通过/dev/sda3?我可以接受使用替代方法。)

/dev/sda(MBR) = Windows Bootmgr 开启/dev/sda1

/dev/sda1= 系统保留分区(Windows 的引导加载程序)

/dev/sda2= Windows 7 的C:/分区

/dev/sda3= Arch Linux(主机)

我已经将/dev/sda3grub 安装到了 MBR 中/dev/sdc(这意味着引导/dev/sdc将引导我进入我的 arch Linux 安装,引导/dev/sda将引导我进入 Windows)我也会经过,/dev/sdc但这很容易,因为主机不需要启动后对此驱动器的任何访问。

最后,我有一个 GPT(NTFS)存储分区,/dev/sdb2我希望可以同时从主机和来宾轻松访问该分区(我想在两个系统之间共享它)

我该如何继续/dev/sda/dev/sdb2

答案1

您可以使用设备映射器来塑造包含所需原始设备部分的设备。例如:

$ grep . /sys/class/block/sda/**/(size|start)
/sys/class/block/sda/sda1/size:224847
/sys/class/block/sda/sda1/start:63
/sys/class/block/sda/sda2/size:124820514
/sys/class/block/sda/sda2/start:224910
/sys/class/block/sda/size:125045424

如果我想隐藏 sda2,我可以创建一个/dev/mapper/no_sda2扇区 224910 到 125045424 包含零的扇区:

  • 首先创建一个循环设备,否则 dmsetup 会抱怨,因为/dev/sda正在使用中(而loop不会抱怨,这对我来说听起来不太一致):

    losetup /dev/loop0 /dev/sda
    
  • 然后创建/dev/mapper/no_sda2为:

    dmsetup create no_sda2 << EOF
    0 224910 linear /dev/loop0 0
    224910 $((125045424-224910)) zero
    EOF
    

相关内容