Instalacja Ubuntu przez sieć LAN

Wpis zamieszczony o 13:20:01, 04 marca 2007 - 13 komentarzy


Kupiłem sobie wczoraj nową zabaweczkę, Toshibę Portégé R111, serwowaną tylko na rynek japoński pod nazwą Dynabook S2120. Jest to zubożona o czytnik linii papilarnych wersja Toshiby Portégé R200. Moje Maleństwo :-). Pojawił się jednak problem - takie wymiary (mniejsza od kartki A4), taka waga(1 kg) i taki czas działania (6-8 godzin) wymusiły brak napędu CD-ROM. Instalację systemu musimy zatem przeprowadzić poprzez sieć LAN


1.Co nam będzie potrzebne?

2.Przygotowanie hosta i repozytorium

Instalujemy potrzebne oprogramowanie:

$ sudo apt-get install tftpd-hpa tftp-hpa
Modyfikujemy plik konfiguracyjny:
$ sudo nano /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /home/pxetero/"

Dodajemy użytkownika i nadajemy mu odpowiednie prawa:
$ sudo adduser pxetero/
$ whoami
$ sudo chown pxetero.(wynik powyższej komendy) /home/pxetero/
$ sudo chmod g+rwx /home/pxetero
Kopiujemy teraz wszystkie pliki z katalogu /install/netboot/ znajdującego się na płycie AlternateCD do katalogu /home/pxetero. Zalecam użycie narzędzia mc!! W innym przypadku dostaniemy piekło dowiązań symbolicznych i zapewne skończą nam się wolne i-węzły na dysku. Ostatecznie struktura katalogu /home/pxetero ma wyglądać tak:

drwxrwx--x  5 pxetero night     4096 2007-03-03 12:11 .
drwxr-xr-x  7 root    root      4096 2007-03-03 11:45 ..
-rw-r--r--  1 night   night   156043 2007-03-03 11:47 boot.img.gz
lrwxrwxrwx  1 pxetero pxetero     26 2007-03-03 11:45 Examples -> /usr/share/example-content
drwxr-xr-x 10 root    root      4096 2007-03-03 10:51 kubuntu
lrwxrwxrwx  1 night   night       32 2007-03-03 11:48 pxelinux.0 -> ubuntu-installer/i386/pxelinux.0
lrwxrwxrwx  1 night   night       34 2007-03-03 11:48 pxelinux.cfg -> ubuntu-installer/i386/pxelinux.cfg
dr-xr-xr-x  3 night   night     4096 2006-12-19 12:34 ubuntu-installer

Widoczny tutaj katalog kubuntu musimy stworzyć sami, a następnie skopiować do niego wszystkie pliki z płyty AlternateCD. Wyglądać ma to tak:

[12:59:48] night@orion:/home/pxetero/kubuntu$ ls
dists  doc  install  isolinux  pics  pool  preseed  README.diskdefines  ubuntu

Taki sam katalog tworzymy na głównej partycji dysku, z dokładnie taką samą zawartością. Robimy to w celu bezpieczeństwa naszej kopii repozytorium. Możemy stworzyć dowiązanie symboliczne, choć polecam powielenie danych w katalogu /kubuntu.
Teraz serwer Apache:
$ sudo apt-get install apache
I dowiązania symboliczne
$ cd /var/www
$ ln -s /kubuntu
Zajmijmy się serwerem DHCP.
sudo apt-get install dhcp3-server
Zmodyfikujmy jego plik konfiguracyjny:
$ sudo nano -w /etc/dhcp*/dhcpd.conf

ddns-update-style none;
option domain-name "cos_tam.com";
option domain-name-servers 192.168.1.1, 194.204.159.1;
default-lease-time 86400;
max-lease-time 86400;
authoritative;
log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.2 192.168.1.100;
  option routers 192.168.1.1;
  option subnet-mask 255.255.255.0;
}

host pc2 {
    hardware ethernet 00:xx:xx:xx:xx:xx;
    fixed-address 192.168.1.24;
    filename "pxelinux.0";
}

W miejscu "hardware-address" wpisujemy adres MAC karty sieciowej komputera beznapędowego.
Sprawdźmy zatem czy wszystko działa jak powinno.
$ sudo /etc/init.d/tftpd-hpa start
$ cd
$ tftp localhost -c get pxelinux.0
$ ls pxeli*
Jeśli pojawił się nam plik, to znaczy że wszystko działa i możemy przejść do trudnej części :-).

