Mirek Rogoziński

linux, opensuse, nvidia, fglrx, open source, internet, windows

Archive for the ‘tips & tricks’ Category

Konwertowanie ext3 do ext4

Przed przystąpieniem do konwersji systemu plików ext3 do ext4 zakładam, że zapoznałeś się z moim poprzednim wpisem na temat obsługi ext4. Przypominam, że ext4 aktualnie znajduje się w fazie rozwojowej, więc używanie tego systemu plików w celach produkcyjnych, może być problematyczne. Ale nie musi;) Konwersja systemu plików ext3 jest bardzo prosta i sprowadza się do wydania polecenia:

tune2fs -O extents -E test_fs /dev/nazwa_dysku

Teraz wystarczy zamontować dysk jako ext4dev. Jeśli chcemy np. skonwertować system plików na partycji /, to należy jeszcze zmienić wpis w pliku /etc/fstab, tak żeby system montował partycję / jako ext4dev. Gdy o tym zapomnimy, system zamontuje ją jako ext3.

Jedynym mankamentem konwertowania ext3 do ext4 jest to, że tylko nowo utworzone pliki będą w pełni wykorzystywać możliwości ext4. Jeśli chcemy używać w pełni ext4 na partycji / należałoby zainstalować świeży system na nie. Niestety aktualnie instalator openSUSE 11.0 i 11.1 nie zawiera wsparcia dla ext4. Jakkolwiek możemy to obejść. Wystarczy uruchomić instalator z LiveCD i przeprowadzić wstępną instalację pakietów i instalację bootloadera. Następnie przy użyciu RescueCD kopiujemy zawartość przyszłej partycji / na jakąś inną partycję i formatujemy / na ext4dev. Potem kopiujemy z powrotem zawartość partycji i przy pomocy narzędzia chroot dokonujemy modyfikacji w systemie (opisałem je w poprzednim poście). Teraz wystarczy ponownie uruchomić system i dokończyć proces instalacji. Jeśli znajdę trochę więcej czasu, to postaram się opisać cały proces instalacji openSUSE na ext4.

openSUSE i ext4dev

W tym dwu częściowym artykule opiszę w jaki sposób używać nowy system plików ext4dev. W pierwszej części opiszę w jaki sposób uruchamia się obsługę ext4dev i jak utworzyć system plików ext4dev, a w następnej części opiszę sposób konwertowania istniejącego systemu plików ext3 do ext4dev, oraz jak przystosować nasz system do startu z tego systemu plików.

Uruchamianie obsługi ext4dev
W domyślnych jądrach openSUSE 11.0 i 11.1 Factory obsługa ext4dev została dodana. Jeśli dysponujesz jakimś niestandardowym jądrem, będziesz zmuszony do ręcznego skonfigurowania i kompilacji jądra. Jeśli używasz standardowego repozytorium, jądro 2.6.25.11-0.1-default na dzień dzisiejszy posiada wsparcie dla ext4dev. Jedyne co teraz należy jeszcze zainstalować to e2fsprogs. Niestety pakiet dostępny z repozytorium nie obsługuje ext4dev (przy próbie tworzenia systemu plików pojawia się błąd). Dlatego pobieramy kod źródłowy stąd i kompilujemy:

# configure && make && make install

Na koniec pozostaje nam załadować moduł do jądra poleceniem:

# modprobe ext4dev

Jeśli chcemy, żeby moduł był ładowany na starcie, uruchamiamy YaST i przechodzimy do sekcji System / Edytor /etc/sysconfig i w System / Initrd_modules na końcu dopisujemy ext4dev. Teraz pozostaje wydać polecenie:

# mkinitrd

i już mamy uruchomioną obsługę ext4dev w naszym systemie.

Tworzenie i montowanie systemu plików ext4dev
Tworzenie i montowanie systemu plików ext4dev jest identyczne jak w przypadku innych systemów plików. Żeby stworzyć system plików ext4dev wydajemy polecenie:

# mke2fs -t ext4dev /dev/nazwa_dysku

Partycję montujemy poleceniem:

# mount -t ext4dev /dev/nazwa_dysku /punkt_montowania

Podstawy używania programu zypper

Dzisiaj chciałbym przedstawić tym wszystkim, którzy jeszcze go nie znają, program zypper. Zypper służy do zarządzania pakietami i repozytoriami pakietów spod konsoli. Przy jego pomocy, możemy łatwo i szybko dodawać i usuwać repozytoria, wyszukiwać oraz instalować/aktualizować/usuwać pakiety i wzorce.

Wyszukiwanie i wyświetlanie informacji o pakietach

Pakiety wyszukujemy poleceniem (symbolami * i ? możemy zastąpić znaki i ciągi):

linux-dvgz:/home/mirek # zypper se mc-*
Reading installed packages...
S | Name | Summary | Type
--+---------+--------------------------+--------
i | mc-lang | Languages for package mc | package

Możemy także wyszukiwać wzorce:

