Как скопировать файлы между хостом PVE и ВМ? Есть много способов, обычно рекомендуют ssh/sshfs. Один из возможных вариантов не требует сети: 9p. Это для временного использования, например, для обслуживания или первоначальной настройки. 9p локальный, поэтому ВМ нельзя мигрировать по этой причине. Я просто использую "root", что обычно не рекомендуется для повседневного использования, и: этот подход официально не поддерживается.
Для этой статьи: на хосте существует какая-то папка с данными, я выбрал /tmp/hoststorage. В ней могут быть данные, мы ничего не удаляем.
На хосте:
Пока ВМ выключена, добавьте эту единственную строку вручную в ваш файл /etc/pve/local/qemu-server/<vmid>.conf:
`args: -fsdev local,security_model=passthrough,id=fsdev0,path=/tmp/hoststorage -device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=hostshare`
Теперь запустите вашу ВМ.
Linux Guest:
В гостевой ОС всё должно запуститься как обычно, всё должно работать нормально. Откройте root-шелл и выполните:
`mkdir /mnt/host`
`mount -t 9p -o trans=virtio,version=9p2000.L hostshare /mnt/host`
Всё. Вы можете читать и записывать файлы, используя любой файловый менеджер, который хотите. На хосте все файлы принадлежат root.
Windows Guest:
У меня не получилось
Похоже, чего-то не хватает:
Это ли правильная попытка? -- нет: “Virtio-fs и virtio-9p — это два разных устройства, выполняющие одну и ту же функцию с точки зрения пользователя.”
Ссылки:
`man qm.conf` - документация `args: ...`
----
Редактировано в мае 2025: Между тем есть "virtiofs", который использует похожие механизмы, но официально поддерживается:
Для этой статьи: на хосте существует какая-то папка с данными, я выбрал /tmp/hoststorage. В ней могут быть данные, мы ничего не удаляем.
На хосте:
Пока ВМ выключена, добавьте эту единственную строку вручную в ваш файл /etc/pve/local/qemu-server/<vmid>.conf:
`args: -fsdev local,security_model=passthrough,id=fsdev0,path=/tmp/hoststorage -device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=hostshare`
Теперь запустите вашу ВМ.
Linux Guest:
В гостевой ОС всё должно запуститься как обычно, всё должно работать нормально. Откройте root-шелл и выполните:
`mkdir /mnt/host`
`mount -t 9p -o trans=virtio,version=9p2000.L hostshare /mnt/host`
Всё. Вы можете читать и записывать файлы, используя любой файловый менеджер, который хотите. На хосте все файлы принадлежат root.
Windows Guest:
У меня не получилось
Похоже, чего-то не хватает: Это ли правильная попытка? -- нет: “Virtio-fs и virtio-9p — это два разных устройства, выполняющие одну и ту же функцию с точки зрения пользователя.”
Ссылки:
`man qm.conf` - документация `args: ...`
----
Редактировано в мае 2025: Между тем есть "virtiofs", который использует похожие механизмы, но официально поддерживается:
