sobota, 17 maja 2008 
Start arrow FreeBSD arrow INNE arrow Linux -> FreeBSD
Menu BSD4u
FreeBSD
OpenBSD
NetBSD
Dla *BSD
FAQ BSD4u
Forum BSDGuru.org
Security Advisory
Licencje
Images BSD
Menu ogólne
Start
Aktualności
Download
Sondy
Szukaj
Linki
Książki
About BSD4u
Info
Team BSD4u
Regulamin
Kanał #BSD4u
Kontakt
Sondy
Co sądzisz o naszym nowym Projekcie, i jak oceniasz zmianę koncepcji Projektu?
 
Popularne
Kompilacja i konfigu...
SQUID - najpopularni...
Neostrada+ i modem ...
NATowanie czyli jak ...
Upgrade systemu
Samba - serwer plikó...
Apache (konfiguracja...
Praktyczne IPFW
MRTG - statystyki ru...
Neostrada na modemie...
CVSup - pomocny podc...
Postfix z autoryzacj...
System Portów (Kolek...
Postfix - bezpieczny...
Dummynet - dzielenie...
Top Download
File icon Postfix - "Krok po kroku" v1.06495
File icon Postfix - "Krok po kroku" v1.15937
File icon PPTPd - "Prosty i szybki VPN" v1.0b4823
File icon sdi.sh3827
File icon uEagle 1.0p12958
File icon named.sh2898
File icon uEagle 0.99b2861
File icon cs.sh2769
File icon uEagle 1.02751
File icon uEagle 1.12553
Ostatnie komentarze
transparent a virus...
Dodał: grzywka18
Dnia: 2008-05-13 11:19:58
hmm
Dodał: dzibi
Dnia: 2007-12-12 10:01:14
Bez tytułu
Dodał: grzywka18
Dnia: 2007-12-11 17:46:06
Bez tytułu
Dodał: termid
Dnia: 2007-05-09 18:01:11
Bez tytułu
Dodał: sarelo33
Dnia: 2006-12-30 23:50:14
Jest ok ale..
Dodał: theviant
Dnia: 2006-11-16 08:10:05
Google

Google


Newsletter
Zapisz się na nasz newsletter, jeżeli chcesz być na bieżąco informowany o aktualnościach..




Linux -> FreeBSD - czyli jak przej?? z Linuxa na FreeBSD Drukuj E-mail
Oceny: / 11
KiepskiBardzo dobry 
piątek, 19 marca 2004 - Napisał: Administrator (12171 odsłon)

Dokument opisuje jak zmienić system operacyjny z Linuksa (w zasadzie z dowolnej dystrybucji) na FreeBSD. Zdecydowana większość tekstu jest adekwatna także w przypadku migracji do innego systemu typu *BSD (OpenBSD, NetBSD itp.). Pisząc "zmienić" mam na myśli przeniesienie z Linuksa kont użytkowników, poczty, katalogów domowych, konfiguracji programów Sendmail, Apache, Bind, SSH. Przenoszenie pozostałych rzeczy w większości przypadków raczej nie ma sensu. Opisałem jednak co moim zdaniem można i warto jeszcze przenieść. Decyzję co do ostatecznej listy przenoszonych plików pozostawiam czytelnikowi. Postanowiłem napisać ten HOWTO ponieważ nigdzie nie znalazłem podobnej instrukcji. Co więcej - na moje pytania, zadawane na listach dyskusyjnych, czy automatyczna migracja z Linuksa na FreeBSD jest możliwa korespondenci odpowiadali negatywnie. Okazuje się jednak, iż z powodzeniem i bez większych trudności można zamienić Linuksa na FreeBSD przenosząc przy tym wszystkie istotne dane! Sprawdziłem to w praktyce migrując z systemu SuSE Linux 6.0 na FreeBSD 3.2 oraz z Debian/GNU Linux 2.1 na FreeBSD 3.3

Z niniejszego tekstu dowiesz się:

  • Jak przygotować system FreeBSD;
  • W jaki sposób podłączyć dysk linuksowy do FreeBSD;
  • Jak przenieść katalogi domowe i pocztę użytkowników;
  • Jak przenieść konta użytkowników;
  • Jak przenieść konfigurację popularnych programów;
  • Co można i warto jeszcze przenieść z Linuksa;

Zakładam, że masz już poprawnie zainstalowany system FreeBSD. Jak to zrobić opisuje drugi rozdział podręcznika FreeBSD Handbook.

1. Jak przygotować system FreeBSD
Aby móc przenieść dane z Linuksa do FreeBSD musimy mieć możliwość zamontowania dysku z systemem plików Ext2, którego standardowo używa Linux. W tym celu niezbędne jest odpowiednie skonfigurowanie jądra systemu, tak by FreeBSD odczytywał partycje Ext2. W tym celu do pliku konfiguracyjnego jądra systemu należy dopisać:

    options "EXT2FS"

Przypominam, iż plik ten znajduje się zazwyczaj w katalogu /usr/src/sys/i386/conf. Więcej informacji o konfiguracji i kompilacji jądra we FreeBSD dowiesz się z piątego rozdziału podręcznika FreeBSD Handbook lub z działu Jądro.

Niektóre systemy *BSD potrafią także uruchamiać binaria pochodzące z Linuxa. FreeBSD robi to przez tzw. Linux Emulator. Jest to szczegółowo opisane w 23 rozdziale podręcznika FreeBSD Handbook.

Jeśli chcesz uruchamiać programy z Linuksa wpisz w pliku /etc/rc.conf

    linux_enable=YES

W większości przypadków to zupełnie wystarcza. Jeśli jednak nadal masz problemy, dodaj w konfiguracji jądra opcję:

    options LINUX

2. Jak podłączyć dysk linuksowy do FreeBSD
Po skompilowaniu i zainstalowaniu jądra z aktywowaną obsługą systemu plików Ext2 można wyłączyć komputer i podłączyć do niego dysk linuksowy. Należy pamiętać by ustawić odpowiednio zworki w dyskach oraz by pierwszym (startowym) dyskiem był ten z systemem FreeBSD. Po uruchomieniu komputera logujemy się jako root i montujemy dysk linuksowy do katalogu /mnt

Przykład dla dysku SCSI:

    # mount -t ext2fs /dev/da1s1 /mnt

Przykład dla dysku IDE:

    # mount -t ext2fs /dev/ad1s1 /mnt

Oczywiście parametry polecenia mount mogą się u ciebie różnić. Jeśli np. system plików Ext2 na dysku linuksowym jest na drugiej partycji to należy podać /dev/ad1s2 (/dev/da1s2) itd. Więcej informacji na temat polecenia mount otrzymasz po wydaniu komendy:

    # man mount

3. Jak przenieść katalogi domowe i pocztę użytkowników
Przeniesienie poczty oraz katalogów domowych użytkowników wraz z plikami, które zawierają jest stosunkowo proste. Jedyną rzeczą, o której należy pamiętać jest zachowanie atrybutów katalogów i plików. Po przeniesieniu danych o użytkownikach (pkt 4) system FreeBSD automatycznie będzie wskazywał prawidłową grupę i właściciela przeniesionego katalogu / pliku.

Katalogi domowe użytkowników w obu systemach znajdują się w /home Aby dokonać przeniesienia całej struktury tego katalogu wraz z odpowiednimi atrybutami plików należy wydać komendę:

    # cp -R -p /mnt/home /home

Cierpliwie czekamy (czas zależy od ilości przenoszonych danych)...

Tak przeniesione katalogi nie nadają się jeszcze do użytku! System zamiast identyfikatora właściciela pliku (login) oraz nazwy grupy będzie pokazywał wartości numeryczne (UID oraz GID). Powodem tego jest fakt, iż FreeBSD nie ma jeszcze wystarczających informacji o właścicielach katalogu / pliku. Należy przenieść dane o użytkownikach czyli wykonać pkt 4.

W podobny sposób przenosimy pocztę. Należy pamiętać o dwóch rzeczach - zachowaniu atrybutów, tak jak w przypadku katalogów domowych, oraz różnym miejscu składowania poczty w obu systemach:

Linuks - /var/spool/mail
FreeBSD - /var/mail

Aby prawidłowo przenieść pocztę użytkowników należy wydać komendę:

    # cp -p /mnt/var/spool/mail /var/mail

4. Jak przenieść konta użytkowników
Najważniejszym i chyba najtrudniejszym etapem w procesie migracji jest przenoszenie danych o użytkownikach, w szczególności identyfikatorów (login), haseł itp. Problem wynika z faktu, iż FreeBSD trzyma informacje o użytkownikach w innych plikach niż Linuks. Są one wzajemnie niekompatybilne więc nie da się ich bezpośrednio skopiować.

Standardowo, Linuks trzyma dane o użytkownikach w dwóch plikach tekstowych:

/etc/passwd - zawiera m.in. login, UID, GID, pole GECOS (informacje o użytkowniku np. imię i nazwisko)
/etc/shadow - zawiera m.in. zakodowane hasło, dane o dacie ważności konta i hasła

Istnieją wersje Linuksa, które nie mają zainstalowane tzw. shadow passwords i trzymają wszystkie dane w jednym pliku /etc/passwd Jest to bardzo niebezpieczne! Ponieważ nie znam obecnie praktycznych instalacji Linuksa bez shadow passwords przypadek ten pominę.

FreeBSD posługuje się dwoma plikami tekstowymi:

/etc/passwd - zawiera m.in. login, UID, GID, pole GECOS (informacje o użytkowniku np. imię i nazwisko)
/etc/master.passwd - zawiera dodatkowo m.in. zakodowane hasło, dane o dacie ważności konta i hasła

oraz plikiem binarnym:

/etc/pwd.db

Jak zatem dokonać odpowiednich konwersji? Istnieje kilka metod, z których opiszę moim zdaniem najprostszą (sprawdziłem w praktyce). Przed konwersją należy zaopatrzyć się w pakiet John the Ripper -- Password Cracker. Jest bezpłatnie dostępny pod adresem http://www.false.com/security/john/. Do ściągnięcia są wersje dla wszystkich popularnych systemów (w tym Windows 9x/NT oraz Linux i FreeBSD). Z całego pakietu interesuje nas jedynie program unshadow (unshadow.exe w wersji dla Windows).

Tworzymy jakiś tymczasowy katalog i przechodzimy tam, np.

    # mkdir /root/cnv
    # cd /root/cnv

Kopiujemy tam pliki passwd i shadow pochodzące z systemu Linux, np.

    # cp /mnt/etc/passwd /root/cnv
    # cp /mnt/etc/shadow /root/cnv

Dokonujemy konwersji do jednego, wspólnego pliku używając programu unshadow:

    # unshadow passwd shadow > linux_passwd

Wynik działania programu unshadow znajdzie się w pliku linux_passwd. Proponuję wyedytować ten plik (vi linux_passwd) usuwając wszystkie konta systemowe (tzn. takie, które nie należą do zwykłych użytkowników np. root, daemon, nobody itp.). Zazwyczaj konta systemowe posiadają nr UID poniżej 1000 i znajdują się na początku pliku. Operacja ta jest bardzo ważna ponieważ pozwala uniknąć powtarzania się identyfikatorów w obu systemach. Ponadto konta systemowe we FreeBSD nie pokrywają się z tymi w Linuksie

Spreparowany według powyższych wskazówek plik linux_passwd nie nadaje się jeszcze do użytku przez FreeBSD. Należy uzupełnić prakujące pola dodając "::0:0" pomiędzy polem 4 a 7. Można to zrobić automatycznie, posługując się programem awk:

    # cat linux_passwd | awk -F : '{printf("%s:%s:%s:%s::0:0:%s:%s:%s ", \
        $1, $2,$3,$4,$5,$6,$7); }' > bsd_passwd

