Согласно форуму проблема с gvfs и cifs работает намного лучше. Я не знаком с этими терминами, но могу это подтвердить. При установке привода вручную:
mount -t cifs -o username=root,password=xxxxx //192.168.0.186/asmedia-hdd /media/asmedia-hdd
Я могу достичь 10 МБ / с в Наутилусе. Единственная проблема в том, что у меня нет сетевого обнаружения, и я не могу отсоединить диск от nautilus. Поэтому я думаю, что это не настоящее решение.
Есть ли способ заставить Наутилуса использовать cifs вместо gvfs?
следующий
Я нашел файл конфигурации, который, кажется, очень актуален:
/usr/share/gvfs/mounts/smb.mount
[Mount] Type=smb-share Exec=/usr/libexec/gvfsd-smb AutoMount=false Scheme=smb
Я думаю, что gvfs не тип раздела, это то, что тоже использует cifs. Так что, думаю, я могу как-то установить здесь размер буфера cifs. Я еще не смог выяснить, как это сделать.
Согласно вики, gvfs - это виртуальная файловая система, поэтому она может быть поверх cif, поэтому я был прав.
следующий
Я нашел этот ответ: https://unix.stackexchange.com/a/44318/126217, пытаясь монтировать gvfs из терминала. В соответствии с этим, export $(dbus-launch)
важно использовать любую команду gvfs. Я подтверждаю, что мне не удалось использовать команды gvfs из терминала, и я получил только смутные сообщения об ошибках по этой проблеме.
Я смог смонтировать диск вручную с помощью gvfs:
gvfs-mount smb://WORKGROUP\;root@192.168.0.186/asmedia-hdd
Мне удалось перечислить смонтированные диски
gvfs-mount -l Drive(0): KINGSTON SV300S37A120G Type: GProxyDrive (GProxyVolumeMonitorUDisks2) Drive(1): ST31000528AS Type: GProxyDrive (GProxyVolumeMonitorUDisks2) Volume(0): data Type: GProxyVolume (GProxyVolumeMonitorUDisks2) Volume(1): system Type: GProxyVolume (GProxyVolumeMonitorUDisks2) Volume(2): Rendszer számára fenntartott Type: GProxyVolume (GProxyVolumeMonitorUDisks2) Drive(2): TSSTcorp CDDVDW SH-222AB Type: GProxyDrive (GProxyVolumeMonitorUDisks2) Mount(0): asmedia-hdd on 192.168.0.186 -> smb://WORKGROUP;root@192.168.0.186/asmedia-hdd/ Type: GDaemonMount
До сих пор не так много информации о конфигурации этих установленных дисков. Наутилус не показал установленный диск. Это интересно, потому что, когда я использовал команду mount в терминале, подключенный диск обнаружился в nautilus.
Я нашел точку монтирования здесь:
cd ~/.gvfs/smb-share\:domain\=WORKGROUP\,server\=192.168.0.186\,share\=asmedia-hdd\,user\=root/
Я был в состоянии скопировать с подключенного диска gvfs файл MKV, и я использовал
watch -- du -h test.mkv
чтобы измерить скорость передачи, она была около 4,3 МБ / с. Я использовал ту же технику, измеряя скорость cp, когда использовал команду smbclient. Так что я смог воспроизвести то, что Наутилус делает на заднем плане. Теперь единственное, что мне нужно, это добавить опцию для изменения размера буфера cifs, если это возможно.
заключение:
В итоге я добавил следующее в fstab:
//192.168.0.186/asmedia-hdd /media/asmedia-hdd cifs rw,workgroup=WORKGROUP,username=root,password=xxxxx,noauto,users,iocharset=utf8 0 0
и использовал
chmod 4755 /usr/sbin/mount.cifs
потому что nautilus написал, что только root может смонтировать диск, вместо того, чтобы показывать пароль root.
Мне не нравится это решение, потому что nautilus не обнаруживает сетевые диски таким образом. Другая проблема в том, что я должен был дать разрешения всем пользователям монтировать этот диск, и мне пришлось дать пароль smb, потому что у меня также не было запроса на это. Скорость загрузки была в порядке, и я получил то же самое при загрузке. При загрузке я получил ложные отчеты о скорости и размере файла от nautilus, он пишет 120MB / s в начале, который постоянно уменьшается. Проверив размер файла с помощью подключенного диска gvfs, мне удалось получить информацию о реальных скоростях. Это было около 10 МБ / с.
Я пытаюсь решить это с помощью gvfs. Если мне удастся это сделать, я опубликую ответ, но пока не буду использовать этот обходной путь, смонтированный на cifs.
следующий ~ 2016
Добавлен отчет об ошибке здесь: https://bugzilla.gnome.org/show_bug.cgi?id=762384 возможно, у них есть ответ.
следующий ~ 2017
По словам разработчиков Gnome, это ошибка Samba. Они могут написать патч, но нет никакой гарантии. Разработчики Samba не заботились об этом последние 3 года (2014-17), я даже не уверен, что проект поддерживается.
примечание :
Я измерял это 10 МБ / с через Wi-Fi соединение. Я сделал некоторые измерения через Ethernet с тем же Odroid XU4, когда попытался отладить это. (GVFS использует libsmbclient, поэтому он выполняет что-то похожее на вызов smbget
.)
копия с наутилусом (18-19МБ / с)
# mount with nautilus on GUI # copy with nautilus on GUI
копировать с размером блока smbget по умолчанию (23-24 МБ / с)
# mount with nautilus on GUI smbget -u root -w WORKGROUP smb://192.168.0.186/asmedia-hdd/testfile
копировать с размером блока 16 КБ (1–64 КБ) (38–57 МБ / с)
# mount with nautilus on GUI smbget -u root -w WORKGROUP smb://192.168.0.186/asmedia-hdd/testfile --blocksize=16777216
копия с креплением CIFS (70-90 МБ / с)
# mount in fstab //192.168.0.186/asmedia-hdd /media/asmedia-hdd cifs rw,workgroup=WORKGROUP,username=root,password=...,noauto,users,iocharset=utf8 0 0 # copy with nautilus on GUI
Таким образом, очевидным узким местом является слишком маленький размер блока в GVFS, но скорость превышает размер блока в 1 килобайт и достигает не более 63% скорости CIFS, поэтому в библиотеке smb должна быть еще одна неопознанная проблема.