3.Bootujemy!

Ale przedtem wypnijmy się od sieci, połączmy oba komputery kablem sieciowym wpiętym w odpowiednie złącza kart sieciowych i wprowadźmy modyfikację pliku:
sudo nano -w /etc/network/interfaces

auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0

Restartujemy sieć.
sudo /etc/init.d/networking restart
Włączamy serwer DHCP:
sudo /etc/init.d/dhcp3-server start
I włączamy naszego beznapędowca.
Zabootuje się i pokaże ekran instalacji Ubuntu! HA! Osiągnęliśmy swoje! Jedyne, co nam pozostaje to instalacja. W momencie, gdy instalator zbliży się do punktu, w którym musimy wybrać mu repozytoria klikamy "wstecz" i wybieramy repozytorium ręcznie. Adres to 192.168.1.1 a katalog repozytorium to /kubuntu. Po przekazaniu takich danych do instalatora po kilkunastu chwilach możemy się cieszyć sprawnym, czystym, konsolowym systemem Ubuntu na naszym beznapędowcu. Z resztą spraw użytkownik powinien już sobie poradzić.

W razie jakichkolwiek pytań dotyczących instalacji Ubuntu via LAN zapraszam na Jabbera, mogę pomóc w drobnych sprawach. Jeśli ktoś będzie bardzo potrzebować jestem w stanie postawić serwer instalacji Ubuntu na zdalnym hoście.

A moje Kochane Maleństwo, moja Toshibka sprawdza się świetnie :-). Bardzo polecam.

Czytaj dalej : 13 komentarzy

Drzewo Portage, emerge i ebuildy w Ubuntu !

Wpis zamieszczony o 18:52:59, 04 lutego 2007 - 21 komentarzy


Powiecie - niemożliwe? Też mi się tak wydawało. Używałem przed dość długi czas Gentoo - niestety zmuszony byłem zaprzestać jego używania przez zwyczajny brak czasu. Pracuję, uczę się i mam swoje sprawy na głowie - nie mam możliwości siedzieć przed komputerem i z zapartym tchem wyglądać kompilacji glibc + wszystkich flagi jakie przelatujących mi przed oczami aby wychwycić błąd:).

Wróciłem do Ubuntu i "czegoś" zaczęło mi brakować. Zaczęło mi brakować wolności, idealnego zarządzania zależnościami, szybkości. Zaczęło mi brakować drzewa Portage. Emerge to najpiękniejsze narzędzie na świecie - oddałbym wszystko abym mógł mieć system, w którym korzystałbym z pakietów *.deb (oraz narzędzi apt i dpkg) a wybrane przez siebie, krytyczne narzędzia kompilowałbym z użyciem emerge z oficjalnego drzewa Portage Gentoo GNU/Linux.

Wpis zakończę jednym zdaniem.

Jestem szczęśliwy

Link bezpośredni do prezentacji - (wersja full-screen) - 2,3MB

Jak mi się to udało?
Opiszę. Niedługo. :) Zamieszczę też pełną prezentację mojego obecnego systemu...
Sam już nie wiem czy to jeszcze jest Ubuntu, czy już moja własna dystrybucja...

Czytaj dalej : 21 komentarzy

„Chodź pomaluj mój świat” – kolorujemy konsolę Linux

Wpis zamieszczony o 21:33:37, 03 lutego 2007 - 8 komentarzy


W poprzednim wpisie przedstawiłem Wam garstkę narzędzi, które ułatwiają mi życie w czasie codziennej administracji systemu. Pominąłem świadomie jedną z ciekawszych (i praktyczniejszych) funkcji powłoki Bash – kolorowania wyjścia. Dziś zajmiemy się tym zagadnieniem. Postaram się krótko przybliżyć Wam sposoby kolorowania, metody kolorowania oraz ciekawostki związane z tym zagadnieniem. I jak zawsze – nie wyczerpię tematu – zmuszając Was do samodzielnego zainteresowania się tematem. No to hop! Zaznaczam, że przyda się Wam znajomość podstaw Bash’a – składnia poleceń, zmienne systemowe itp.



1. Pierwsze kroczki