Do końca konwersji pozostają nam jeszcze dwie czynności. Pierwszą jest dołączenie pliku bsd_passwd do /etc/master.passwd Zanim to zrobimy warto wykonać kopię plików /etc/master.passwd oraz /etc/passwd by móc powrócić do stanu wyjściowego w przypadku niepowodzenia:

    # cp /etc/master.passwd /etc/master.passwd.OK
    # cp /etc/passwd /etc/passwd.OK
    # cat bsd_passwd >> /etc/master.passwd

Ostatnią czynnością jest wygenerowanie nowych plików /etc/passwd oraz /etc/pwd.db Służy do tego znajdujące się we FreeBSD polecenie pwd_mkdb:

    # pwd_mkdb /etc/master.passwd

To wszystko! Aby sprawdzić poprawność konwersji należy zalogować się na konto jednego z przeniesionych użytkowników. Jeśli uda się to zrobić to oznacza, iż najprawdopodobniej migracja przebiegła pomyślnie.

5. Jak przenieść konfigurację popularnych programów
Ponieważ w obu systemach pracują praktycznie te same programy, można się pokusić o przeniesienie ich konfiguracji. Uwolni nas to, przynajmniej częściowo, od żmudnego konfigurowania systemu.

Zasada ogólna
Przenoszenie konfiguracji oprogramowania w tych samych lub bardzo zbliżonych wersjach jest dość bezpieczne. Można zatem zastosować następującą procedurę:

  • Zachowujemy oryginalny plik konfiguracyjny pod zmienionym rozszerzeniem (np. httpd.conf.org) WAŻNE!;

  • Kopiujemy plik konfiguracyjny z Linuksa;

  • Przeglądamy pliki pod względem ewentualnych różnic. Głównie poprawiamy ścieżki;

