Nix 構成では、パーティションを直接マウントするように qemu vm を構成します。

Nix 構成では、パーティションを直接マウントするように qemu vm を構成します。

私はここで言及したことをしたいと思います。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

パラメータを設定する必要があるようですが、-hdanixモジュールにオプションは表示されません。

ベストアンサー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 \
          "$@"

おすすめ記事