Weźmy „na tapetę” najprostsze sprawy. Wpiszmy w konsolę taki oto ciąg znaków:
echo -e "\033[1;32mHello World"
Witaj świecie! :) Oto uzyskaliśmy pierwszy, kolorowy tekst w konsoli! Pobawmy się zatem – pozmieniajcie eksperymentalnie wartości liczbowe występujące w tym przykładzie. Nie bójcie się!

2. Chodzik? Nie dla mnie…


Po pierwszych krokach przejdźmy do ciekawszych spraw. Wpiszmy zatem do konsoli taki ciąg:

clear && echo -e "\032 \033[1;31m Ubuntu Linux\033[1;37m \032 \nJestes teraz w katalogu $PWD \nGdzie chcesz dzis pojsc?"

Był to pierwszy przykład wykorzystania koloru dla upiększenia naszej powłoki w sposób widoczny. Możemy dzięki temu we własnych skryptach zamieszczać komentarze opatrzone szarą czcionką, możemy kolorować błędy naszych programów. Pora przybliżyć składnię służącą do kolorowania:
\033[1;32m
Wystarczy ten ciąg znaków wstawić przed dowolny tekst a ulegnie on mocy koloru :). Nie będę przepisywać dostępnych w internecie tabel kolorów – podam zwyczajnie linka
Polecam eksperymenty w dziedzinie kolorów i opanowanie „ulubionego zestawu”. Przyda się to w dalszej pracy.

 

3. Pierwsze schody


