Используйте virt-менеджера, чтобы совместно использовать файлы между хостом Linux и гостем Windows?

Вот bash/ksh93/zsh сценарий, который эмулирует базовое поведение rsync, где можно легко настроить решение скопировать или не скопировать исходный файл. Здесь копия сделана, только если исходный файл и больше и более новым. В ударе добавить shopt -s globdots перед сценарием. Непротестированный.

target=/path/to/destination
cd source-directory
skip=
err=0
for x in **/*; do
  # Skip the contents of a directory that has been copied wholesale
  case $x in $skip/*) continue;; *) skip=;; esac
  if [[ -d $x ]]; then
    # Recreate source directory on the target.
    # Note that existing directories do not have their permissions or modification times updated.
    if [[ -e $target/$x ]]; then continue; fi
    skip=$x
    if [[ -e $target/$x ]]; then
      echo 1>&2 "Not overwriting non-directory $target/$x with a directory."
      err=1
    else
      # The directory doesn't exist on the destination, so copy it
      cp -Rp -- "$x" "$target/$x" || err=1
    fi
  elif [[ -f $x ]]; then
    # We have a regular file. Copy it over if desired.
    if [[ $x -nt $target/$x ]] && [ $(wc -c <"$x") -gt $(wc -c <"$target/$x") ]; then
      cp -p -- "$x" "$target/$" || err=1
    fi
  else
    # neither a file nor a directory. Overwrite the destination
    cp -p -- "$x" "$target/$x" || err=1
  fi
done
27
07.08.2014, 03:44
7 ответов

Я не полагаю, что это - возможные гости Windows использования. Я обычно устанавливаю сервер Samba на хосте KVM Linux и затем совместно использую папку с помощью этого для моих гостей KVM.

Передача файловой системы

Документация относительно совместного использования каталога хоста KVM с гостями KVM (Linux) доступна здесь на веб-сайте virt-менеджера. Страница названа: Пример, Совместно использующий файлы Хоста с Гостем.

Установка Samba

Веб-сайт linux-kvm также содержит направления для установки Samba. Та документация доступна здесь, названная: Подсказка: Как можно совместно использовать файлы на Хосте Linux с Windows Guest с помощью Samba.

17
27.01.2020, 19:39
  • 1
    для "установки самбы" часть. Это - более безопасный подход –  pqnet 07.08.2014, 03:46
  • 2
    @pqnet: Вы могли квалифицировать, как и почему это более безопасно? –  0xC0000022L 16.01.2016, 01:33
  • 3
    @0xC0000022L, потому что это не зависит от virtualizator способности обмануть эффективно гостевую операционную систему, которая может повредиться если изменение операционной системы. Samba является сетевым протоколом, таким образом гостевая операционная система имеет меньше ожидания по тому, что это может, и это не может сделать на нем. –  pqnet 16.01.2016, 18:56

Возможен доступ только для чтения (у гостя Windows есть R/W, а хост Linux может только читать), Так как хост Linux может монтировать NTFS на устройство обратной связи, предположим, что вы используете хранилище типа 'raw' для гостя Windows:

Предположим, что у вас есть Win.img в качестве "сырого" образа, он эмулируется в виде диска. Шаг 1: Найдите смещение вашей файловой системы (поскольку это диск) с помощью fdisk:

Теперь рассчитайте смещение = 63 x 512 = 32256

C:\>nslookup -type=PTR 254.19.46.207.in-addr.arpa   
Non-authoritative answer:                                                   
254.19.46.207.in-addr.arpa      name = wwwbaytest2.microsoft.com            

Шаг 2: смонтируйте его

ВНИМАНИЕ

dig -x x.x.x.x

Вы можете смонтировать его RW, и таким образом Linux сможет записать на него, [11604]но[11605] ваша файловая система будет повреждена! Потому что и Linux, и Windows обращаются к файловой системе в ВРЕМЯ РАЗРЕШЕНИЯ! Они могут выделять одни и те же свободные блоки для записи файлов, которые они хотят записать!

Чтение под Linux не является стабильным, в редких случаях

При таком методе файловая система безопасна, и в основном нормально иметь стабильное чтение. Однако, как я уже говорил, они получают доступ к файловой системе одновременно, и таким образом Когда windows пытается что-то написать, Linux может не быть информирован, и, таким образом, прочитать что-то поврежденное. Однако, если вы используете его внимательно, чтение должно быть очень стабильным.

.

1
27.01.2020, 19:39

Думаю, @slm дал лучший ответ. КАК КАК, есть еще один вариант использования. Этот вариант, однако, немного хакерский.

Грубое руководство. Не принимайте во внимание эти окончательные команды:

  1. создать файл образа (дискета ms-dos или ISO-9660 CD)
  2. отформатировать образ с файловой системой, например mkfs.msdos
  3. скопировать и при необходимости манипулировать файлами образа, например, с mcopy, и т.д.
  4. смонтировать образ на гостевой ВМ cd-rom или дискету

Это не идеально, но может работать, если ваша гостевая ВМ не разрешает соединения сетевого протокола между dom0 и Guest (например, во время закрытого VPN сеанса).

Больше информации здесь:

https://stackoverflow.com/q/11202706/3407600

2
27.01.2020, 19:39

Решение Энди сработало для меня, хоста Debian и гостя Windows. Обратите внимание, что у меня установлены инструменты spice -guest -со специальным сетевым драйвером от RedHat.

Кроме того, пришлось снять защиту паролем через smb Вот по той ссылке нашел как снять парольhttps://pureinfotech.com/setup-network-file-sharing-windows-10/

0
27.01.2020, 19:39

Файловые менеджеры по умолчанию для среды рабочего стола Gnome и KDE могут легко получить доступ к общим ресурсам Windows с помощью протокола SMB.
Вам не нужно устанавливать сервер Samba на хост-машине Linux , потому что Windows O.S. уже идет со встроенными протоколами связи самбы.

Допустим, ваш гость О.С. это « Windows XP », например, выберите папку, к которой вы хотите предоставить общий доступ, или просто создайте ее для этой цели, например "hostshare" и щелкните его правой кнопкой мыши -> " свойства " -> " общий доступ " Вкладка -> ] выберите: « Поделиться этой папкой в ​​сети » и « Разрешить сетевому пользователю изменять мои файлы ».

На этом этапе убедитесь, что брандмауэр Windows предоставляет доступ к общим файлам и ресурсам принтера. Перейдите в « меню запуска » -> « настройки « -> » Панель управления » -> " брандмауэр Windows " -> " Исключения " Вкладка -> выберите: -> " Файл и общий доступ к принтеру ».

Убедитесь, что хост-машина Linux видна гостю Windows V.M. через сеть. Итак, из командной строки Windows введите: ping 10.0.0.12 , где в данном случае (в качестве примера) «10.0.0.12» - это IP-адрес хоста; вы должны изменить его на свой собственный. Если у вас нет ответов эха, вам придется заняться устранением неполадок.
И сделайте то же самое из командной строки Linux: ping -c3 192.168.122.216 , где эти числа (в качестве примера) принадлежат виртуальному IP-адресу, назначенному гостевому виртуальному компьютеру; вы должны изменить его на свой собственный.

Чтобы получить IP-адрес Windows, выполните следующую команду: ipconfig

Чтобы получить IP-адрес Linux, выполните следующие команды:

$ ifconfig
$ ip a
$ ip r
$ hostname -I
$ hostname -i

На хост-машине Linux откройте « Nautilus » и перейдите в « Файл » -> « Подключиться к серверу » -> В поле типа « Адрес сервера » : smb: //192.168.122.216 -> « Connect ».
Откроется окно Nautilus с доступными для просмотра ресурсами вашего встроенного в Windows сервера Samba. Вы сможете увидеть и получить доступ к содержимому папки Windows " hostshare ". Это все!

15
20.08.2021, 13:07

Я использую Dokany + Win -SSHFS для монтирования удаленных папок по ssh. Пусть играют в догонялки -а не наоборот < злобная ухмылка >

0
20.08.2021, 13:07

теперь мы можем использовать инструменты для специй . установить spice -webdavd в гостевой системе Windows

2
20.08.2021, 13:07

Теги

Похожие вопросы