Temat: extroot i samba na tym samym dysku - brak możliwości zapisu

Hej,

Trochę się z tym namęczyłem, więc zapodaję opis, może się przyda komuś. Problem polega na tym, że dowolny katalog udostępniony z / raportuje 0 free space klientom samby. Dzieje się tak dlatego, że system operacyjny tak pokazuje. Miejsce teoretycznie jest na overlayu. Udziały typu //openwrt/share są tylko do odczytu. Co należy zrobić?

1. Napisać skrypt raportujący wielkość / i ilość wolnego miejsca w blokach. Np. /usr/sbin/rootfree.sh:

#!/bin/sh
df | grep /dev/sda1 | awk '{print $(NF-4),$(NF-2)}'

2. Zmodyfikować /etc/samba/smb.conf.template dopisując:

dfree command = /usr/sbin/rootfree.sh

3. Restart samby i powinno śmigać.

Generalnie dfree command można stosować per share. Jeśli jest taka potrzeba trzeba odpowiednio zmodyfikować skrypt startowy /etc/init.d/samba tak aby obsłużył nową dyrektywę.

pzdr.

Jacek

2

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

df | awk '/\/dev\/sda1/ {print $(NF-4),$(NF-2)}'

Niepotrzebnego wywołania grepa nie ma

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Proponowałbym dodać to do http://eko.one.pl/?p=openwrt-samba . Sam dość długo szukałem rozwiązania tego problemu.

4

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Done.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Próbowałem odpalać sambe zarówno jako user jak i share, niestety korzystając z opisu podanego przez Jacka nadal wyświetla mi niepoprawnie wolne miejsce na dysku sieciowym. Jeśli chodzi o modyfikację skryptu startowego /etc/init.d/samba, to w którym miejscu powinienem coś dodać i co, żeby obsłużyć dfree command? Jak ostatecznie powinien wyglądać skrypt raportujący wolne miejsce:
#!/bin/sh
df | grep /dev/sda1 | awk '{print $(NF-4),$(NF-2)}'
czy może
#!/bin/sh
df | awk '/\/dev\/sda1/ {print $(NF-4),$(NF-2)}' (nie ma tu przypadkiem za dużo slashów?)
Bardzo proszę o pomoc.

6

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

W żadnym. Dobrze napisał: w /etc/samba/smb.conf.template dodajesz "dfree command = /usr/sbin/rootfree.sh" a plik sobie robisz.
Obie konstrukcje są dobre, a slashów nie jest zadużo.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Problem rozwiązany. W pliku /etc/samba/smb.conf oprócz części [global] miałem również [dyski] i to właśnie w niej musiałem wrzucić "dfree command = /usr/sbin/rootfree.sh". Nie rozumiem też czemu plik /etc/samba/smb.conf.template nie jest wpisywany w całości do /etc/samba/smb.conf, ale zawsze można wpisać coś bezpośrednio do niego, więc to nie problem.

Pozdrawiam i życzę wszystkim wesołych świąt:)

8

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

smb.conf jest robiony na podstawie smb.conf.template przez skrypty startowe samby.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Jeszcze jedna sugestia, może komuś się przyda, banał, a walczyłem z tym parę h.

Jeśli ustawiacie dostęp do zasobów na poziomie użytkownika (user) to nadajcie prawa wykonywalności plikowi rootfree.sh dla danego użytkownika smb.

Miałem ustawione prawa 770 dla root root others. Okazuje się, że others to dla smb inni użytkownicy (co jest oczywistą oczywistością, ale będąc zalogowanym na roocie zapomina się o tym). Można też zrobić grupę, albo ustawić właściciela pliku użytkownika smb. Jakby nie było user smb musi mieć prawo wykonywalności pliku.

10 (edytowany przez darmach 2012-04-10 19:26:00)

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Witam

Niestety u mnie nadal nie działa poprawne wyświetlanie wolnej przestrzeni...

Ustawienia:

Skrypt:
df | awk '/\/dev\/sda2/ {print $(NF-4),$(NF-2)}'

Uprawnienia:
-r-xr-xr-x    1 root     root           49 Apr 10 19:04 /usr/sbin/rootfree.sh

smb.conf.template:
[global]
        netbios name = |NAME|
        workgroup = |WORKGROUP|
        server string = |DESCRIPTION|
        syslog = 10
        encrypt passwords = true
        passdb backend = smbpasswd
        obey pam restrictions = yes
        socket options = TCP_NODELAY
        unix charset = |CHARSET|
        preferred master = yes
        os level = 20
        security = share
        guest account = nobody
        invalid users = root
        smb passwd file = /etc/samba/smbpasswd
        interfaces = |INTERFACES|
        display charset = UTF8
        dos charset = CP852
        dfree command = /usr/sbin/rootfree.sh

