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= 윈도우 7의 C:/파티션

/dev/sda3= 아치 리눅스(호스트)

/dev/sda3MBR에 grub이 설치되어 있습니다 /dev/sdc(즉, 부팅하면 /dev/sdc아치 Linux 설치로 부팅되고, 부팅하면 /dev/sdaWindows로 부팅됩니다). 저도 통과하겠지만 /dev/sdc호스트가 필요하지 않기 때문에 이것은 쉽습니다. 부팅 후 이 드라이브에 대한 모든 액세스.

/dev/sdb2마지막으로 호스트와 게스트 모두에서 동시에 쉽게 액세스할 수 있는 GPT(NTFS) 스토리지 파티션이 있습니다 (두 시스템 간에 공유하고 싶습니다).

/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까지의 섹터에 0이 포함되는 곳을 만들 수 있습니다 .

  • 먼저 루프 장치를 만드십시오. 그렇지 않으면 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
    

관련 정보