linux-dvgz:/home/mirek # zypper se -t pattern app*
Reading installed packages...
S | Name | Summary | Type
--+--------------+-----------------+--------
| apparmor | Novell AppArmor | pattern

Żeby wyświetlić krótki opis pakietu, wydajemy polecenie:

linux-dvgz:/home/mirek # zypper if mc-lang
Reading installed packages...
Information for package mc-lang:
Repository: Repozytorium główne (OSS)
Name: mc-lang
Version: 4.6.2.pre1-71.1
Arch: i586
Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany
Installed: Yes
Status: up-to-date
Installed Size: 2,1 M
Summary: Languages for package mc
Description:
Provides translations to the package mc

Żeby otrzymać szczegółowe informacje na temat wyszukiwane pakietu, wpisujemy:

linux-dvgz:/home/mirek # zypper se -s mc-*
Reading installed packages...
S | Name | Type | Version | Arch | Repository
--+---------+---------+-----------------+------+--------------------------
i | mc-lang | package | 4.6.2.pre1-71.1 | i586 | Repozytorium główne (OSS)
i | mc-lang | package | 4.6.2.pre1-71.1 | i586 | openSUSE-11.0-FTP 11.0

Instalacja i usuwanie pakietów i wzorców

Najprostszy sposobem instalacji i usuwania pakietów jest:

linux-dvgz:/home/mirek # zypper in mc
linux-dvgz:/home/mirek # zypper rm mc

Tak jak w przypadku wyszukiwania, możemy zastąpić niektóre znaki lub ciągi odpowiednimi symbolami:

linux-dvgz:/home/mirek # zypper in mc?lang
Reading installed packages...
'mc-lang' is already installed.
Nothing to do.
linux-dvgz:/home/mirek # zypper rm mc*
Reading installed packages...
The following packages are going to be REMOVED:
mc-lang mc
After the operation, 5,2 M will be freed.
Continue? [YES/no]:

Instalację i usuwanie pakietów możemy również łączyć:

linux-dvgz:/home/mirek # zypper in mc -pidgin +firefox
Reading installed packages...
'mc' is already installed.
'MozillaFirefox' providing 'firefox' is already installed.
The following package is going to be REMOVED:
pidgin
After the operation, 2,9 M will be freed.
Continue? [Y/n/p/?]: n

Czasem zdarza się, że jakiś pakiet nie chce się zainstalować. Możemy go do tego zmusić używając przełącznika –force (-f). Jednak należy pamiętać, żeby używać –force tylko w przypadku reinstalacji jakiegoś pakietu, a nie instalacji pakietu, który ma niespełnione zależności:

linux-dvgz:/home/mirek # zypper in -f mc
Reading installed packages...
The following package is going to be reinstalled:
mc
Overall download size: 1,0 M. No additional space will be used or freed after the operation.
Continue? [YES/no]: no

Przy pomocy zyppera, możemy również zainstalować pojedyncze pakiety rpm z dysku lokalnego, lub z jakiegoś adresu http:

linux-dvgz:/home/mirek # zypper in Temp/hardinfo-0.4.2.3-7.1.i586.rpm
Reading installed packages...
The following package is going to be upgraded:
hardinfo
Overall download size: 284,0 K. No additional space will be used or freed after the operation.
Continue? [YES/no]: YES
Downloading package hardinfo-0.4.2.3-7.1.i586 (1/1), 284,0 K (607,0 K unpacked)
Installing: hardinfo-0.4.2.3-7.1 [done]

linux-dvgz:/home/mirek # zypper in http://download.opensuse.org/repositories/home:/keypl/openSUSE_11.0/i586/hardinfo-0.4.2.3-7.1.i586.rpm
Reading installed packages...
'hardinfo' providing 'hardinfo=0.4.2.3-7.1' is already installed.
Nothing to do.

Możemy zainstalować także znane z YaSTa wzorce. Żeby wyświetlić listę wzorców, wydajemy polecenie:

linux-dvgz:/home/mirek # zypper pt
Reading installed packages...
S | Name | Version | Repository | Dependency
--+----------------------+------------+-------------------------------+-----------
| apparmor | 11.0-110.3 | openSUSE-11.0-FTP 11.0 |
| apparmor | 11.0-110.3 | Repozytorium główne (OSS) |
i | apparmor_opt | 11.0-110.3 | openSUSE-11.0-FTP 11.0 |

Teraz możemy zainstalować wybrany wzorzec poleceniem:

linux-dvgz:/home/mirek # zypper in -t pattern apparmor
Reading installed packages...
The following NEW package is going to be installed:
apparmor

Bardzo przydatną opcją jest instalacji potrzebnych bibliotek i źródeł do zbudowania pakietu:

linux-dvgz:/home/mirek # zypper si -d kernel-pae
Reading installed packages...
The following NEW package is going to be installed:
makedumpfile
The following source package is going to be installed:
kernel-pae
Overall download size: 674,0 K. After the operation, additional 52,7 M will be used.
Continue? [YES/no]: no

