
Além da rede e do compartilhamento de partições, fiz o qemu funcionar exatamente como eu queria. Eu tenho uma configuração especial, preciso passar por /dev/sda
, /dev/sda1
e /dev/sda2
. (É possível passar /dev/sda
sem passar /dev/sda3
por isso? Posso conviver com o uso de métodos alternativos.)
/dev/sda
(MBR) = Bootmgr do Windows ativado/dev/sda1
/dev/sda1
= Partição reservada do sistema (bootloader do Windows)
/dev/sda2
C:/
= partição do Windows 7
/dev/sda3
= Arch Linux (Host)
Eu tenho /dev/sda3
o grub instalado no MBR de /dev/sdc
(o que significa que a inicialização /dev/sdc
me inicializará na instalação do Arch Linux, a inicialização /dev/sda
me inicializará no Windows). Estarei de passagem /dev/sdc
também, mas este é fácil, pois o host não precisa qualquer acesso a esta unidade após a inicialização.
Finalmente, tenho uma partição de armazenamento GPT (NTFS) na /dev/sdb2
qual desejo ser facilmente acessível tanto pelo host quanto pelo meu convidado ao mesmo tempo (quero compartilhá-la entre os dois sistemas)
Como proceder com /dev/sda
e /dev/sdb2
?
Responder1
Você pode usar o mapeador de dispositivos para moldar um dispositivo que contenha as partes do dispositivo original desejado. Por exemplo:
$ 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
Se eu queroesconder sda2
, posso criar um /dev/mapper/no_sda2
onde os setores 224910 a 125045424 contêm zeros:
Primeiro crie um dispositivo de loop, caso contrário o dmsetup irá reclamar porque
/dev/sda
está em uso (emboraloop
não irá reclamar, o que não parece muito consistente para mim):losetup /dev/loop0 /dev/sda
Então crie
/dev/mapper/no_sda2
como:dmsetup create no_sda2 << EOF 0 224910 linear /dev/loop0 0 224910 $((125045424-224910)) zero EOF