smb.conf:
[global]
        netbios name = XXXXXXX
        workgroup = WORKGROUP
        server string = Samba on XXXXXX
        syslog = 10
        encrypt passwords = true
        passdb backend = smbpasswd
        obey pam restrictions = yes
        socket options = TCP_NODELAY
        unix charset = ISO-8859-1
        preferred master = yes
        os level = 20
        security = share
        guest account = nobody
        invalid users = root
        smb passwd file = /etc/samba/smbpasswd
        interfaces = 127.0.0.1/255.0.0.0 lo 192.168.1.1/255.255.255.0 br-lan
        display charset = UTF8
        dos charset = CP852
        dfree command = /usr/sbin/rootfree.sh
...

Może jeszcze coś nie tak?

11

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Wykonaj /usr/sbin/rootfree.sh i pokaż co wyświetlił.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12 (edytowany przez darmach 2012-04-10 19:59:40)

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Jedyny output to:
7433464 7412468

UPDATE:

Gdy próbuję cokolwiek tak skopiowac dostaję:
Error 0x80070037: The specified network resource or device is no longer available.

13

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Więc zwraca wyniki i pokazuje zajętość /dev/sda2.

A ten komunikat masz z windowsa, bo Ci ścieżkę sieciową gubi.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

14 (edytowany przez darmach 2012-04-10 20:12:17)

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Ciekawe że mogę np stworzyć tam plik i dopisac do niego dowolna ilosc tekstu.

I jeszcze jedno - czy wynik tego skryptu winda potrafi zinterpretować? Tj. powinna na zamontowanym share sambowym wyświetlić mi wolne miejsce/ zajętość?

Bo jeśli tak - to tego nie robi ^_^

UPDATE:
Sądzę że ścieżki nie gubi - ponieważ pomimo występowanie tamtego komunikatu przy kopiowaniu, jestem w stanie rownoczesnie tworzyc tam pliki i do nich zapisywac.

15

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Tak, te dwie liczby są zwracane przez sambę jako odpowiedź na zapytanie o pojemność/ilość wolnego. I windows potrafi to zinterpretować.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16 (edytowany przez darmach 2012-04-10 20:26:00)

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

U mnie widows nadal wyświetla 0 / 0.. Może jednak coś nie tak z konfiguracją?

Kolejne pytanie sie narodziło smile
Zeby samba się rozgłaszała wystarczy zainstalowanie samba3-nmbd i odpalenie jej? (Windows nadal nie 'listuje' smb na routerze)

W nmbd -i dostaję:

Netbios nameserver version 3.0.37 started.
Copyright Andrew Tridgell and the Samba Team 1992-2009
init_iconv: Conversion from UTF-16LE to CP852 not supported
init_iconv: Attempting to replace with conversion from UTF-16LE to ASCII
init_iconv: Conversion from ISO-8859-1 to CP852 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from UTF8 to CP852 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from CP852 to UTF-16LE not supported
init_iconv: Attempting to replace with conversion from ASCII to UTF-16LE
init_iconv: Conversion from CP852 to ISO-8859-1 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from CP852 to UTF8 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from CP852 to UTF8 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from CP852 to UTF-16BE not supported
init_iconv: Attempting to replace with conversion from ASCII to UTF-16BE
init_iconv: Conversion from UTF8 to CP852 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from UTF-16BE to CP852 not supported
init_iconv: Attempting to replace with conversion from UTF-16BE to ASCII
init_iconv: Conversion from UTF-16LE to CP852 not supported
init_iconv: Attempting to replace with conversion from UTF-16LE to ASCII
init_iconv: Conversion from ISO-8859-1 to CP852 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from UTF8 to CP852 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from CP852 to UTF-16LE not supported
init_iconv: Attempting to replace with conversion from ASCII to UTF-16LE
init_iconv: Conversion from CP852 to ISO-8859-1 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from CP852 to UTF8 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from CP852 to UTF8 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from CP852 to UTF-16BE not supported
init_iconv: Attempting to replace with conversion from ASCII to UTF-16BE
init_iconv: Conversion from UTF8 to CP852 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from UTF-16BE to CP852 not supported
init_iconv: Attempting to replace with conversion from UTF-16BE to ASCII
standard input is not a socket, assuming -D option
ERROR: nmbd is already running. File /var/run/nmbd.pid exists and process id 4171 is running.

17

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Tak, i w sumie nie masz wpływu na to, kiedy windows ją zechce zobaczyć. Rozgłasza się po prostu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

18

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Ok. Nie masz już żadnego pomysłu w zw. z tym podawaniem rozmiaru?

