Совместное использование разделов в qemu

Совместное использование разделов в qemu

Помимо работы в сети и совместного использования разделов я заставил qemu работать примерно так, как мне нужно. У меня есть немного особая настройка, мне нужно пройти через /dev/sda, /dev/sda1и /dev/sda2. (Возможно ли пройти через , /dev/sdaне проходя через /dev/sda3него? Я могу обойтись альтернативными методами.)

/dev/sda(MBR) = Windows Bootmgr включен/dev/sda1

/dev/sda1= Зарезервированный системой раздел (загрузчик Windows)

/dev/sda2C:/= раздел Windows 7

/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

Вы можете использовать device mapper для формирования устройства, которое содержит нужные вам части исходного устройства. Например:

$ 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
    

Связанный контент