Umiemy już kolorować wyjście konsoli. Świetnie! Zróbmy z tego w takim razie użytek! Wpiszmy w konsolę:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;34m\][\t] \[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[00;29m\]\w\[\033[00m\]\$ '
Prawda że ładne? :-) Kolory możecie dowolnie zmieniać – przecież już to ćwiczyliście!
Aby utrwalić zmiany dla naszego promptu musimy je zapisać:
nano -w ~/.bashrc
Komentujemy:

# set a fancy prompt (non-color, unless we know we "want" color)
#case "$TERM" in
#xterm-color)
#    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00
m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#    ;;
#*)
#    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#    ;;
#esac


Dodajemy w wolnej linijce naszą deklarację (w jednej linii):

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;34m\][\t] \[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[00;29m\]\w\[\033[00m\]\$ '

Mamy zatem za sobą pierwszy krok i pierwsze schody. Umiemy operować kolorowaniem tekstu w powłoce bash, potrafimy już sami stworzyć kolorowego prompta i edytować go zgodnie z naszym zamiarem. Coś jeszcze?

4. Garść linków


http://bashish.sourceforge.net/ Bashish – wariacja na temat promptu. Ciekawe…
http://networking.ringofsaturn.com/Unix/Bash-prompts.php
http://www-128.ibm.com/developerworks/linux/library/l-tip-prompt/
http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html
I setki innych po wpisaniu w google „bash color”.

5. Ciekawostki


sudo apt-get install colorgcc ccze colordiff colormake
Nie wymaga chyba komentarza. Zaznaczam tylko, że korzystając z colormake//colorgcc spotkałem się z problemami kompilacji narzędzi bazującymi na binutils.

Czytaj dalej : 8 komentarzy

Efektywna praca z konsolą w Linuksie

Wpis zamieszczony o 10:46:42, 26 stycznia 2007 - 33 komentarze


Od systemu operacyjnego wymagam kilku rzeczy. Po pierwsze – aby działał dokładnie tak jak ja chcę. Po drugie – aby był bezpiecznym systemem. Po trzecie – i chyba najważniejsze – system ma być prosty w codziennej administracji. Nie dla mnie siedzenie 4h i czekanie na zainstalowanie się OpenOffice’a (który po 4 godzinach wyrzuca błąd kompilacji), którego potrzebuje „na wczoraj”. W języku angielskim istnieje piękne słowo określające cechę, której szukam w systemie operacyjnym – „flexible”.

Chciałbym dziś zaprezentować kilka programów//rozwiązań, dzięki którym system którego używam spełnia moje wymagania w 100%. So let’s start:



1. Bash completion – dopełnianie poleceń


Zaszczytne pierwsze miejsce. Bez tej funkcji operacje w konsoli byłyby udręką. W Ubuntu spotykamy podstawowe funkcje dopełniania składni poleceń – rozszerzmy jednak te możliwości.

$ sudo nano -w /etc/bash.bashrc
W powyższym pliku odkomentowujemy linijkę:

if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi


Drugi krok to ściągnięcie mojej paczki z konfiguracją uzupełniania:
$ wget http://night.jogger.pl/files/bash_completion.d.tar.gz
Oraz rozpakowanie jej zawartości o katalogu /etc/bash_completion.d. Od tej chwili możemy używać klawisza TAB w celu dopełniania i obserwować zachowanie konsoli jak na screenie obok.

2. Command not found – a gdzie znajdę?


Ileż to razy, czy to w czasie kompilacji jakiegoś programu, czy w czasie podążania za jakimkolwiek HowTo napotykamy się na coś podobnego do tego:

[09:52:46] night@orion:~$ sd
bash: sd: polecenie nieodnalezione

Cóż zrobić? Ubuntu przychodzi z pomocą!
$ sudo apt-get install command-not-found
Co uzyskaliśmy? Wystarczy spojrzeć na screen.

3. Aptsh – jak nie zepsuć klawiatury


Czasem też spotykamy się z sytuacją, w której musimy wpisywać wiele różnych komend związanych z apt’em. Dobrym przykładem może być:

sudo apt-cache search kicker
sudo apt-get install kicker
sudo apt-cache search aplets | grep kicker
sudo apt-get insta(...)


Prawda że męczące? Dlatego zacząłem używać powłoki aptsh.

sudo apt-get install aptsh

Efekt na screenie obok. Większego komentarza nie potrzebuje. Powłoka zawiera w sobie wszystkie funkcje apt’a + pełne dopełnienia poleceń + podstawowe polecenia bash’a. I jest naprawdę szybka!

4. Aliasy – ratujemy klawiaturę po raz drugi


Powłoka bash umożliwia nam tworzenie aliasów – czyli „skrótów” dłuższych poleceń. Zaprezentuję Wam jeden z przykładów:

nano -w ~/.bashrc

Odnajdujemy aliasy zdefiniowane domyślnie i dodajemy w kolejnej linijce:

(...)
alias grep='grep --color=auto'
(...)


Efekt jak na obrazku obok. :) Cóż – wymyślanie dalszych aliasów pozostawiam Waszej kreatywności.

5. Cpulimit – uspokój swój procesor


Ostatnie miejsce – jednak nie mniej funkcjonalne niż poprzednie. Cpulimit pozwala nam na przyporządkowywanie danemu procesowi odpowiedniego, maksymalnego obciążenia procesora, które może ten proces wygenerować. Nad funkcjonalnością tego rozwiązania nie będę się rozwodził.

sudo apt-get install cpulimit

Tutaj już odsyłam do helpa samego programu.

Oczywiście – nie wyczerpałem tematu. To tylko wierzchołek ogromnej góry lodowej o nazwie „praca w konsoli”. Dzięki możliwościom powłoki bash możemy uzyskać naprawdę zdumiewające efekty i niesamowitą szybkość pracy.
A dla przeciwników Bash’a – oczywiście zdaję sobie sprawę z istnienia innych powłok – w tym zsh. Wiem, że oferują możliwości, które tutaj opisałem w standardzie. Niestety – powłoki te mają pewne ograniczenia i nie są w pełni kompatybilne z najpopularniejszym bashem. Także ich sposób konfiguracji pozostawia wiele do życzenia. I tym stwierdzeniem kończę dzisiejszy wpis.

Enjoy!

Czytaj dalej : 33 komentarze

Conky jako monitor aktualizacji w Ubuntu

Wpis zamieszczony o 12:02:56, 22 stycznia 2007 - 14 komentarzy


Conky to potężny monitor systemowy przeznaczony dla systemów GNU/Linux – używam go już od bardzo dawna i z błyskiem w oku testuję nowe funkcje pojawiające się z każdą kolejną edycją tego wspaniałego programu. Czasem jednak przypominam sobie o najważniejszej jego funkcji wewnętrznej. Mówię tutaj o ${execi}. Wtedy powstają rzeczy dziwne… Tak jak mój ostatni twór, który można podziwiać na obrazku (obok głównego okna Conky’iego). Podoba się?




Przezroczysty monitor aktualizacji na pulpicie Ubuntu!


Proces wdrożenia przebiega w kilku etapach, w których użytkownik musi sam przeprowadzać drobne przeróbki plików konfiguracyjnych w celu personalizacji. Postaram się omówić wszystkie kroki jak najdokładniej.

1. Instalacja Conky


Załóżmy, że użytkownik nigdy nie posiadał programu Conky. Możemy zainstalować go z repozytoriów:

sudo apt-get install conky

Jednak polecam własną kompilację gdyż wersja zawarta w repozytoriach jest bardzo stara i posiada pewne błędy. Postaram się udostępnić nowo skompilowane paczki w ciągu kilku dni roboczych. Na razie tyle o Conkym – za chwilę do niego wrócimy.

2. Prekonfiguracja monitora systemu


Skorzystamy w tym miejscu z mojego skryptu, który napisałem na tą okazję:

sudo nano -w /etc/init.d/UPGRADE.MONITOR

Gdzie wpisujemy:

#!/bin/bash
apt-get update
sh -c "apt-get dist-upgrade -s | grep Inst | cut -c 6- > /var/log/upgrades.log"


Oraz wywołujemy:

sudo chmod +x /etc/init.d/UPGRADE.MONITOR

Zasadą działania skryptu jest wrzucenie w plik tekstowy obecnie dostępnych aktualizacji w repozytoriach. Zauważyć należy, że skrypt nie instaluje żadnego oprogramowania bez naszej wiedzy.

3. Cron – czyli make it work!


Chcemy teraz, aby nasz malutki skrypt uruchamiał się co pewien wybrany przez nas, okres czasu i sprawdzał dostępne aktualizacje. Użyjemy do tego celu narzędzia systemowego „Cron”, który w skrócie można określić jako „sheduler”. Wykonamy w tym celu prosty zabieg:

sudo nano -w /etc/crontab

Wpiszmy do niego na samym końcu podaną regułkę:

10,20,30,40,50,59 * * * * root /etc/init.d/UPGRADE.MONITOR

Po czym uaktualniamy pliki konfiguracyjne cron'a.

sudo /etc/init.d/cron reload

Krótkie wyjaśnienie – jedyne o czym powinien zamartwić się użytkownik to pierwsze wartości, wpisywane po przecinku. Jest to definicja minut w wymiarze godziny, w których ma się uruchamiać nasz skrypt. Używane przeze mnie ustawienie wywołuje aktualizację monitora w 10, 20 (..) minucie każdej godziny. Jest to wygodne rozwiązanie, gdyż przy łączu 1mb/s nie zauważam w ogóle spadku wydajności łącza (aktualizacja repozytoriów przebiega w 100% transparentnie!). W wartościach każdy użytkownik powinien sam znaleźć „złoty środek” dla jego rodzaju łącza.

4. Conky – jak to pokazać na pulpicie?


Została nam już tylko kosmetyka. Dla celu monitora wywołajmy osobną, niezależną instancję Conky’iego. Pozwoli nam to używać równolegle naszego monitora systemowego i monitora aktualizacji (jak na powyższym screenie).

nano -w ~/.conkyrc2
Przykład pliku konfiguracyjnego

Uwaga – plik konfiguracyjny jest dostosowany do moich potrzeb. W celu powiększenia swojej wiedzy na temat pliku konfiguracyjnego programu Conky należy udać się na tą stronę co też doradzam. Najważniejszą linijką jest tutaj ${execi 20 cat /var/log/upgrades.log}, powoduje ona wyświetlanie się naszych aktualizacji na ekranie.
Jedyne co nam pozostaje to dodać poniższą linijkę do Autostartu naszego środowiska graficznego:

conky -d -c ~/.conkyrc2 &


Voila! Przezroczysty monitor aktualizacji apt’a na pulpicie. :)
Zainteresowanym polecam lekturę manpages dla wszystkich użytych w HowTo poleceń oraz zagłębienie się w struktury konfiguracji programu Conky. Do powyższego HowTo bardzo łatwo dodać powiadamianie sms’em o aktualizacjach (co podałem kilka dni temu), powiadamianie na Jabbera (poprzez sendxmpp) oraz kilka innych ciekawostek, które w ogólnym rozrachunku potrafią bardzo uprzyjemnić życie.

 

Enjoy!

Czytaj dalej : 14 komentarzy

LinkLift