Disassembler

Artificial intelligence is no match for natural stupidity.
14prosinec2013

Odpojování CIFS mezi Win7 a linuxem


Jsa hrdým vlastníkem zařízení známého jako Raspberry Pi (Model A, doručeno v červnu 2012), na kterém mám nainstalované RaspBMC, stává se mi občas, že odmítne přehrát soubor nebo přejít do adresáře a místo toho oznámí, že „Connection timed out“. V případě, že si chci u večeře pustit nové díly svých oblíbených seriálů je to obzvláště otravné.

Je to rozbitý


Soubory, které RaspBMC přehrává, jsou umístěny na stroji plnícím funkci kancelářského PC, hypervizoru a NAS zároveň a z RaspBMC přístupny skrze SMB/CIFS protokol. Z důvodů nezajímavých pro tento článek, jsou jako operační systém na zmíněném stroji totiž použity Windows 7. Empiricky jsem zjistil, že Raspberry můžu restartovat do aleluja, ale dokud nerestartuju Windows, nepodívám se na nic. „Connection timed out“ mi nic moc neřekne, tak jsem zkusil namountovat sdílené adresáře přímo příkazem mount. Ten mě ale počastoval hláškou

mount error(12): Cannot allocate memory
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)

Hm. No tak díky, to jsem se toho dozvěděl. Nakonec mě ještě napadlo se ve Windows podívat do systémového protokolu událostí, a on tam na mě mává řádek

Server nemůže vyhradit paměť ze systémového nestránkovaného fondu, protože bylo dosaženo nastaveného limitu vyhrazení nestránkovaného fondu.
Zdroj: srv
ID události: 2017

Přeloženo do lidské řeči: „Už několik dní tu rozdávám soubory a přitom nejsem nastavenej jako fileserver. Seru na vás, jdu domů.“

Souborový server


Není tedy nic jednoduššího než nastavit systém tak, aby si myslel, že fileserver je, a paměť pro sdílení neomezoval. Od Windows Vista dále (tj. Samba verze 2.0 a vyšší) je možno nastavení provést změnou v registrech.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters]
"Size"=dword:00000003

Některé zdroje uvádí, že se hodí i zapnout „velkou“ cache session manageru, z důvodu kompatibility se stařičkými Windows XP, které problém s odpojováním také potkává, nicméně pokud na síti takového dinosaura nemáte, následující úpravu můžete s klidem přeskočit.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"LargeSystemCache"=dword:00000001

Pak už jen stačí restartovat systém a po restartu bude Samba sdílet, co jí budou síly stačit.