[ Miroslav Zdrale @ 21.07.2001. 19:43 ] @
Kako da mount-ujem particije sa UFS na Linux. Tacnije u pitanju je hard disk na kojem je FreeBSD i treba da ga mountujem na Linux.
"mount -t ufs -o ufstype=44bsd /dev/hdb5 /mnt" ne radi, tj napravi socket fajl "/mnt" umesto da mountuje particiju na mnt. Sta da radim?
[ Vojislav Milunovic @ 21.07.2001. 21:51 ] @
Hmm cudno,ovako bi trebalo da radi. Znam da sam ja tako uspevao da mountujem FreeBSD pod Linuxom
[ m r v a @ 21.07.2001. 22:01 ] @
Citat:
Miroslav Zdrale je napisao:
ne radi, tj napravi socket fajl

whatta hella iz socket file ???
l;)
[ Miroslav Zdrale @ 21.07.2001. 22:24 ] @
Nece da radi majku mu:(

Socket file je onaj fajl cije ime navedes kao prvi prametar iz komande "file" i kao rezultat dobijes "socket" :) Evo ti primer:

#ls -la mysql.sock
srwxrwxrwx 1 mysql users 0 Jul 14 13:03 mysql.sock
#

#file mysql.sock
mysql.sock: socket
#

Nemam sad pristup toj masini na kojoj pokusavam da mountujem pa ne mogu dati tacan rezultat pokusaja mountovanja.

Pozdrav

[Ovu poruku je menjao Miroslav Zdrale dana 07-21-2001 u 10:34 PM GMT]
[ Vojislav Milunovic @ 22.07.2001. 00:43 ] @
Za sockete pogledaj malo u IPC ;o) Inace kako radi.Ti sa socket(AF_UNIX,SOCK_STREAM,0) napravis file u fs sa bind() i onda sa listen i accept cekas da se neki klijent nakaci i pocinje klasicna komunikacija kao izmedju servera i klijenta na mrezi (TCP/IP). Ovaj metod se koristi da bi se izbeglo 2 puta pisanje istog koda na razlicit nacin. Jedanput za net,drugi put za file(lokalni pristup,mysql,postgresql).Pa stoga nije lose ovo koristiti ,jel je veoma fleksibilno i pouzdano.Samo da nadjem na disku primer i odma cu da postujem ovde. (objasnjenje mozda stinks,ali tako je)
[ Vojislav Milunovic @ 22.07.2001. 00:51 ] @
Mozda je ovo vise za C/C++ ali evo:

klijent :

Code:

#include<sys/types.h>
#include<sys/socket.h>
#include<sys/un.h>
#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>

int main(){
 int sockfd,new_fd;
 char gg[1024];
 struct sockaddr_un sun;
 socklen_t len=sizeof(struct sockaddr_un);

 sockfd=socket(AF_UNIX,SOCK_STREAM,0);

 strcpy(sun.sun_path,"/tmp/root_ipc");
 sun.sun_family=AF_UNIX;
 connect(sockfd,(struct sockaddr *)&sun,len);
 write(sockfd,"I'm cool socketn",16);
 close(sockfd);



i server :

Code:

#include<sys/types.h>
#include<sys/socket.h>
#include<sys/un.h>
#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<signal.h>

void handler(int sig){
 unlink("/tmp/root_ipc");
 exit(0);
}

int main(){
 int sockfd,new_fd;
 char gg[1024];
 struct sockaddr_un sun;
 socklen_t len=sizeof(struct sockaddr_un);
 signal(SIGINT,handler);
  sockfd=socket(AF_UNIX,SOCK_STREAM,0);

 strcpy(sun.sun_path,"/tmp/root_ipc");
 sun.sun_family=AF_UNIX;

 bind(sockfd,(struct sockaddr *)&sun,len);
 chmod("/tmp/root_ipc",0777);
 listen(sockfd,10);
 while (1){
    new_fd=accept(sockfd,(struct sockaddr *)&sun,&len);
    read(new_fd,gg,1024);
    printf("%s",gg);
    close(new_fd);
 }
close(sockfd);
unlink("/tmp/root_ipc");
}
[ Miroslav Zdrale @ 22.07.2001. 22:53 ] @
U brate zar je tako komplikovano??:)
Ma ispostavilo se da je crk'o hard disk. Prilikom mountovanja hard diska iz "Fixit" moda dobijam poruku tipa "Invalid partition table" ili tako nesto. Ima li ikakve sanse da izvucem podatke sa tog hard diska?
[ Vojislav Milunovic @ 23.07.2001. 00:59 ] @
hmm,probaj iz FreeBSD da mountujes,ako nece odande e onda se izgleda sjebo fs;o(
[ Miroslav Zdrale @ 23.07.2001. 15:54 ] @
Pa sad nemam nijednu masinu pod FreeBSD-om:( Podigao sam FreeBSD sa Cd-a i ubacio "fixit" disketu i iz "fixit" moda pokusao da mountujem, ali ne ide. Iskreno govoreci od skora sam u BSD vodama i nisu mi bas najjasnije oznake za particije u FreeBSD-u. Stavio sam taj disk na prvu IDE granu kao master i on bi trebao biti ad0s1a ili tako nesto, zar ne? Ali problem je sto ja u dev direktorijumu imam ad0s1 (i ad0s2 , ad0s3 ...) a nema ad0s1a, ad0s1b ... Podaci koji su na tom disku su mi veoma vazni, ali kako im pristupiti?
[ tOwk @ 26.07.2001. 03:34 ] @
Najverovatnije ovo nije problem, ali moze se probati.

FreeBSD prakticno pravi svoje particije unutar MSDOS particije. Prema tome, ukoliko je DOS particija na kojoj ti se nalazi FreeBSD fajlsistem /dev/hdb2, a ti imas 10 DOS particija, najverovatnije treba da mountujes /dev/hdb11 (posle svih particija).

Naravno, ovo je sve pojednostavljeno i sa puno pretpostavki, sve zavisi od toga koliko imas primarnih particija, imas li extended i slicno. Linux pri ucitavanju treba da prijavi da je nasao na /dev/hdb2 (u mom primeru) jos particija: hdb11 i npr. hdb12. U kernelu mora biti ugradjena podrska za particije tog tipa (slices ili kako ih vec zovu).

Tek ukoliko se ispostavi da ni ovo nije resenje (a sumnjam da jeste, narocito posle pokusaja sa FreeBSD boot disketom), moze se pretpostaviti da nesto na disku ne valja. Medjutim, ni to nije kraj, probaj da nadjes alate za restauraciju UFS fajl sistema.

Toliko.
[ Vojislav Milunovic @ 26.07.2001. 14:12 ] @
Za BSD imas www.picobsd.org tj. BSD na FreeBSD 3.4 kernelu na jednoj disketi.
Sto se tice mountovanja slobodno probaj sa /dev/ad0s1 jer je uglavnom /dev/ad0s1a isto sto i /dev/ad0s1a (oba predstavljaju pocetak diska) tako da ne bi trebalo da imas problema sa montiranjem.
[ tOwk @ 27.07.2001. 00:29 ] @
Citat:
predator je napisao:
... jer je uglavnom /dev/ad0s1a isto sto i /dev/ad0s1a ...


slažem se, uglavnom je isto
[ Vojislav Milunovic @ 27.07.2001. 12:28 ] @
Ajde bas da kazem da je isto ;o) Oba predstavlju pocetak HDD ;o)