Я заставил его работать с хостом Debian 10 и гостевой Windows 10 в обоих направлениях.
установить вирт -менеджер установите spice -гостевые -инструменты в окнах (у него есть недорогая -лицензия наhttp://spice-space.org/)
найти вкладку сведений о виртуальной машине поместите видео qxl в qxl (другое может работать, но медленнее )внизу слева нажмите добавить оборудование, добавьте канал и введите тип spicevmc с именем redhat. Это очень важно для работы буфера обмена.
Вы должны перезапустить virt -менеджер. Также важно закрыть ОС виртуальной машины.
вы также можете использовать опцию virt -менеджер --отладка для просмотра журналов при копировании и вставке.
Подробнее здесь :https://blogs.nologin.es/rickyepoderi/index.php?/archives/87-Copy-n-Paste-in-KVM.html
благодаря redhat, предоставившем все драйверы
Поскольку мой ответ был популярен, я хотел бы также поделиться тем, как открыть общий доступ к папке. Я не думаю, что он поддерживается для ядра Linux старше 4.19. Но на 4.19 работает. Вы должны быть осторожны, чтобы не расшарить папку со всем интернетом без пароля. Но это нужно проверить самому.
Использовать диспетчер virt -для обмена файлами между хостом Linux и гостем Windows?
Вы устанавливаете папку как общую, щелкнув правой кнопкой мыши в Windows.
linux с Nautilus может подключаться к smb ://IP _WINDOWS. Но лучше использовать оболочку, она стабильнее.
включить правила прошивки в Windows Откройте панель управления, нажмите «Система и безопасность», а затем нажмите «Брандмауэр Windows».
In the left pane, click Advanced settings, and in the console tree, click Inbound Rules.
Under Inbound Rules, locate the rules File and Printer Sharing (NB-Session-In) and File and Printer Sharing (SMB-In).
For each rule, right-click the rule, and then click Enable Rule.
найти ips с помощью ipconfig и ifconfig
снять защиту паролем для smbhttps://pureinfotech.com/setup-network-file-sharing-windows-10/
Важно отключить аутентификацию для всех сетей в конфигурации сети в Windows, доступной из общего доступа к файлам.затем папку необходимо создать с нуля, чтобы убедиться, что она работает
См., в частности, раздел «Как обмениваться файлами по сети без пароля» по ссылке pureinfotech.com выше.
Если вы сделаете общедоступную сеть доступной без пароля, это может быть угрозой безопасности (пока не указывайте номер своей кредитной карты в общей папке ). Но это сработает. Вы можете расширить эти инструкции. Я не думаю, что виртуальная машина внутри Linux легко доступна из общедоступной сети, но может быть.
--А вот как монтировать sudo mount -t cifs //192.168.1.123/Users/MrHappy/Desktop/repos /media/vm -o user=externo,password=asd,uid=1000,gid=1000,mfsymlinks
или добавьте это в /etc/fstab //192.168.1.123/Users/MrHappy/Desktop/repos /media/vm cifs user=externo,password=asd,uid=1000,gid=1000,mfsymlinks И тогда можно монтировать с помощью sudo mount /media/vm
важно заменить gid и uid на те, что у Linux-машины, используя "id -g user" и "id -u user" пользовательский интерфейс и gid таковы, что не только root имеет доступ, но и пользователь
опция mfsymlinks разрешает работу символических ссылок
прежде чем выключить хост-компьютер, вы должны запустить это, иначе точка монтирования застряла :sudo umount -a -t cifs -l Лучше делать это за несколько минут до выключения компьютера.
если вы хотите, чтобы подключаемый модуль -и воспроизведение USB-микрофона (например, audio technica )работали в гостевой системе Windows, вам просто нужно добавить модуль «перенаправление USB» в virtmanager и, возможно, установить аппаратное USB-устройство на USB 3, если разъем синий для USB 3. lsusb -v может проверить, что хост находит устройство. После этого диспетчер устройств Windows должен увидеть устройство. Попробуйте отключить и снова подключить. не добавляйте конкретное имя usb в менеджер virt -, иначе произойдет сбой. иногда,вам может понадобиться в Windows отключить -повторно подключить микрофон и открыть настройки/система/звук, чтобы увидеть появление микрофона.
На рабочем ПК я использовал встроенную графику Intel, а не карту amd/nvidia. У меня был разрыв для видео внутри ВМ. Я удалил его, активировав TearFree в драйвере Intel. Вы можете проверить, включен ли TearFree, запустив «grep -i tear /var/log/Xorg.0.log»
Глядя на исходный код реализации GNU coreutils
, perl
одной(shasum
)или ast -открытой (sum
), ни одна из них не может быть указана для вывода вычисленной суммы в режиме проверки..
Однако с perl
его легко модифицировать:
--- shasum.orig 2021-03-27 08:01:06.927965948 +0000
+++ shasum 2021-03-27 08:02:33.336241906 +0000
@@ -295,7 +295,7 @@
$isOK = 1;
$num_OK++;
}
- else { $rsp.= "FAILED\n"; $err = 1; $match_errs++ }
+ else { $rsp.= "FAILED (expected $sum, got $digest)\n"; $err = 1; $match_errs++ }
print $rsp unless ($status || ($quiet && $isOK));
}
close(FH);
А потом:
$ echo '760382d5e8cdc5d0d079e8f754bce1136fbe1473be24bb885669b0e38fc56aa3 a' |./shasum -a 256 -c
a: FAILED (expected 760382d5e8cdc5d0d079e8f754bce1136fbe1473be24bb885669b0e38fc56aa3, got 3a1edb0672af06bc4712da1fcc00a09326e550d3f503ca41bf59d259f46afdc9)
Может быть, подобная функция bash сработает?
function check {
file="$1"
expected="$2"
echo "$expected $file" | sha256sum --check
result=$?
if [ $result -ne 0 ]; then
printf "Expected: %s\n" "$expected"
printf "Observed: %s\n" $(sha256sum "$file" | awk '{print $1}')
fi
}
Вот демонстрация:
#!/bin/bash
function check {
...
}
file="emacs-26.1.tar.gz"
expected=760382d5e8cdc5d0d079e8f754bce1136fbe1473be24bb885669b0e38fc56aa3
if [ ! -e "$file" ]; then
touch "$file"
fi
echo "This is what a mismatched file looks like"
check $file $expected
printf "\n--------------------------------------\n"
echo "This is what a matching file looks like"
expected=$(sha256sum "$file" | awk '{print $1}')
check $file $expected
Выход:
This is what a mismatched file looks like
emacs-26.1.tar.gz: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
Expected: 760382d5e8cdc5d0d079e8f754bce1136fbe1473be24bb885669b0e38fc56aa3
Observed: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
--------------------------------------
This is what a matching file looks like
emacs-26.1.tar.gz: OK
Приведенный ниже сценарий оболочки решает проблему, сохраняя вычисленную контрольную сумму в переменной. Затем сохраненная контрольная сумма сравнивается с ожидаемой контрольной суммой. При необходимости сохраненную контрольную сумму можно отобразить в сообщении об ошибке.
#!/bin/sh
file='emacs-26.1.tar.gz'
expected='760382d5e8cdc5d0d079e8f754bce1136fbe1473be24bb885669b0e38fc56aa3'
actual="$(sha256sum "$file" | awk '{print $1}')"
if [ "$actual" = "$expected" ]; then
echo "${file}: OK"
else
echo "${file}: FAILED"
echo "Expected: $expected" >&2
echo "Observed: $actual" >&2
exit 1
fi
echo "${file}: OK
имитирует выходной формат sha256sum --check
, а Expected:...
и Observed:...
используются вместо sha256sum --check
сообщения об ошибке sha256sum: WARNING: 1 computed checksum did NOT match
.