Согласно форуму проблема с 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 должна быть еще одна неопознанная проблема.