Btw. Czy mógłbyś się podzieliś swoimi doświadczeniami nt. wydajnosci samby na TL-MR3420 po n'ce? Nka dziala na 40 MHz pasmie, ile powinienem wycisnąć?

Odczyt z routera mam 24 Mbit, zapis 49 Mbit...

Inssider widzi siec jako 300 Mbit.

19

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

To zależy od same wifi, więc moje dane kompletnie nic Ci nie powiedzą. Taki porównanie nie ma po prostu sensu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

20

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

dodaj pelna sciezke z /overlay w smb.confie do udzialow i wszystko smiga, pokazuje ile miejsca wolnego i zapisuje bez problemu

linux, wordpress , moj blog smile www.8px.pl

21

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Ok - to pomogło!

Czyli jestem na etapie:
- Samba działa
- Wolne miejsce wykrywa
- O, nawet windows już zauważył że się rozgłasza smile

Pytanie:
- Jaka jest różnica pomiędzy /etc/samba/smb.conf a /etc/config/samba? Z którego korzysta demon? Wydaje mi się że ../samba jest zarządzany przez uci, a ../smb.conf jest generowany na podstawie poprzednika, przy uruchomieniu demona?

Pozostało:
- Doprowadzić prędkość do jakiegoś normalnego poziomu. Wg. mnie 25 Mbit, przy n to jest normalny poziom ,)

N-ka jest na kanale 1, rozszerzony na 40+. Na tych kanałach praktycznie nic u mnie nie ma w okolicy - wszyscy siedza na 7 wzwyż.

Jakieś sugestie? smile Po sambie mam ok 3 MB/s transfer, chyba nie za dobrze?

22

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

mi jedynie dziala na 40- (wrt160nl) wifi i tez slabe wyniki. po zmianie na 20 jakos to idzie.. jednak wieksze pliki i tak przewalam kablem. na wifi 4MB/s (odczyt)

linux, wordpress , moj blog smile www.8px.pl

23

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

/etc/samba/smb.conf to rzeczywisty plik konfiguracyjny (w openwrt jest to link do /tmp/smb.conf lub /tmp/etc/smb.conf w zależności od wersji). /etc/config/samba to plik konfiuracyjny samby dla openwrt, z niego m.in skrypty robią wspomniany już smb.conf.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

24

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Nie wiem, nie mogę sobie poradzić jakoś z tą SAMBĄ, ciągle mam w widoczne 0 bajtów wolnych z 4,00 MB.
Próbowałem już chyba wszystkiego, wrzuciłem nawet ten wpis dfree command = /usr/sbin/rootfree.sh gdzie tylko się da i niestety nadal nic. Mogę utworzyć plik np. test.txt, ale nie mogę w nim nic zapisać.
Co mam nie tak.
Dodam, że używam systemu Windows 7 Proffesional x64

Oto moje wyniki:

root@Gargoyle:~$ /usr/sbin/rootfree.sh
3758344 3205632

/etc/samba/smb.conf

[global]
    netbios name = openwrt 
    workgroup = WORKGROUP
    server string = OpenWrt serwer
    syslog = 10
    encrypt passwords = true
    passdb backend = smbpasswd
    obey pam restrictions = yes
    socket options = TCP_NODELAY SO_KEEPALIVE IPTOS_LOWDELAY
    unix charset = UTF-8
    preferred master = yes
    local master = yes
    domain master = yes
    os level = 20
    security = user
    null passwords = yes
    map to guest = Bad User
    guest account = root
    invalid users = root
    smb passwd file = /etc/samba/smbpasswd
    dfree command = /overlay/usr/sbin/rootfree.sh

[publiczny]
    path = /mnt/USB
    create mask = 0777
    directory mask = 0777
    read only = no
    guest ok = yes

[NAS]
    path = /mnt/NAS
    create mask = 0700
    directory mask = 0700
    read only = no
    guest ok = yes

/etc/samba/smb.conf.template

[global]
    netbios name = |NAME| 
    workgroup = |WORKGROUP|
    server string = |DESCRIPTION|
    syslog = 10
    encrypt passwords = true
    passdb backend = smbpasswd
    obey pam restrictions = yes
    socket options = TCP_NODELAY SO_KEEPALIVE IPTOS_LOWDELAY
    unix charset = UTF-8
    preferred master = yes
    local master = yes
    domain master = yes
    os level = 20
    security = user
    null passwords = yes
    map to guest = Bad User
    guest account = root
    invalid users = root
    smb passwd file = /etc/samba/smbpasswd
    dfree command = /overlay/usr/sbin/rootfree.sh

25

Odp: extroot i samba na tym samym dysku - brak możliwości zapisu

Ile widzisz wolnego we właściwościach zasobu na windowsie?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.