Należy szczególnie zwrócić uwagę na dwie rzeczy:

  • Katalogi wskazywane w plikach konfiguracyjnych mogą (i są) często inne w Linuksie i FreeBSD;
  • Nazwy użytkowników pod którymi pracują poszczególne programy mogą się różnić choć jest tak niezbyt często;

Według podanej procedury można stosunkowo łatwo przenieść konfigurację podstawowych programów - Sendmail, Apache, Bind, SSH - które są praktycznie identyczne z używanymi w Linuksie. Główne różnice to umiejscowienie programów, ich konfiguracji i danych, które używają.

Jeśli natomiast wersje danego programu w obu systemach znacznie się różnią (np. bind 4.x i bind 8.x) to oznacza najczęściej, że i pliki konfiguracyjne uległy znaczym zmianom. Nie polecam w takim przypadku ich przenoszenia. Bezpieczniej będzie skonfigurować program od nowa.

6. Co można i warto jeszcze przenieść
Przychodzą mi do głowy jeszcze dwie rzeczy, które warto przenieść. Są to logi oraz dane poszczególnych aplikacji.

W przypadku logów można je śmiało przenosić bez jakichkolwiek zmian w plikach. Pamiętać jedynie należy o wgraniu logu do właściwego katalogu ponieważ występują tu różnice zarówno między dystrybucjami Linuksa jak i Linuksem a FreeBSD.

