Tak jsem dneska cely odpoledne resil, jak mezi Ubuntu 9.10 a Ubuntu 10.04 pretahnout data. Samba me zklamala, takze jsem se pokusil rozchodit NFS. Po nekolika hodinach googlovani a zkouseni vseho mozneho se zdarilo, takze se pokusim nejak shrnout co vsechno jsem delal,abych pripadnym zajemcum usnadnil trapeni. Ale nedokazu jeste posoudit co je zbytecne a co ne, nicmene funguje to. Velmi hezky navod (nefungujici, ale nazorny) je
zde.
Pro nejakou nazornost oznacim kompy "server" a "zalozni". Ze stroje "zalozni" chci kopirovat data na "server". (nebo si tam dosate A a B

).
Instalace:Na obou kompech nainstaluji baliky :
sudo apt-get install nfs-kernel-server nfs-commonNa serveru by "nemel" byt potreba nfs-common a na strane "zalozni" zase nfs-kernel-server, ale radsi jsem to nainstaloval na oboje. Nikdy clovek nevi, kdy bude chtit kopirovat data obracenym smerem.
Po nainstalovani by mela byt sluzba spustena, coz lze overit timto prikazem:
sudo /etc/init.d/nfs-kernel-server statusvystup je:
user@server:~$ nfsd running
v pripade ze nebezi, lze se ho pokusit nastartovat rucne:
sudo /etc/init.d/nfs-kernel-server start
Konfigurace serveru:Do /etc/exports se napise cesta k adresari, ktery se chce sdilet a za to se vypise list uzivatelu, kteri muzou adresar sdilet se serverem + nastaveni prav na sdileni. Napr. budu chtit sdilet adresar "shared", ktery je schovany v /home/user/shared/
gksudo gedit /etc/exports/etc/exports bude tedy vypadat takto
user@server:~$ cat /etc/exports
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
/home/user/shared 192.168.0.110(rw)
Zde jsem nastavil, ze adresar "shared" v adresari uzivatele "user" v ceste "/home/user/shared" se bude sdilet a muze ho sdilet s pocitacem s IP:192.168.0.110 (coz je IP adresa zalohy!) a prava ma nastaveny na rw = read-write. Muze zde byt napr. ro = read-only. Nad tim je par prikladu parametru co lze za rw/ro doplnit. Je videt, ze zde muze byt seznam pocitacu v radku s pravy pro jeden adresar.
Az seznam doplnite a ulozite, nezapomente spustit prikaz:
sudo exportfs -rabez nej mi to moc nefungovalo, ale nevim presne co to dela. Zrejme to neco nekam doplni. Tento prikaz nekdo na Ubuntu forums doporucoval spoustet vzdy pri zmene/editaci /etc/exports. Od ty doby co jsem to pouzival mi sit "zatim" beha.
Dale se zkontroluje jmeno pocitace jako hosta. Zkontrolujte /etc/hostname
user@server:~$ cat /etc/hostname
server
Melo by byt stejne jako je v terminalu videt jmeno pocitace za user@"jmeno pocitace=zde server":~$ Pokud neni, meli by jsme pouzivat misto server jmeno toho co vypise tento prikaz.
Nyni se zjisti, zdali mame jmeno "server" napsano i v /etc/hosts. Zajimave je, ze jsou zde pouze IP adresy z loopbacku, tudiz s nima nic nedelame!
Priklad: druhy radek je ten, co nas zajima
:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 server
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Pokud zde neni jmeno z /etc/hostname, zde v prikladu je to "server", prepiste jmeno na server (to co nahlasi /etc/hostname).
gksudo gedit /etc/hostsDo souboru /etc/hosts.allow se pisi IP adresy, ktere maji povoleny pristup do sdilenych adresaru. Do /etc/hosts.deny se pisi ty, ktere maji pristup odmitnute. Mozna toto ani neni potreba vyplnovat, ale ja tam mam:
cat /etc/hosts.allow
portmap: 192.168.0.128
coz je IP adresa pocitace "server". Zrejme by to mohlo byt pro zapis souboru na tento stroj, nebo pouze jen o pristup na tento stroj, presne nevim. V /etc/hosts.deny nic nemam...vse je zakomentovane. V komentarich u obou souboru je trochu vysvetleni.
To by snad na strane serveru, kam se bude kopirovat melo byt vse. Vypada to sice dlouze napsany, ale je to celkem jednoduchy a snazil jsem se vse komentovat. Jinak je to kratky. Mozna prace na max. 10 min.
Konfigurace zalohy:Na zaloze je tedy jiz nainstalovano nfs-kernel-server nfs-common, jak je popsano na zacatku.
Nezapomente nastavit hosts a hostname u zalohy.
Na zaloze se nekde vytvori adresar, napr. /home/user_zalohy/nfs, do ktereho se namapuje ze serveru adresar /home/user/shared a to takto:
sudo mount 192.168.0.128:/home/user/shared /home/user_zalohy/nfsIP adresa je "serveru":/cesta sdileneho adresare serveru a kam se to ma namapovat....stejne jako v asembleru ... co a kam.
cili obecne by se to dalo popsat
sudo mount "IP serveru":/"cesta sdileneho adresare na serveru" "cesta kam se to ma mountovat na zaloze".
Tot vse. Takto mi to funguje. Ted by melo byt pripojeno na zaloze v adresari /home/user_zalohy/nfs cely adresar /home/user/shared ze serveru.
Pro odpojeni lze pouzit
sudo umount /home/user_zalohy/nfs
Mozne problemy:1)
sudo: unable to resolve host "jmeno pocitace"Spatne doplnene jmeno pocitace v /etc/exports. Doplnit jmeno z /etc/hostname.
2)
mount.nfs: access denied by server while mounting 192.168.0.128:/home/user/sharedPravdepodobne chybi doplnit v /etc/hosts.allow povoleni pro pristup do systemu. viz vyse. Toto uz nevidim v terminalu, takze jsem si tipnul, ze to bude IP adresa serveru a ne zalohy.
Takze preji hodne stesti a trpelivosti...ale ve skutecnosti je to prace asi na 10 min.