Bekijk de volledige versie : Auf Windows-Rechner zugreifen,Windows share mounten??
Hallo zusammen,
ich habe hier im Forum eine Anleitung zum mounten von Windows-Shares gefunden (Danke an newbiefan Link zum Thread (http://wl500g.info/showpost.php?p=72300&postcount=24)). Leider funktioniert die Anleitung nicht wirklich bei mir.
Folgendes Problem stellt sich:
Ich kann nicht von der Kommandozeile aus auf meinen Windowsrechner zugreifen.
In der Anleitung von newbiefan ist der Aufruf des Shareordners auf der Windows-Maschine über
//192.168.150.210/share
realisiert (So verstehe ich es zumindest).
Ich kann durch folgende Eingabe in der Kommandozeile:
//ip.des.windows.rechners/shareordner
leider nicht auf meinen Windows-Rechner zugreifen. Ich denke deshalb funktioniert auch der mount nicht.
Hier mein Aufruf:
[admin@Asus root]$ //192.168.1.21/Share
-sh: //192.168.1.21/Share: not found
Habe ich etwas falsch verstanden?
Wie kann auf share-ordner per Kommandozeile zugegriffen werden?
Danke schon mal für jeden Tipp....
Grüsse
Oliver
newbiefan
24-01-2008, 20:23
Haeufig muss/will man Netzwerkfreigaben am Router mounten. Dazu gibt es den Befehl smbmount. Wenn eine gueltige samba2 Installation in /opt vorhanden ist, ist dies fast ein Kinderspiel. Bei einer gueltigen Samba2 Installation ist der Befehl smbmount enthalten. Lediglich das Modul smbfs.o fehlt.
Dropbear muss installiert sein.
Ich gehe davon aus, dass vi, post-boot und dirs anlegen, winscp usw. bekannt sind.
Eine Referenzliste fuer vi (vi finde ich unmoeglich) findet man hier:
http://wl500gp.lima-city.de/freelinuxbooks/vi_ref.pdf
1.) Die Dateien smbfs und sambi von hier http://wl500g.info/showpost.php?p=72300&postcount=24 auf den PC laden.
2.) Am File sambi.txt die Extension .txt entfernen
3.) Den smbfs.zip file in einen Ordner extrahieren
4.) Am Router einloggen und den Ordner /tmp/harddisk/external anlegen
(Rechte vergeben nicht vergessen mit chmod 777 /tmp/harddisk/external)
5.) Am Router den Ordner /opt/modules anlegen
6.) Mit vi in der post-boot (unmittelbar vor rc.unslung) folgenden Eintrag machen:
#include access to any samba share with smbmount
if [ -e /opt/modules/smbfs.o ]
then
insmod /opt/modules/smbfs.o
fi
Noch nicht rebooten.....od. flashfs....
7.) Winscp starten und den script sambi in den ordner /opt/sbin kopieren
8.) Mit winscp das (vorher extrahierte) Modul smbfs.o in den Ordner /opt/modules kopieren.
9.) Am Router ein chmod +x /opt/sbin/sambi durchfuehren
10.) Mit vi den Script sambi anpassen auf die IP/Namen der Freigabe
(Im Script lautet diese: //192.168.150.210/alle)
11.) Nun das beruehmte flashfs save && flashfs commit && flashfs enable && reboot durchfuehren.
12.) Nach dem Neustart kann die Freigabe wie folgt gemountet werden:
'sambi' , danach findet man am Router die Freigabe in /tmp/harddisk/external (Wobei dieser Mountpoint beliebig geaendert werden kann)
Ein 'mount' zeigt nun die mit smbfs gemountete Freigabe an.
13.) Ein unmount erfolgt wieder mit dem Aufruf 'sambi'
(Der Script toggled die SMB-Freigabe)
Hinweis: Wers spartanisch mag, kann natuerlich auch die Befehle aus dem Script direkt verwenden, ich verwende diesen, weil ich mir die genaue Befehlssyntax nie und nimmer merken kann.
Sambi mounted die Freigabe, wenn die Freigabe nicht gemounted ist.
Wurde die Freigabe bereits gemounted, fuehrt Sambi ein unmount durch.
Ein weiterer Hinweis: manche wollen/muessen Passwoerter verwenden, bitte einfach fuer den Syntax googlen, es geht auch mit User/Password. Natuerlich muss dann Sambi angepasst werden.
Ich verwende den Script, um meine NAS an den Asus zu mounten und mit cron u. rsync eine Sicherung in der Nacht durchzufuehren.
Have fun...
Hallo,
ich habe das mal im HowTo gelinkt.
Vielen Dank an newbiefan
wengi
Hallo zusammen,
@newbiefan erstmal ein dickes DANKE für die Erläuterungen.
leider funktioniert das bei mir noch nicht so richtig....
Habe alles laut HowTo eingerichtet, leider ohne Erfolg.
Ich hänge mal mein "sambi", meine "post-boot", die ausgeführten Prozesse und den sambi-aufruf an, vielleicht entdeckt Ihr ja einen Fehler:
#!/bin/sh
dropbear
# test if USB disc has been attached
# if not - then insert needed modules
#
# Die folgenden 4 Rauten entfernen, wenn eine USB-Platte angeschlossen ist. Beim WL-HDD nicht notwendig, da IDE.
if [ ! -d /dev/discs ]
then
insmod scsi_mod && insmod sd_mod && insmod usb-storage && sleep 5s
fi
#Wait for /opt to mount
mount /dev/discs/disc0/part2 /opt
i=0
while [ $i -le 30 ]
do
if [ -d /opt/etc ]
then
break
fi
sleep 1
i=`expr $i + 1`
done
# Activate swap
swapon /dev/discs/disc0/part1
# Mount the rest
mount /dev/discs/disc0/part3 /tmp/harddisk
#include access to any samba share with smbmount
if [ -e /opt/modules/smbfs.o ]
then
insmod /opt/modules/smbfs.o
fi
# Run all active services - active means starts with S
/opt/etc/init.d/rc.unslung
#!/bin/sh
#script samba toogles the mount to umount and vice versa
if mount | grep /tmp/harddisk/olishare ; then #is already mounted
smbumount /tmp/harddisk/olishare
echo -n "/tmp/harddisk/olishare unmounted"
date
else # is not mounted
smbmount //192.168.1.22/Share /tmp/harddisk/olishare -o rw,guest
sleep 1
echo -n "SMB-share //192.168.1.22/Share mounted to /tmp/harddisk/olishare"
date
fi
Unter den Prozessen finde ich den smbmount, nur was hat er zu bedeuten?
[admin@Asus olishare]$ ps axf
PID TTY STAT TIME COMMAND
1 ? S 0:01 /sbin/init
2 ? S 0:00 [keventd]
3 ? RN 0:00 [ksoftirqd_CPU0]
4 ? S 0:00 [kswapd]
5 ? S 0:00 [bdflush]
6 ? S 0:00 [kupdated]
7 ? S 0:00 [mtdblockd]
59 ? S 0:00 telnetd
64 ? S 0:00 httpd vlan1
65 ? Ss 0:01 nas /tmp/nas.lan.conf /tmp/nas.lan.pid lan
69 ? S 0:00 klogd
72 ? S 0:00 dnsmasq
73 ? S 0:00 [khubd]
82 ? Ss 0:00 lpd
84 ? Ss 0:00 p9100d -f /dev/usb/lp0 0
87 ? Ss 0:00 waveservermain
89 ? Ss 0:00 rcamdmain
93 ? S 0:00 [usb-storage-0]
94 ? S 0:00 [scsi_eh_0]
114 ? Ss 0:00 pppd file /tmp/ppp/options.wan0
116 ? Ss 0:00 infosvr br0
117 ? Ss 0:00 watchdog
119 ? Zs 0:00 \_ [ntp] <defunct>
132 ? S 0:00 dropbear
237 ? Ss 0:02 \_ dropbear
239 pts/0 Ss 0:00 \_ -sh
385 pts/0 R+ 0:00 \_ ps axf
144 ? S 0:00 [kjournald]
155 ? S 0:00 [kjournald]
170 ? S 0:00 /sbin/syslogd -m 0 -O /opt/var/log/messages -S -l 7
175 ? Ss 0:00 /opt/sbin/cron
181 ? Ss 0:00 /opt/sbin/xinetd
188 ? S 0:00 /usr/sbin/busybox_httpd -c /opt/etc/httpd.conf -p 8008 -h /opt/share/www
196 ? Ss 0:00 /opt/sbin/smbd -D
198 ? Ss 0:00 /opt/sbin/nmbd -D
209 ? S 0:00 /opt/sbin/thttpd -C /opt/etc/thttpd.conf
235 ? S 0:00 stupid-ftpd
320 ? Ss 0:00 smbmount //192.168.1.22/Share /tmp/harddisk/olishare -o rw guest
Folgende Meldung erhalte ich beim Aufruf des sambi-scripts:
[admin@Asus olishare]$ /opt/sbin/sambi
319: session request to 192.168.1.22 failed (Called name not present)
319: session request to 192 failed (Called name not present)
SMB-share //192.168.1.22/Share mounted to /tmp/harddisk/olishareThu Jan 1 01:05:28 MEZ 1970
[admin@Asus olishare]$ ls -all
total 8
drwxrwxrwx 2 admin root 4096 Jan 2 1970 .
drwxr-xr-x 9 admin root 4096 Jan 2 1970 ..
Danke für die Hilfe
Oliver
newbiefan
25-01-2008, 17:57
Tja, eigentlich sieht es ja gut aus!
Wenn Du 'lsmod' eingibst, musst Du smbfs sehen, wenn das der Fall ist, musst Du nur in das Verzeichnis /tmp/harddisk/olishare wechseln. Dort stehen alle Daten, welche Du freigegeben hast. Achte darauf, dass zwischen gross und Kleinschreibung unterschieden wird - also der Namen der Freigabe im Windows, muss im Linux genau gleich sein!
Falls keine Daten zu finden sind, wuerde ich vor insmod smbfs ein sleep 10 geben, damit das OS etwas Zeit hat. Und nach insmod smbfs wuerde ich ebenfalls ein sleep 10 eingeben, damit das Modul ordentlich geladen werden kann. Zur Sicherheit kannst Du ja auch chmod 777 /opt/modules ausfuehren, obwohl das eigentlich nicht notwendig sein sollte.
Ein weiterer, kleiner Trick:
Aendere den Namen Sambi auf den Namen Deiner Windowsmaschine(n), so kannst Du fuer jede Maschine (PC) einen mount auf den Asus ganz einfach erreichen. Einzig die IP Adresse von jedem PC musst Du mit ethers auf statisch geben (geht auch im webif)
Hallo,
Danke für die weiteren Ausführungen....
Das Problem war folgendes:
1. Ich habe mich von der Meldung
[admin@Asus root]$ /opt/sbin/sambi
9036: session request to 192.168.1.22 failed (Called name not present)
9036: session request to 192 failed (Called name not present)
verwirren lassen, trotz dieser Meldung wird Share gemounted.
2. Ich konnte die Daten des Share-Ordner nicht finden da ich das sambi-script von diesem Ordner aus aufgerufen habe. Ohne den Ordner zu verlassen habe ich dann mit ls -all den Ordnerinhalt anzeigen lassen und nichts gesehen
[admin@Asus olishare]$ /opt/sbin/sambi
9092: session request to 192.168.1.22 failed (Called name not present)
9092: session request to 192 failed (Called name not present)
SMB-share //192.168.1.22/Share mounted to /tmp/harddisk/olishareThu Jan 1 20:21:19 MEZ 1970
[admin@Asus olishare]$ ls -all
total 8
drwxrwxrwx 2 admin root 4096 Jan 2 1970 .
drwxr-xr-x 9 admin root 4096 Jan 2 1970 ..
[admin@Asus olishare]$
Wechselt man nun zurück ins Stammverzeichnis oder einen anderen Ordner, ruft dann den mount-Ort wieder auf und lässt sich den Inhalt anzeigen, sind die Share-Daten vorhanden. Also nur ein Problem der Aktualisierung.
[admin@Asus olishare]$ cd
[admin@Asus root]$ cd /tmp/harddisk/olishare
[admin@Asus olishare]$ ls -all
total 1004
drwxr-xr-x 1 admin root 4096 Nov 23 2007 .
drwxr-xr-x 9 admin root 4096 Jan 2 1970 ..
drwxr-xr-x 1 admin root 4096 Jan 25 2008 1
-rwxr-xr-x 1 admin root 13468 Jul 11 2007 Pruef_Vorbereitung.cdr
-rwxr-xr-x 1 admin root 13454 Oct 24 2007 Uebung.cdr
-rwxr-xr-x 1 admin root 13466 Jul 11 2007 Vorlesung.cdr
-rwxr-xr-x 1 admin root 973476 Jan 23 2008 mathe.pdf
[admin@Asus olishare]$
Unter den mounts wird Share natürlich auch angezeigt :D
[admin@Asus olishare]$ mount
/dev/root on / type squashfs (ro)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
ramfs on /tmp type ramfs (rw)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/discs/disc0/part2 on /opt type ext3 (rw)
/dev/discs/disc0/part3 on /tmp/harddisk type ext3 (rw)
//192.168.1.22/Share on /tmp/harddisk/olishare type smbfs (rw,file_mode=0755,dir_mode=0755)
[admin@Asus olishare]$
@newbifan: Die Anleittung ist wirklich super.
Danke nochmals für die Hilfe.....
Grüsse
Oliver
newbiefan
26-01-2008, 17:43
Sollte Dich die Fehlermeldung stören, müsste diese relativ einfach zu beheben sein: die Fehlermeldung sagt ja eigentlich: ich kenne einen Benutzer mit dem Namen guest nicht.
Also einfach auf beiden Maschinen den passenden Benutzer anlegen, das hat aber auch Nachteile, denn dann muss man sich immer im Wind..fs extra anmelden.
Ev. auch den PC Namen in Hosts aufloesen.
Mich jedenfalls stört es nicht, ich lasse es.
Freut mich, dass es funzt....