나는 여기에 언급된 작업을 수행하고 싶습니다.https://wiki.archlinux.org/index.php/QEMU#Mounting_a_partition_of_the_guest_on_the_host-기본적으로 파티션을 VM에 직접 마운트합니다. 그래서 mmap
마운트에서 사용할 수 있습니다.( 9p
지원되지 않는 것 같습니다).
그런데 여기서 nix 모듈의 관련 구성(?)이 무엇인지 잘 모르겠습니다.https://github.com/NixOS/nixpkgs/blob/b0df5a6816b644c2e0b6ebcde6ad0784b07205e0/nixos/modules/virtualization/qemu-vm.nix이것을 구성합니다. 실제로 사용하고 있어요https://github.com/Mic92/nixos-shell이것은 참조된 모듈/파일을 다시 사용하는 것 같습니다.
다음과 같이 시도해 보세요:
extraMounts = {
"/test" = {
target = /dev/sdc;
cache = "none";
};
};
오류가 발생했습니다.
qemu-system-x86_64: -virtfs local,path=/dev/sdc,security_model=none,mount_tag=a457b9c00b7152b02ceea27e7fe1a07: cannot initialize fsdev 'a457b9c00b7152b02ceea27e7fe1a07': failed to open '/dev/sdc': Not a directory
매개변수 를 설정해야 할 것 같은데 -hda
nix 모듈에 옵션이 표시되지 않습니다.
답변1
여기에서 해결책을 찾으세요:https://github.com/Mic92/nixos-shell/issues/14
환경 변수를 설정해야 합니다.
QEMU_OPTS="-hdc /dev/disk/by-uuid/836d83ab-cba5-4eb4-a7c8-09911cd67403"
여기에 인용되어 있습니다 :
# Start QEMU.
exec ${qemuBinary qemu} \
-name ${vmName} \
-m ${toString config.virtualisation.memorySize} \
-smp ${toString config.virtualisation.cores} \
-device virtio-rng-pci \
${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \
-virtfs local,path=/nix/store,security_model=none,mount_tag=store \
-virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \
-virtfs local,path=''${SHARED_DIR:-$TMPDIR/xchg},security_model=none,mount_tag=shared \
${drivesCmdLine config.virtualisation.qemu.drives} \
${toString config.virtualisation.qemu.options} \
$QEMU_OPTS \
"$@"