Без особых знаний о Wine я бы решил эту проблему, сделав программу счастливой и предоставив ей диск размером менее 2 ГБ.
Это очень просто. Сначала создайте файл, заполненный нулями, размером 512 МБ (или более, но менее 2048):
dd if=/dev/zero of=smalldisk.img bs=1M count=512
Затем отформатируйте его, используя файловую систему по умолчанию:
mkfs smalldisk.img
Переместите существующий каталог на временное имя:
mv .wine-demo .wine-demo-orig
Смонтируйте новый диск как устройство петли в исходном месте:
sudo mount smalldisk.img .wine-demo
sudo chown your-user-name: .wine-demo
Скопируйте все дерево в:
cp -r .wine-demo-orig/* .wine-demo
и запустите программу оттуда. Если это по-прежнему не работает, вам понадобится другое решение.
(К сожалению, есть вероятность, что это не сработает. Если он не может обрабатывать 2 ГБ дискового пространства, он, вероятно, не будет обрабатывать 2 ГБ ОЗУ ...)
При условии, что он работает, Я предлагаю вам размонтировать его и поместить в ваш / etc / fstab
:
/path/to/smalldisk.img /path/to/mount ext4 auto,noexec,rw,loop,fmask=0177,dmask=0077,user 0 0
В этой строке fmask
и dmask
являются разрешениями маски для файлов и каталогов. Обратите внимание, что они противоположны тому, что вы использовали бы с chmod
. То есть 7
означает отсутствие разрешений ( ---
), а 0
означает полные разрешения ( wrx
). Подробнее читайте здесь: Объяснение масок разрешений fstab .
В идеале rsync должен печатать только печатные символы.
Если это не так, вы можете направить вывод rsync по конвейеру через утилиту фильтрации, такую как cat -v
, хотя это приведет к некоторой задержке из-за буферизации. Также я не уверен, что cat -v
достаточно умен, чтобы поймать C1 в кодировке UTF-8 или байт 0x90 (мне не ясно, с каким из них вы столкнетесь).