Використовувати virt-менеджер для обміну файлами між хостом Linux та гостем Windows?


26

Чи можливо за допомогою віртуальної апаратної опції в Virt-менеджері використовувати віртуальну апаратну опцію "Filesystem Passthrough" для обміну папкою на хості Linux з моїм гостем Windows? Я знайшов кілька посібників, як це зробити з гостем Linux, але коли я спробую це з моїм гостем Windows, при спробі запустити VM я отримую таке повідомлення про помилку:

Error starting domain: Unable to read from monitor: Connection reset by peer

Traceback (most recent call last):   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 100, in cb_wrapper
    callback(asyncjob, *args, **kwargs)   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 122, in tmpcb
    callback(*args, **kwargs)   File "/usr/share/virt-manager/virtManager/domain.py", line 1210, in startup
    self._backend.create()   File "/usr/lib64/python2.7/site-packages/libvirt.py", line 698, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: Unable to read from monitor: Connection reset by peer

Я спробував знайти деяку документацію, але все, що я міг знайти, це офіційна сторінка, що посилається на поширені запитання та "деякі скріншоти" .

Відповіді:


16

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

Файлсистема

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

Налаштування Самба

Веб-сайт linux-kvm також містить вказівки щодо налаштування Samba. Ця документація доступна тут під назвою: Порада: Як можна обмінюватися файлами на своєму Linux Host з Windows Guest за допомогою Samba .


великі пальці для частини "налаштування самби". Це більш безпечний підхід
pqnet

@pqnet: чи можете ви кваліфікувати, як і чому це безпечніше?
0xC0000022L

4
@ 0xC0000022L, оскільки це не залежить від того, щоб віртуалізатор міг ефективно обманути гостьову операційну систему, яка може зламатися при зміні операційної системи. Samba - це мережевий протокол, тому гостьова операційна система менше сподівається на те, що може, і не може на неї робити.
pqnet

6

Файлові менеджери за замовчуванням як для Gnome, так і для KDE оточують робочий стіл, можуть легко отримати доступ до спільних ресурсів Windows за допомогою протоколу SMB.
Вам не потрібно встановлювати сервер samba на хост-машині Linux, оскільки ОС Windows вже поставляється із вбудованими протоколами зв'язку самби.

Скажімо, ваша гостьова ОС - це " Windows XP ", наприклад, виберіть папку, якою ви хочете поділитися, або просто створіть її для цієї мети, наприклад, "hosthare" та клацніть правою кнопкою миші на неї -> " властивості " -> "вкладка " спільний доступ " -> виберіть: " Поділитися цією папкою в мережі " та " Дозволити користувачеві мережі змінювати мої файли ".

У цей момент переконайтеся, що брандмауер Windows надає доступ до спільних файлових та принтерних ресурсів. Перейдіть у меню " Пуск " -> " Налаштування " -> " Панель управління " -> " Брандмауер Windows " -> Вкладка " Винятки " -> виберіть: -> " Обмін файлами та принтерами ".

Переконайтеся, що хост-апарат Linux можна побачити в гостьовій машині Windows через мережу. Отже, з типу командного рядка Windows: " ping 10.0.0.12 ", де в цьому випадку (як приклад) "10.0.0.12" - IP-адреса хоста; ви повинні змінити його на своє. Якщо у вас немає відповіді на ехо, вам доведеться вирішити цю проблему.
І те ж саме зробіть з командного рядка Linux: " ping -c3 192.168.122.216 ", де ці числа (як приклад) належать до virt-IP-адреси, призначеної гостьовій машині; ви повинні змінити його на своє.

З хост-машини Linux відкрийте " Nautilus " і перейдіть до " Файл " -> " Підключення до сервера " -> В поле " Адреса сервера " типу: " smb / 192.168.122.216 " -> " Підключення ".
Відкриється вікно Nautilus із ресурсами для перегляду ваших вбудованих серверів Samba. Ви зможете переглянути та отримати доступ до вмісту папки " hostinghare " Windows і отримати доступ до нього . Це все!


2

Я вважаю, @slm дав найкращу відповідь. ЗАРАЗ, є ще один випадок використання. Але ця альтернатива трохи зламає.

Грубе керівництво. Не враховуйте ці остаточні команди:

  1. створити файл зображення (дискета MS-dos або компакт-диск ISO-9660)
  2. відформатуйте зображення за допомогою файлової системи, наприклад mkfs.msdos
  3. копіюйте та маніпулюйте файлами на зображенні за потребою, наприклад, за допомогою mcopy та ін
  4. монтуйте зображення на CD-ROM або дискету Guest VM

Це не ідеально, але він може працювати, якщо ваш гостьовий сервер не дозволить з'єднати мережевий протокол між dom0 та Guest (наприклад, під час закритого сеансу VPN).

Більше інформації тут:

/programming//q/11202706/3407600


1

Можливий доступ лише для читання (у гостя Windows є R / W, а хост Linux може читати лише), оскільки хост Linux може монтувати NTFS на пристрої циклу, припустимо, що ви використовуєте сховище "raw" для гостя Windows:

Припустимо, у вас є Win.img як необроблене зображення, воно емулюється як диск.

  • Крок 1. Знайдіть зміщення вашої файлової системи (оскільки це диск) за допомогою fdisk:
$ fdisk -lu Win.img

Disk Win.img: 16.3 GB, 16252928000 bytes
255 heads, 63 sectors/track, 1975 cylinders, total 31744000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3a793a79

    Device Boot      Start         End      Blocks   Id  System
    Win.img   *          63    31712309    15856123+   7  HPFS/NTFS/exFAT

Тепер обчисліть зміщення = 63 x 512 = 32256

  • Крок 2: встановіть його
mount Win.img /mntpoint -o ro,loop,offset=32256

ОБЕРЕЖНО

Ви можете встановити RW, і таким чином Linux зможе писати на нього, але ваша файлова система буде пошкоджена! Тому що і ваш Linux, і Windows мають доступ до файлової системи В ОДНІЙ ЧАС! Вони можуть виділяти однакові безкоштовні блоки для запису файлів, які вони хочуть записати!

Linux читання не є стабільним, в рідкісних випадках

За допомогою цього методу файлова система є безпечною, і в основному це нормально для стабільного зчитування. Однак, як я вже сказав, вони отримують доступ до файлової системи одночасно, і тому, коли Windows намагається щось написати, Linux може бути не повідомлений, і, таким чином, прочитати щось пошкоджене. Однак якщо ви обережно використовуєте, прочитане має бути дуже стійким.


3
Наскільки це надійно? Дані можуть бути в кешах. Записи не будуть атомними щодо читання в іншій системі.
ctrl-alt-delor

0

Я використовую Dokany + Win-SSHFS для монтажу віддалених папок над ssh. Нехай вони грають у наздоганяючу гру, а не навпаки < зла усмішка >


0

Рішення Енді працювало для мене, господаря Debian та гостя Windows. Зауважте, що у мене встановлені інструменти spice-guest для спеціального мережевого драйвера від redhat.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.