Na koniec pozostaje aktualizowanie pakietów. Poleceniem:

linux-dvgz:/home/mirek # zypper up

zainstalujemy tylko łatki programów. Natomiast polecenie:

linux-dvgz:/home/mirek # zypper dup

służy do aktualizacji wszystkich pakietów do nowsze wersji, bądź aktualizacji całego systemu do wyższej wersji.

Zarządzanie repozytoriami pakietów

Tak jak wspomniałem, zypper umożliwia także zarządzanie repozytoriami pakietów. Poleceniem:

linux-dvgz:/home/mirek # zypper lr
uzyskamy listę wszystkich repozytoriów, jakie dodaliśmy, z wyszczególnieniem czy są uruchomione i odświeżane.

Żeby dodać repozytorium, wydajemy polecenie:

linux-dvgz:/home/mirek # zypper ar http://download.opensuse.org/repositories/home:/keypl/ pakiety
Dodawanie repozytorium "pakiety" [done]
Repository 'pakiety' successfully added
Enabled: Yes
Autorefresh: No
URI: http://download.opensuse.org/repositories/home:/keypl/

Usuwanie repozytorium odbywa się w podobny sposób:

linux-dvgz:/home/mirek # zypper rr pakiety
Usuwanie repozytorium 'pakiety' [done]
Repository 'pakiety' has been removed.

Zamiast usuwać repozytorium, możemy je po prostu zablokować:

linux-dvgz:/home/mirek # zypper mr -d pakiety
Repository 'pakiety' has been sucessfully disabled.

Możemy także ustawić auto odświeżanie repozytorium:

linux-dvgz:/home/mirek # zypper mr -r pakiety
Autorefresh has been enabled for repository 'pakiety'.
linux-dvgz:/home/mirek # zypper mr -R pakiety
Autorefresh has been disabled for repository 'pakiety'.

Tyle z podstaw, które na pewno przydadzą się każdemu użytkownikowi openSUSE.

Wyłączenie Touchpada w Linuksie

Wyłączenie Touchpada, który w czasie pracy z myszką potrafi mocno przeszkadzać, jest bardzo proste. Niestety opcja wyłączająca dostępna w Sax2 nie chce działać (przynajmniej u mnie). Żeby wyłączyć Touchpada ręcznie, należy wyedytować jako root plik /etc/X11/xorg.conf. Wyszykujemy tam sekcję “InputDevice”, w której będzie “Driver ’synaptics’”. Następnie dodajemy wpis “Option ‘TouchpadOff’ ‘1′”. Poniżej wklejam moją sekcję “InputDevice” z wyłączonym Touchpadem:

Section "InputDevice"
Identifier "Mouse[3]"
Driver "synaptics"
Option "Buttons" "5"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "on"
Option "HorizScrollDelta" "0"
Option "InputFashion" "Mouse"
Option "Name" "Synaptics;Touchpad"
Option "Protocol" "explorerps/2"
Option "SHMConfig" "on"
Option "TouchpadOff" "1"
Option "Vendor" "Sysp"
Option "ZAxisMapping" "4 5"
EndSection

openSUSE i odciski (naszych) palców

Autoryzacja użytkowników przy użyciu odcisku palców jest prostym, wygodnym i skutecznym rozwiązaniem. Przy małym nakładzie pracy, możemy ułatwić sobie logowanie i używanie polecenia “su” pod Linuksem. Jeśli posiadamy wbudowany czytnik, system w czasie instalacji wykryje go i sam zainstaluje potrzebne sterowniki i oprogramowanie. W innym przypadku należy ręcznie zainstalować pakiety libthinkfinger, pam_thinkfinger i yast2-fingerprint-reader.
finger.png
Teraz możemy przejść do konfiguracji. Uruchamiamy YaSTa i w sekcji “Sprzęt” wybieramy “Czytnik linii papilarnych”. Następnie zaznaczamy “Używaj czytnika linii papilarnych”. Wciskamy zakończ i przechodzimy do sekcji “Użytkownicy i zabezpieczenia”. Wciskami “Zarządzanie użytkownikami” i edytujemy wybranego użytkownika. Przechodzimy do zakładki “Wtyczki”. Tam powinniśmy zobaczyć “Ustaw odcisk palca użytkownika” (jeśli nie ma, należy dodać) i klikamy “Uruchom”. Pojawi się okno z prośbą o zeskanowanie odcisku, więc skanujemy palec starając się otrzymać trzy udane próby i akceptujemy. Od tego momentu dany użytkownik może logować się używając swojego odcisku palca (lub hasła).

finger1.png
Niestete, taki sposób autoryzacji nie jest póki co obsługiwany przez KDE i KDM. Jeśli używamy KDE i zależy nam na logowaniu przy użyciu odcisków, musimy KDM zastąpić GDMem. Dla mnie wystarczające okazało się logowanie w trybie tekstowym i przy użyciu “su”.