Dane aplikacji, które warto przenieść to np. zawartość serwera WWW (strony WWW, aplikacje w PERL'u z cgi-bin) czy pliki wystawiane przez serwer FTP (anonymous ftp). Podobnie jak we wcześniejszych przypadkach pamiętać należy o wgraniu plików do właściwego katalogu ponieważ występują tu różnice zarówno między dystrybucjami Linuksa jak i Linuksem a FreeBSD.


Autor: Piotr Wasilewski
Wasilewski(at)Jezus.pl

Oryginał (najnowsza wersja) dokumentu znajduje się pod adresem:
http://Jezus.pl/wasilewski/linux-freebsd-HOWTO.html

Data ukazania się artykułu: ???
Ostatnia aktualizacja: 25.09.1999r.

Komentarze:

Tylko zarejestrowani użytkownicy mogą pisać komentarze.
Prosze zaloguj się i dodaj komentarz.

Powered by AkoComment!

Ostatnio aktualizowany ( sobota, 22 października 2005 )

« wstecz   dalej »
Ciekawostki
Chcesz znaleźć konkretny port, po prostu wpisz w /usr/ports, albo w podkatalogach:
"make search port="
lub
"make search key=""
Pobierz
FreeBSD
OpenBSD
NetBSD
DragonFlyBSD
PC-BSD
FreeSBIE LiveCD
4.4BSD Lite
Reklama M3M.pl
Domeny
Książki

FreeBSD. Księga eksperta

FreeBSD. Księga eksperta

Cena: 125.00 zł
Dodaj do koszyka


FreeBSD. Podstawy administracji systemem

FreebBSD

Cena: 64.90 zł
Dodaj do koszyka


OpenBSD. Podstawy administracji systemem

OpenBSD

Cena: 84.90 zł
Dodaj do koszyka


OpenBSD. Tworzenie firewalla za pomocą PF

Firewall PF

Cena: 44.90 zł
Dodaj do koszyka

Licznik odwiedzin
Odwiedziło już nas
2179584
Internautów od lutego 2003

Korzystamy ze statysyk