niedziela, 28 grudnia 2008

Opera + flash + Solaris

Domyślnie Opera na Solarisie nie widzi zainstalowanej wtyczki flash.
Aby używać flash pod Operą najlepiej (najszybciej) skopiować plugin od Firefoxa:

# cp /usr/lib/firefox/plugins/libflashplayer.so /usr/local/lib/opera/plugins/

Testowane na Solaris Express (SXCE).

piątek, 5 grudnia 2008

Crossbow w b105

Dzisiaj wielki dzień, Crossbow jest włączone (przynajmniej wstępnie) do źródeł ON.

$ hg log -r 8275
changeset: 8275:7c223a798022
tag: tip
user: Eric Cheng
date: Thu Dec 04 18:16:10 2008 -0800
summary: PSARC/2006/357 Crossbow - Network Virtualization and Resource Management

czwartek, 4 grudnia 2008

Hello ASM World

> cat /etc/release
Solaris Express Community Edition snv_103 X86
Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 17 November 2008


> cat my01.s
.data
str:
.string "Hello OpenSolaris!!! :)\n"
.text
.globl main
main:
# WRITE
movl $4, %eax
pushl $24
pushl $str
pushl $1
pushl $1
int $0x91

# EXIT
movl $1, %eax
pushl %eax
int $0x91



> as my01.s -o my01.o && ld my01.o -o my01 && strip my01

> file my01
my01: ELF 32-bit LSB executable 80386 Version 1, dynamically linked, stripped
> ldd my01
> dis my01
disassembly for my01


section .text
0x8050408: b8 04 00 00 00 movl $0x4,%eax
0x805040d: 6a 18 pushl $0x18
0x805040f: 68 04 05 06 08 pushl $0x8060504
0x8050414: 6a 01 pushl $0x1
0x8050416: 6a 01 pushl $0x1
0x8050418: cd 91 int $0x91
0x805041a: b8 01 00 00 00 movl $0x1,%eax
0x805041f: 50 pushl %eax
0x8050420: cd 91 int $0x91



> ./my01
Hello OpenSolaris!!! :)

wtorek, 28 października 2008

Open HA Cluster w Szczecinie

Na konferencji w Szczecinie miałem przyjemność mówić o technologiach wysokiej dostępności w systemach Solaris i OpenSolaris.

Mowa oczywiście o Sun Cluster i projekcje Open HA Cluster.

Dla wszystkich, którzy są zainteresowani moją prezentacją, można ją pobrać ze strony technicznych prezentacji projektu Open HA Cluster.

Bezpośredni link do prezentacji znajduje się tutaj.

Konferencja OpenSolaris 2008

Minęła długo zapowiadana konferencja OpenSolaris w Szczecinie.

Pomimo wszelkich problemów odbyła się :) i będą następne!

Dlatego też eksperymentalnie założyliśmy bloga dotyczącego Polskich Konferencji OpenSolaris.

Póki co są tam na razie linki do zdjęć i inne ...

plosug.blogspot.com

niedziela, 26 października 2008

Długie hasła w {Open}Solaris

W Solarisie i OpenSolaris ze względów historycznych (wsteczna kompatybilność)
maksymalna długość hasła w systemie wynosi 8 znaków.

Aby to zmienić, należy wyedytować plik /etc/security/policy.conf

Trzeba zmienić wartość zmiennej CRYPT_DEFAULT np:

CRYPT_DEFAULT=2a

Po edycji pliku należy zmienić hasło za pomocą 'passwd'.

sobota, 18 października 2008

Instalacja Beep Media Player / LWS na SXCE

# cat /etc/release
Solaris Express Community Edition snv_98 X86
Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 08 September 2008




# pkgadd -G -d http://lifewithsolaris.jp/uploads/pkg/LWSpkg-admin-0.2.pkg

## Downloading...
........25%.......50%.......75%.......100%
## Download Complete


The following packages are available:
1 LWSpkg-admin Package Admin Tool for lifewithsolaris.jp
(i386) 0.2

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:

Processing package instance from

Package Admin Tool for lifewithsolaris.jp(i386) 0.2
Using
as the package base directory.
## Processing package informa
tion.
## Processing system information.
2 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

This package contains scripts which will be executed with super-user
permission during the process of installing this package.

Do you want to continue with the installation of [y,n,?] y

Installing Package Admin Tool for lifewithsolaris.jp as

## Installing part 1 of 1.

16 blocks

Installation of was successful.





# /opt/LWS/bin/pkg-admin list
Getting catalog from http://lifewithsolaris.jp/uploads/pkg/5.11/i386 ... done.

LWSa52dec 0.7.4 ATSC A/52 Streams Decode Library
LWSbmpx 0.40.14 BMPx Media Player
LWSboost 1.36.0 Boosts C++ Library
LWSbzr 1.5 Bazaar Version Control
LWScairomm 1.4.8 CAIRO C++ Interface
LWSctypes 1.0.2 ffi (Foreign Function Interface) Package for Python
LWSfaac 1.26 Free Advanced Audio Coder
LWSfaad2 2.6.1 Free Ad
vanced Audio Decoder
LWSffmpeg 0.4.9 FFmpeg Video/Audio Converter
LWSfftw3 3.1.2 C Routines for Discrete Fourier Transform
LWSfox 1.6.32 FOX C++ Toolkit
LWSglibmm 2.14.2 GLIB C++ Interface
LWSgoggles 0.9.1 Goggles DVD Player
LWSgoom 2k4-0 What a GOOM!
LWSgst-ffmpeg 0.10.5 GStreamer FFmpeg Plugins
LWSgst-plugins-bad 0.10.8 GStreamer Bad Plugins
LWSgst-plugins-base 0.10.20 GStreamer Base Plugins
LWSgst-plugins-good 0.10.10 GStreamer Good Plugins
LWSgst-plugins-ugly 0.10.9 GStreamer Ugly Plugins
LWSgstreamer 0.10.20 Open Source Multimedia Framework
LWSgtkmm 2.12.7 GTK C++ Interface
LWSlame 3.97 MPEG Aud
io Layer III (MP3) Encoder
LWSlibcddb 1.3.0 CDDB Server Access Library
LWSlibcdio 0.80 GNU Compact Disc Input and Control Library
LWSlibdiscid 0.2.1 Disc ID Generating Library
LWSlibdvdcss 1.2.9 DVD DeCSS Library
LWSlibdvdnav 0.1.10 Library for DVD Navigation
LWSlibdvdread 0.9.7 DVD-Video Read Library
LWSlibglademm 2.6.6 LIBGLADE C++ Interface
LWSlibid3tag 0.15.1b ID3 Tag Manipulation Library
LWSlibmad 0.15.1b MPEG Audio Decoder
LWSlibmms 0.4 Microsoft Media Streaming (MMS) Protocol Library
LWSlibmpeg2 0.5.1 MPEG-2 Video Stream Decoder
LWSlibofa 0.9.3 Open Fingerprint Architecture Library
LWSliboil 0.3.15 Library for CPU Optimized Functions
LWSlibsexy 0.1.11 GTK+ Widgets Collection
LWSlibsexymm 0.1.9 LIBSEXY
C++ Interface
LWSlibsigc++ 2.0.18 Callback Framework for C++
LWSlibsoup 2.2.104 HTTP Client/Server Library
LWSlibvisual 0.4.0 Library for Audio Visualisation
LWSlibvisual-plugins 0.4.0 Plugins for libvisual
LWSmutagen 1.14 Python Audio Meta-Data Handling Module
LWSogle 0.9.2 Ogle DVD Player
LWSpicard 0.10 MusicBrainz Picard
LWSpyqt 4.4.2 Python Bindings for Qt
LWSqt4 4.4.0 C++ Application Development Framework
LWSsip 4.7.6 Python C/C++ Bindings Generator
LWSsqlite3 3.5.9 An Embeddable SQL Database Engine
LWStaglib 1.5 TagLib Audio Meta-Data Library
LWSvlc 0.9.3 VLC Media Player
LWSwxwidgets 2.6.4 Cross-Platform GUI Library
LWSxine-lib 1.1.15 Xine Video Player
LWSxine-ui 0.99.5 Xine Video Player (Frontend)
LWSxvidcore 1.1.3
MPEG4 Decoding/Encoding Library


Pakiety LWS są instalowane w /opt/LWS, podobnie jak Blastwave są niezależne od paczek i bibliotek systemowych.


# /opt/LWS/bin/pkg-admin install LWSbmpx
Getting catalog from http://lifewithsolaris.jp/uploads/pkg/5.11/i386 ... done.

==============================================================
pkg-admin tries to upgrade packages to same version even if it
already exists.

Let pkg-admin installing them, since there might occur package
upgrade for same version due to other package upgrade.
==============================================================
Downloading LW
Sbmpx (0.40.14) ... done.
Transferring package instance

Downloading LWSa52dec (0.7.4) ... done.
Transferring package instance

[...]

Installing BMPx Media Player as

## Installing part 1 of 1.
89947 blocks

Installation of was successful.



Dodatkowo musimy jeszcze doinstalować jedną paczkę jeśli mamy build systemu nowszy niż b93:

# /opt/LWS/bin/pkg-admin install LWSlibsoup
Getting catalog from htt
p://lifewithsolaris.jp/uploads/pkg/5.11/i386 ... done.

==============================================================
pkg-admin tries to upgrade packages to same version even if it
already exists.

Let pkg-admin installing them, since there might occur package
upgrade for same version due to other package upgrade.
==============================================================
Downloading LWSlibsoup (2.2.104) ... done.
Transferring package instance


Processing package instance from

HTTP Client/Server Library(i386) 2.2.104
Using
as the package base directory.
## Processing package information.
## Processing system information.
8 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

Installing HTTP Client/Server Library as

## Installing part 1 of 1.
2859 blocks

Installation of was successful.





# ls -alh /opt/LWS/bin/bmp2
lrwxrwxrwx 1 root root 19 paź 18 10:20 /opt/LWS/bin/bmp2 -> beep-media-player-2




środa, 1 października 2008

Milax i IPS

Minidystrybucja Milax korzysta już z nowego systemu paczek OpenSolaris IPS.

Przykład instalacji Samby:

# pkg image-create -F -a blastwave=http://blastwave.network.com:10000/ /
# pkg -R / install IPSsamba
DOWNLOAD PKGS FILES XFER (MB)
Completed 28/28 1839/1839 107.74/107.74

PHASE ACTIONS
Install Phase 3461/3461
PHASE ITEMS
Reading Existing Index 8/8
Indexing Packages 28/28

poniedziałek, 29 września 2008

Life With Solaris

Jak dla mnie absolutna rewelacja :)

Paczki dla Solaris 10, Solaris Nevada oraz OpenSolaris 2008.05 zawierające:

- Beep Media Player
- Goggles/Ogle DVD Player
- MusicBrainz Picard
- VLC Media Player
- Xine Video Player


http://lifewithsolaris.jp/modules/about/

niedziela, 28 września 2008

OpenSolaris ON b100 - bfu, hostid

Najnowszy build snv100 zawiera wiele ciekawych nowości i zmian np:
- Migracja źródeł ON do Sun Studio 12. SS12 jest niezbędny do kompilacji!
- Wirtualne konsole tekstowe!
- Fast Reboot.
- PowerTOP
- Obsługa procesora Rock.
- OpenLDAP

Jedna z nowości to "Hostid for X86 systems".
Problem pojawia się, gdy chcemy zaktualizować system do najnowszej wersji poprzez 'bfu'.
Dotychczas aby to zrobić trzeba było wyeksportować 3 zmienne: FASTFS, BFULD oraz GZIPBIN.
Teraz potrzebna jest najnowsza paczka SUNWonbld, która zawiera program 'extract_hostid'.
Dodatkowo należy wyeksportować zmienną EXTRACT_HOSTID:

# export EXTRACT_HOSTID=/opt/onbld/bin/i386/extract_hostid

poniedziałek, 8 września 2008

SXCE97 i czcionki w mplayer

Informacja dla tych, którzy używają SXCE na desktopie i jednocześnie oglądają filmy za pomocą mplayera (z blastwave).
W SXCE97 zmieniła się czcionka i ta, z której korzysta mplayer jest niedostępna:

/usr/openwin/lib/X11/fonts/TrueType/Arial.ttf

Dzięki temu zniknęły napisy w mplayerze. Można to jednak szybko naprawić linkując inną czcionkę lub tą z poprzedniej wersji SXCE:

# ls -alh /opt/csw/share/mplayer/subfont.ttf
lrwxrwxrwx 1 root root 26 wrz 8 19:42 /opt/csw/share/mplayer/subfont.ttf -> /usr/local/fonts/Arial.ttf

Oto czcionka, z której dotychczas korzystał mplayer:

# ls -alh /usr/local/fonts/Arial.ttf
-rw-r--r-- 1 root root 146K wrz 8 19:41 /usr/local/fonts/Arial.ttf

sobota, 6 września 2008

OpenSolaris Power Management

Temat niezbyt oczywisty, tak więc ten krótki post powinien być użyteczny.

OpenSolaris wspiera zarządzanie częstotliwością procesorów tylko najnowszych procesorów Intel oraz AMD. Jest to spowodowane architekturą jądra Solarisa oraz budową starszych procesorów.
Możemy sprawdzić, czy nasz procesor jest wspierany za pomocą kstat:

$ kstat -m cpu_info -s supported_frequencies_Hz
module: cpu_info instance: 0
name: cpu_info0 class: misc
supported_frequencies_Hz 800000000:1200000000:1600000000:2000000000:2400000000:2401000000

module: cpu_info instance: 1
name: cpu_info1 class: misc
supported_frequencies_Hz 800000000:1200000000:1600000000:2000000000:2400000000:2401000000

Jeśli nie jest wspierany, możemy spróbować użyć pakietu frkit.

Gdy CPU jest wspierany należy wyedytować konfigurację zarządzania zasilania:

$ tail -3 /etc/power.conf
S3-support enable
cpupm enable
cpu-threshold 15s


Uaktualniamy konfigurację:

# /usr/sbin/pmconfig


Sprawdzamy, czy działa:

$ kstat -m cpu_info -s current_clock_Hz;
module: cpu_info instance: 0
name: cpu_info0 class: misc
current_clock_Hz 800000000

module: cpu_info instance: 1
name: cpu_info1 class: misc
current_clock_Hz 800000000


Jak obciążymy procesor, zmienia się częstotliwość CPU:

$ kstat -m cpu_info -s current_clock_Hz;
module: cpu_info instance: 0
name: cpu_info0 class: misc
current_clock_Hz 2401000000

module: cpu_info instance: 1
name: cpu_info1 class: misc
current_clock_Hz 2401000000



Jeśli chodzi o Suspend/Resume, to jest szansa, że sprzęt jaki posiadamy (i sterowniki) poprawnie wspierają Power Management.
Na dzień dzisiejszy działa Suspend to RAM. Obsługa Suspend to Disk nie jest jeszcze dostępna.

Jako, iż testowałem Suspend/Resume na ręcznie przekompilowanym systemie,
moja wersja jest gdzieś pomiędzy snv98, a snv99. Tak więc na snv99 powinno to działać, gdyż w tych buildach są naprawione problemy z Suspend/Resume na niektórym sprzęcie.

Jak uśpić komputer? Można poprzez GDM (uśpij), albo poprzez 'uadmin':
# uadmin 3 20



Warto mieć również profile zabezpieczeń takie jak:

Suspend To RAM
Suspend To Disk
CPU Power Management

wtorek, 12 sierpnia 2008

Open HA Cluster

W najbliższym czasie będę prezentować na dwóch konferencjach czym jest Open HA Cluster Project.
Konferencje to Unixalia.pl oraz Polska Konferencja OpenSolaris.

Informacje o wydarzeniach mamy na stronie HA Clusters Community.

sobota, 9 sierpnia 2008

OpenSolaris audiohd

Garrett D'Amore pracuje nad nowym sterownikiem dźwiękowym do OpenSolarisa
audiohd.
Jak na razie sterownik ten jest eksperymentalny, mimo to jest stabilny i działa.

Dlaczego go użyłem?
Dlatego, iż niektóre laptopy mają problemy ze sterownikami OpenSound i przy ładowaniu systemu słychać głośny pisk z głośniczka.


Sterownik wystarczy wrzucić do /kernel/drv/amd64/ i nadpisać istniejący plik.
Nowy audiohd nie współpracuje z OpenSound, więc przed podmianą obecnego sterownika należy odinstalować OSS.

Więcej informacji na blogu Garreta.

środa, 6 sierpnia 2008

Solaris ON w Mercurial po drugiej stronie Sunowskiego firewalla

Wraz z buildem 97 źródła ON są przeniesione do Mercurial i całe repozytorium nie jest już w SWANie (wewnętrzna sieć Suna).

W chwili gdy to piszę, trwają ostatnie prace nad ukończeniem migracji, wszystkie commity są zawieszone do oficjalnego otwarcia repozytorium.
Od tego momentu wszystkie zmiany w repozytorium będą nanoszone poprzez Mercurial do oficjalnego (zęwnętrznego) repozytorium, wyjątkiem jest jeszcze xvm-gate.

W późniejszym czasie planowana jest również migracja do zewnętrznego repozytorium Mercurial całego Open HA Cluster (Solaris Cluster Express).

ONNV na Sun Studio 12

Od builda 99 źródła ON (OS/Net - rdzeń systemu Solaris) będą przystosowane do kompilacji na Sun Studio 12.

Obecnie można skompilować ON na Sun Studio 12 lecz trzeba wykonać dodatkowe operacje i dlatego zalecane jest użycie Sun Studio 11.

Ciekawy jestem kiedy ON dostarczane w Solaris Nevada będzie skompilowane w Sun Studio 12 oraz kiedy Solaris Cluster Express będzie również przystosowany do nowego Sun Studio.
Solaris Cluster Express do kompilacji wymaga starszego SS11.

sobota, 26 lipca 2008

Sun Java Communication Suite 6 w akcji

Zrobiłem kilka screenów nowych commsów.
Sun Convergence - nowy webmail łączący pocztę, kalendarz, kontakty oraz komunikator korporacyjny.
(komunikatora akurat nie ma na screenach)

Sun Java Communication Suite to potężny system pracy grupowej, na który składa się między innymi:
serwer LDAP, serwer aplikacji, serwer webowy, serwer mailowy, serwer kalendarza, serwer XMPP oraz Convergence AJAX client.

wtorek, 22 lipca 2008

Sun Java Communications Suite 6

Chyba jestem pierwszy! ;)

Link do nowego Sun Java Communications Suite 6!

piątek, 11 lipca 2008

Wersja finalna OpenDS 1.0.0

Otwarty serwer usług katalogowych OpenDS ma już numerek 1.0.0.

OpenDS jest napisany w Javie, ma prosty graficzny instalator, można go zainstalować i skonfigurować
w zaledwie kilka minut!

OpenDS jest niezwykle skalowalny, zarówno jeśli chodzi o duże obciążenie jak i o urządzenia wbudowane.


Więcej informacji: link.

sobota, 5 lipca 2008

Firefox na Solarisie

Dla tych, którzy używają Firefoxa w wersji 2 na Solarisie ucieszy fakt,
że jest już nowa wersja 2.0.0.15 do pobrania ze serwerów mozilli.
Nowa wersja poprawia błędy podane tu.

poniedziałek, 23 czerwca 2008

xVM SXCE91 CentOS 5.1 pvm

W najnowszym SXCE91 jest problem jeśli chcemy zainstalować domenę pvm z systemem CentOS 5.1.
Problem występuje, jeśli podamy jako źródło instalacji obraz płyty z CentOS, instalator linuxa nie widzi dysku twardego...

Aby to ominąć można podać jako źródło instalacji zasób NFS.

# virt-install -n centos -r 256 -f /dev/zvol/dsk/data/centos -p --nographics -l nfs:192.168.20.30:/export/centos


Wcześniej w /export/centos należy zamontować obraz płyty CentOS i wyeksportować katalog po NFS.

środa, 18 czerwca 2008

DTrace IP Provider

# dtrace -l | awk '{if ($2 == "ip") print $0}'
1492 ip ip ip_wput_local_v6 receive
1493 ip ip ip_rput_v6 receive
1494 ip ip ip_wput_local receive
1495 ip ip ip_input receive
1514 ip ip ip_inject_impl send
1515 ip ip udp_xmit send
1516 ip ip tcp_lsosend_data send
1517 ip ip tcp_multisend send
1518 ip ip tcp_send_data send
1519 ip ip ip_multicast_loopback send
1520 ip ip ip_xmit_v6 send
1521 ip ip ip_wput_ire_v6 send
1522 ip ip ip_xmit_v4 send
1523 ip ip ip_wput_ipsec_out send
1524 ip ip ip_wput_ipsec_out_v6 send
1525 ip ip ip_wput_frag send
1526 ip ip ip_wput_frag_mdt send
1527 ip ip ip_wput_ire send
1528 ip ip ip_fast_forward send



# dtrace -n 'ip:::send {@[execname]=count()}'
dtrace: description 'ip:::send ' matched 15 probes
^C

bonobo-activatio 1
esd 1
gconf-sanity-che 1
gdmprefetch 1
iiimx-settings-i 1
ksh 1
rm 1
run-mozilla.sh 1
nfsmapid 2
nscd 2
quota 2
gconftool-2 3
gnome-vfs-daemon 3
dbus-daemon 4
dtsearchpath 4
nfs4cbd 4
md5sum 6
dtappgather 7
firefox 7
sdt_shell 8
iiim-xbe 9
xmbind 9
mv 10
Xorg 11
bash 11
xscreensaver 13
xdg-user-dirs-up 15
dbus-launch 16
xsetroot 16
touch 18
echo 22
mkfontdir 22
iiimx 23
gdm-binary 38
gnome-volume-man 43
clock-applet 47
metacity 61
gnome-terminal 72
Xsession 82
gnome-settings-d 178
mixer_applet2 386
battstat-applet- 390
wnck-applet 405
gam_server 441
nautilus 620
gnome-panel 656
gnome-session 681
gconfd-2 1190
firefox-bin 2815
sched 21545


# dtrace -n 'ip::tcp_send_data: {@[execname]=count();}'
dtrace: description 'ip::tcp_send_data: ' matched 1 probe
^C

sshd 1
firefox-bin 31
sched 34
gam_server 68



# dtrace -n 'ip:::'
dtrace: description 'ip:::' matched 19 probes
CPU ID FUNCTION:NAME
0 1495 ip_input:receive
0 1518 tcp_send_data:send
0 1518 tcp_send_data:send
0 1495 ip_input:receive
0 1495 ip_input:receive
0 1518 tcp_send_data:send
0 1518 tcp_send_data:send
0 1495 ip_input:receive
0 1518 tcp_send_data:send
0 1495 ip_input:receive
0 1518 tcp_send_data:send
0 1495 ip_input:receive
0 1518 tcp_send_data:send
0 1495 ip_input:receive
0 1518 tcp_send_data:send
^C
0 1518 tcp_send_data:send
0 1518 tcp_send_data:send
0 1495 ip_input:receive
0 1518 tcp_send_data:send
0 1518 tcp_send_data:send
0 1495 ip_input:receive
0 1518 tcp_send_data:send
0 1518 tcp_send_data:send
0 1495 ip_input:receive
0 1518 tcp_send_data:send
0 1518 tcp_send_data:send
0 1495 ip_input:receive
0 1518 tcp_send_data:send
0 1518 tcp_send_data:send
0 1495 ip_input:receive
0 1518 tcp_send_data:send
0 1518 tcp_send_data:send
0 1495 ip_input:receive
0 1518 tcp_send_data:send
0 1518 tcp_send_data:send
0 1495 ip_input:receive
0 1518 tcp_send_data:send
0 1518 tcp_send_data:send
0 1495 ip_input:receive
0 1495 ip_input:receive
0 1518 tcp_send_data:send
0 1518 tcp_send_data:send

piątek, 13 czerwca 2008

OpenDS 1.0.0 Release Candidate

Właśnie wyszedł RC wersji 1.0.0 otwartego serwera usług katalogowych OpenDS :)
OpenDS możemy pobrać stąd.
Link prowadzi do wersji 1.0.0-build016, właśnie ta wersja jest oznaczona jako RC.

wtorek, 10 czerwca 2008

W końcu w komplecie
















Szczególne podziękowania dla cypromisa i sob0la :)

niedziela, 8 czerwca 2008

Polska klawiatura w OpenSolaris

Już wiele osób o tym pisało, ale dodam to jeszcze raz ...

Jak ustawić polską klawiaturę w Solaris/OpenSolaris.
Czyli jak ustawić układ polski programisty, aby np "z" było "z", a nie "y"...

Należe wyedytować plik /etc/X11/xorg.conf, który domyślnie nie jest tworzony.

W tym celu należy wyłączyć GDM lub cde-login (w zależności od wersji systemu).

Aby zobaczyć jaka usługa jest włączona:
# svcs gdm cde-login

Zakładająć, że używamy GDM, musimy go wyłączyć:
# svcadm disable -t gdm

Tworzymy plik xorg.conf:
/usr/X11/bin/Xorg -configure

Musimy go przenieść do /etc/X11/xorg.conf

W sekcji klawiatury dopisujemy:
Option "XkbLayout" "pl_dev"

Sekcja może wyglądać tak:

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbLayout" "pl_dev"
EndSection

Na końcu uruchamiamy GDM lub cde-login:
# svcadm enable gdm

Klawiatura powinna działać poprawnie.

sobota, 7 czerwca 2008

lofi mount

Od buildu 91 nie trzeba używać lofiadm, aby zamontować obraz płyty CD/DVD.

Wystarczy samo mount:

# mount -F hsfs -o ro /mnt/new/sxce90.iso /mnt/x
# ls /mnt/x/
autorun.inf JDS-THIRDPARTYLICENSEREADME
autorun.sh License
boot README.txt
Copyright sddtool
DeveloperTools Solaris_11
installer Sun_HPC_ClusterTools
#
# mount | grep /mnt/x
/mnt/x on /mnt/new/sxce90.iso read only/nosetuid/nodevices/noglobal/maplcase/rr/traildot/dev=2400001 on So cz 7 09:17:28 2008

czwartek, 5 czerwca 2008

Live Upgrade w 25 sekund!

# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
be0_snv90 yes no no yes -
be_zfs_b90 yes yes yes no -

# lucreate -n be_zfs_test
Checking GRUB menu...
System has findroot enabled GRUB
Analyzing system configuration.
Comparing source boot environment file systems with the file
system(s) you specified for the new boot environment. Determining which
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
Creating configuration for boot environment .
Source boot environment is .
Creating boot environment .
Cloning file systems from boot environment to create boot environment .
Creating snapshot for on .
Creating clone for on .
Setting canmount=noauto for in zone on .
No entry for BE in GRUB menu
Population of boot environment successful.
Creation of boot environment successful.

# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
be0_snv90 yes no no yes -
be_zfs_b90 yes yes yes no -
be_zfs_test yes no no yes -

# time lucreate -n be_zfs_bfu
Checking GRUB menu...
System has findroot enabled GRUB
Analyzing system configuration.
Comparing source boot environment file systems with the file
system(s) you specified for the new boot environment. Determining which
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
Creating configuration for boot environment .
Source boot environment is .
Creating boot environment .
Cloning file systems from boot environment to create boot environment .
Creating snapshot for on .
Creating clone for on .
Setting canmount=noauto for in zone on .
No entry for BE in GRUB menu
Population of boot environment successful.
Creation of boot environment successful.

real 0m25.099s
user 0m3.195s
sys 0m4.602s

Live Upgrade, BUGi i ZFS

W Solaris Express Comminity Edition b90 (SXCE90) doszła
obsługa głównego systemu plików jako ZFS.
Co ciekawe oprócz instalatora (próbowałem tylko tekstowego) obsługę /
jako ZFS mają również narzędzia od Live Upgrade.
Dodatkowo można zmigrować obecny system zainstalowany na UFS
na dodatkową pulę ZFS.
Wszystko ładnie i pięknie, ale jest niestety BUG (6707013), który utrudnia życie...

Na potrzeby testów usunąłem jedno środowisko uruchomieniowe,
w jego miejsce zrobiłem nową pulę ZFS:

# zpool create rpool c0d0s4
invalid vdev specification
use '-f' to override the following errors:
/dev/dsk/c0d0s4 contains a ufs filesystem.
# zpool create -f rpool c0d0s4

# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
data 23,2G 4,78G 18,5G 20% ONLINE -
rpool 11,7G 95,5K 11,7G 0% ONLINE -

Tworzymy nowe środowisko uruchomieniowe na nowej puli ZFS:
# lucreate -n be_zfs_b90 -p rpool
Checking GRUB menu...

This system contains only a single GRUB menu for all boot environments. To
enhance reliability and improve the user experience, live upgrade requires
you to run a one time conversion script to migrate the system to multiple
redundant GRUB menus. This is a one time procedure and you will not be
required to run this script on subsequent invocations of Live Upgrade
commands. To run this script invoke:

/usr/lib/lu/lux86menu_propagate /path/to/new/Solaris/install/image

where /path/to/new/Solaris/install/image is an absolute
path to the Solaris media or netinstall image from which you installed the
Live Upgrade packages.


System musi zaktualizować /boot/grub/menu.lst ...
W tym celu montujemy płytkę z SXCE90:
# lofiadm -a /mnt/new/sxce90.iso
/dev/lofi/1
# mount -F hsfs -o ro /dev/lofi/1 /mnt/x/

Nie wiem dlaczego, ale musiałem usunąć inne BE, aby Live Upgrade zadziałało...

# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
be0_snv90 yes yes yes no -
be1_snv89 yes no no yes -

# ludelete -n be1_snv89

This system contains only a single GRUB menu for all boot environments. To
enhance reliability and improve the user experience, live upgrade requires
you to run a one time conversion script to migrate the system to multiple
redundant GRUB menus. This is a one time procedure and you will not be
required to run this script on subsequent invocations of Live Upgrade
commands. To run this script invoke:

/usr/lib/lu/lux86menu_propagate /path/to/new/Solaris/install/image

where /path/to/new/Solaris/install/image is an absolute
path to the Solaris media or netinstall image from which you installed the
Live Upgrade packages.

Unable to delete boot environment.

Usunąłem je ręcznie:
# vi /etc/lutab

# cat /etc/lutab
# DO NOT EDIT THIS FILE BY HAND. This file is not a public interface.
# The format and contents of this file are subject to change.
# Any user modification to this file may result in the incorrect
# operation of Live Upgrade.
1:be0_snv90:C:0
1:/:/dev/dsk/c0d0s0:1
1:boot-device:/dev/dsk/c0d0s0:2

# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
be0_snv90 yes yes yes no -


Kontynuujemy migrację wpisów bootloadera:

# /usr/lib/lu/lux86menu_propagate /mnt/x/
Validating the contents of the media .
The media is a standard Solaris media.
The media contains a Solaris operating system image.
The media contains version <11>.
Installing latest Live Upgrade packages from media
Updating Live Upgrade packages on all BEs
Successfully updated Live Upgrade packages on all BEs
Successfully extracted GRUB from media
Extracted GRUB menu from GRUB slice
Installing GRUB bootloader to all GRUB based BEs
stage1 written to partition 1 sector 0 (abs 29398950)
stage2 written to partition 1, 264 sectors starting at 50 (abs 29399000)
System does not have an applicable x86 boot partition
install GRUB to all BEs successful
Converting root entries to findroot
Generated boot signature for BE
Converting GRUB menu entry for BE
Added findroot entry for BE to GRUB menu
No more bootadm entries. Deletion of bootadm entries is complete.
Changing GRUB menu default setting to <8>
Done eliding bootadm entries.
No x86 boot partition
File
propagation successful
Menu propagation successful
No x86 boot partition
File
deletion successful
Successfully deleted GRUB_slice file
No x86 boot partition
File
deletion successful
Successfully deleted GRUB_root file
Propagating findroot GRUB for menu conversion.
No x86 boot partition
File
propagation successful
No x86 boot partition
File
propagation successful
No x86 boot partition
File propagation successful
Deleting stale GRUB loader from all BEs.
No x86 boot partition
File deletion successful
No x86 boot partition
File deletion successful
No x86 boot partition
File deletion successful
Conversion was successful


Tworzymy nowe środowisko na ZFS, pulę podajemy po parametrze "-p":

# lucreate -n be_zfs_b90 -p rpool
Checking GRUB menu...
System has findroot enabled GRUB
Analyzing system configuration.
Comparing source boot environment file systems with the file
system(s) you specified for the new boot environment. Determining which
file systems should be in the new boot environment.
Updating boot environment description database on all BEs.
Updating system configuration files.
The device
is not a root device for any boot environment; cannot get BE ID.
Creating configuration for boot environment .
Source boot environment is .
Creating boot environment .
Creating file systems on boot environment .
Creating file system for in zone on .
Populating file systems on boot environment .
Checking selection integrity.
Integrity check OK.
Populating contents of mount point
.
Copying.
[...]

{na innej konsoli:
> df -h | egrep 'c0d0|rpool'
/dev/dsk/c0d0s0 12G 6,4G 5,0G 57% /
rpool 12G 19K 3,3G 1% /rpool
rpool/ROOT 12G 18K 3,3G 1% /rpool/ROOT
rpool/ROOT/be_zfs_b90 12G 6,3G 3,3G 66% /.alt.tmp.b-Wzb.mnt
}

[...]
Creating shared file system mount points.
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Creating compare databases for boot environment .
Creating compare database for file system
.
Updating compare databases on boot environment .
Making boot environment bootable.
Updating bootenv.rc on ABE .
ERROR: File
not found in top level dataset for BE
ERROR: Failed to copy file
from top level dataset to BE
ERROR: Unable to delete GRUB menu entry for boot environment .
ERROR: Cannot make file systems for boot environment .


No i zaczyna się :) Nie mam zarówno czasu, ani chęci szukać co poszło nie tak,
jednak szybko patrząc w core widzę, że jakiś system plików był już zamontowany.

System na ZFS się nie uruchomi, trzeba zrobić jeszcze małą sztuczkę ...

# zfs set mountpoint=legacy rpool/ROOT/be_zfs_b90
# cd /etc/lu

(powinienem mieć ICF.2, jednek LU go nie utworzył...)
# cp ICF.1 ICF.2
# vi ICF.2
# cat ICF.2
be_zfs_b90:-:/dev/dsk/c0d0s1:swap:2104515
be_zfs_b90:/:rpool/ROOT/be_zfs_b90:zfs:0

# lumount -n be_zfs_b90
/.alt.be_zfs_b90
# luumount -n be_zfs_b90

# luactivate -n be_zfs_b90
System has findroot enabled GRUB
Generating boot-sign, partition and slice information for PBE

Generating boot-sign for ABE
ERROR: File
not found in top level dataset for BE
Generating partition and slice information for ABE
Boot menu exists.
Generating direct boot menu entries for PBE.
Generating xVM menu entries for PBE.
Generating direct boot menu entries for ABE.
Generating xVM menu entries for ABE.
No more bootadm entries. Deletion of bootadm entries is complete.
GRUB menu default setting is unaffected
Done eliding bootadm entries.

**********************************************************************

The target boot environment has been activated. It will be used when you
reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You
MUST USE either the init or the shutdown command when you reboot. If you
do not use either init or shutdown, the system will not boot using the
target BE.

**********************************************************************

In case of a failure while booting to the target BE, the following process
needs to be followed to fallback to the currently working boot environment:

1. Boot from Solaris failsafe or boot in single user mode from the Solaris
Install CD or Network.

2. Mount the Parent boot environment root slice to some directory (like
/mnt). You can use the following command to mount:

mount -Fufs /dev/dsk/c0d0s0 /mnt

3. Run utility with out any arguments from the Parent boot
environment root slice, as shown below:

/mnt/sbin/luactivate

4. luactivate, activates the previous working boot environment and
indicates the result.

5. Exit Single User mode and reboot the machine.

**********************************************************************

Modifying boot archive service
Activation of boot environment successful.



# cat /etc/bootsign
BE_be0_snv90

# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
be0_snv90 yes yes no no -
be_zfs_b90 yes no yes no -

# lumount -n be_zfs_b90
/.alt.be_zfs_b90
# cat /.alt.be_zfs_b90/etc/bootsign
cat: cannot open /.alt.be_zfs_b90/etc/bootsign: No such file or directory

# echo "be_zfs_b90" > /.alt.be_zfs_b90/etc/bootsign
# cat /.alt.be_zfs_b90/etc/bootsign
be_zfs_b90
# luumount -n be_zfs_b90

W zasadzie, to chyba wszystko, po 'init 6' pojawi się nowe menu w GRUBie.

# init 6

[...]

# uname -srv
SunOS 5.11 snv_90
# lustatus
Boot Environment Is Active Active Can Copy
Name Complete Now On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
be0_snv90 yes no no yes -
be_zfs_b90 yes yes yes no -
# df -h | head -2
Filesystem size used avail capacity Mounted on
rpool/ROOT/be_zfs_b90 12G 6,7G 2,8G 71% /
# swap -l
swapfile dev swaplo blocks free
/dev/zvol/dsk/rpool/swap 182,2 8 2105336 2105336
#


wtorek, 3 czerwca 2008

pbackup na Solarisie

Kiedyś napisałem programik w /bin/sh do tworzenia kopii plików, katalogów oraz surowych partycji.
Jako mały trening przeportowałem go na Solaris, jednak nie próbowałem go jeszcze uruchamiać na innych systemach, więc mogą i pewnie są jeszcze gdzieś BUGi.
Podam mały przykład jak zrobić kopię pliku (to może być również dysk, partycja, itp).
pbackup w trybie 'RAW' tnie plik źródłowy na 100MB kawałki, kompresuje je, robi sumy kontrolne i zapisuje informacje do logów.
Zrobimy kopię pliku 'source.raw', zamiast pliku to może być partycja lub cały dysk.

-bash-3.2$ ls -lh
total 66
-rw-r--r-- 1 pbackup-usr other 1,0K cz 3 20:30 local.cshrc
-rw-r--r-- 1 pbackup-usr other 1002 cz 3 20:30 local.login
-rw-r--r-- 1 pbackup-usr other 1019 cz 3 20:30 local.profile
-rwxr-xr-x 1 pbackup-usr root 23K cz 3 22:58 pbackup
-rwxr-xr-x 1 pbackup-usr root 1,5K cz 3 20:30 pbackup_cut
-rwxr-xr-x 1 pbackup-usr root 1,7K cz 3 23:12 pbackup_raw_restore
-rwxr-xr-x 1 pbackup-usr other 23K cz 3 22:29 pbackup_v3.4
-rw------- 1 pbackup-usr other 400M cz 3 22:44 source.raw
-bash-3.2$ ./pbackup -r -M -c /export/home/pbackup-usr/my_backup -T /export/home/pbackup-usr/source.raw
pbackup version current

new backup directory: /export/home/pbackup-usr/my_backup/2008_06_03__23-13_52-full

Date of backup: 2008_06_03__23-13_52
##################################################
Use suffix: *.tar.gz

##################################################
Raw partitions:
Using file /export/home/pbackup-usr/my_backup/2008_06_03__23-13_52-full/__tmp_raw
raw_bs=1000000 raw_count=100

*** partition: /export/home/pbackup-usr/source.raw => raw____export___home___pbackup-usr___source.raw
status: 1 - copying, 2 - compressing, 3 - checking
raw____export___home___pbackup-usr___source.raw
skip: 0 file: raw____export___home___pbackup-usr___source.raw.1000 1 2 3 md5 ... ok
skip: 100 file: raw____export___home___pbackup-usr___source.raw.1001 1 2 3 md5 ... ok
skip: 200 file: raw____export___home___pbackup-usr___source.raw.1002 1 2 3 md5 ... ok
skip: 300 file: raw____export___home___pbackup-usr___source.raw.1003 1 2 3 md5 ... ok
skip: 400 file: raw____export___home___pbackup-usr___source.raw.1004 1 2 3 md5 ... ok

Compressing /export/home/pbackup-usr/my_backup/2008_06_03__23-13_52-full/log ... ok
Done
-bash-3.2$



Tak wygląda kopia:

-bash-3.2$ ls -alh my_backup/
total 25
drwxr-x--- 3 pbackup-usr other 3 cz 3 23:13 .
drwx------ 3 pbackup-usr other 13 cz 3 23:13 ..
drwxr-x--- 2 pbackup-usr other 13 cz 3 23:14 2008_06_03__23-13_52-full
-bash-3.2$ ls -alh my_backup/2008_06_03__23-13_52-full/
total 68
-rw-r----- 1 pbackup-usr other 36 cz 3 23:13 __tmp_raw
drwxr-x--- 2 pbackup-usr other 13 cz 3 23:14 .
drwxr-x--- 3 pbackup-usr other 3 cz 3 23:13 ..
-rw-r----- 1 pbackup-usr other 0 cz 3 23:14 .all_done
-rw-r----- 1 pbackup-usr other 9 cz 3 23:13 date
-rw-r----- 1 pbackup-usr other 371 cz 3 23:14 log.gz
-rw-r----- 1 pbackup-usr other 372 cz 3 23:14 log~.gz
-rw-r----- 1 pbackup-usr other 95K cz 3 23:13 raw____export___home___pbackup-usr___source.raw.1000.gz
-rw-r----- 1 pbackup-usr other 95K cz 3 23:13 raw____export___home___pbackup-usr___source.raw.1001.gz
-rw-r----- 1 pbackup-usr other 95K cz 3 23:14 raw____export___home___pbackup-usr___source.raw.1002.gz
-rw-r----- 1 pbackup-usr other 95K cz 3 23:14 raw____export___home___pbackup-usr___source.raw.1003.gz
-rw-r----- 1 pbackup-usr other 18K cz 3 23:14 raw____export___home___pbackup-usr___source.raw.1004.gz
-rw-r----- 1 pbackup-usr other 450 cz 3 23:14 raw.md5
-bash-3.2$


Teraz przywrócimy kopię w inne miejsce.
Na początku pbackup sprawdza sumy kontrolne kopii, dopiero potem przywraca dane:

-bash-3.2$ ./pbackup_raw_restore my_backup/2008_06_03__23-13_52-full/raw____export___home___pbackup-usr___source.raw my_restored
pbackup_raw_restore version 0.3

source=my_backup/2008_06_03__23-13_52-full/raw____export___home___pbackup-usr___source.raw
destination=my_restored
Checking source:
my_backup/2008_06_03__23-13_52-full/raw____export___home___pbackup-usr___source.raw.1000.gz ... ok
my_backup/2008_06_03__23-13_52-full/raw____export___home___pbackup-usr___source.raw.1001.gz ... ok
my_backup/2008_06_03__23-13_52-full/raw____export___home___pbackup-usr___source.raw.1002.gz ... ok
my_backup/2008_06_03__23-13_52-full/raw____export___home___pbackup-usr___source.raw.1003.gz ... ok
my_backup/2008_06_03__23-13_52-full/raw____export___home___pbackup-usr___source.raw.1004.gz ... ok
DD_RAW_BS=1000000 DD_RAW_COUNT=100
Restoring my_backup/2008_06_03__23-13_52-full/raw____export___home___pbackup-usr___source.raw.* to my_restored ...
my_backup/2008_06_03__23-13_52-full/raw____export___home___pbackup-usr___source.raw.1000.gz seek: 0 ... ok
my_backup/2008_06_03__23-13_52-full/raw____export___home___pbackup-usr___source.raw.1001.gz seek: 100 ... ok
my_backup/2008_06_03__23-13_52-full/raw____export___home___pbackup-usr___source.raw.1002.gz seek: 200 ... ok
my_backup/2008_06_03__23-13_52-full/raw____export___home___pbackup-usr___source.raw.1003.gz seek: 300 ... ok
my_backup/2008_06_03__23-13_52-full/raw____export___home___pbackup-usr___source.raw.1004.gz seek: 400 ... ok

ok
-bash-3.2$ ls -lh
total 70
-rw-r--r-- 1 pbackup-usr other 1,0K cz 3 20:30 local.cshrc
-rw-r--r-- 1 pbackup-usr other 1002 cz 3 20:30 local.login
-rw-r--r-- 1 pbackup-usr other 1019 cz 3 20:30 local.profile
drwxr-x--- 3 pbackup-usr other 3 cz 3 23:13 my_backup
-rw-r--r-- 1 pbackup-usr other 400M cz 3 23:18 my_restored
-rwxr-xr-x 1 pbackup-usr root 23K cz 3 22:58 pbackup
-rwxr-xr-x 1 pbackup-usr root 1,5K cz 3 20:30 pbackup_cut
-rwxr-xr-x 1 pbackup-usr root 1,7K cz 3 23:12 pbackup_raw_restore
-rwxr-xr-x 1 pbackup-usr other 23K cz 3 22:29 pbackup_v3.4
-rw------- 1 pbackup-usr other 400M cz 3 22:44 source.raw
-bash-3.2$


Pliki są identyczne:

-bash-3.2$ cmp source.raw my_restored
-bash-3.2$



Pbackup wyświetla ustawione zmienne:

-bash-3.2$ ./pbackup -H
pbackup version current

Variables:
DIR_NEW_BACKUP=2008_06_03__23-19_24
DIR_BACKUP=/home/BACKUP
DIR_BR=
DIR_RAW=
DIR_DIRS=
FILE_MD5=md5
FILE_LOG=log
FILE_DIRS=/export/home/pbackup-usr/.pbackup_dirs
FILE_DIRS_EXCLUDE=/export/home/pbackup-usr/.pbackup_dirs_exclude
FILE_BR=/export/home/pbackup-usr/.pbackup_br
FILE_RAW=/export/home/pbackup-usr/.pbackup_raw
FILE_BACKUP_TYPE=dirs_type
FILE_TMP_LOG=__tmp_log
FILE_TMP_DIRS=__tmp_dirs
FILE_TMP_DIRS_EXCLUDE=__tmp_dirs_exclude
FILE_TMP_BR=__tmp_br
FILE_TMP_RAW=__tmp_raw
DEBUG=NO
VERBOSE=NO
BACKUP_DIRS=YES
BACKUP_BR=NO
BACKUP_RAW=NO
USE_BZIP2=NO
USE_DIRS_EXCLUDE=NO
SHOW_DIRS_EXCLUDE=YES
SHOW_FIND_LAST=YES
DD_BR_BS=1000
DD_BR_COUNT=64
DD_RAW_BS=1000000
DD_RAW_COUNT=100
UMASK=0027
INCR_LAST=NO
INCR_NEWER=NO
-bash-3.2$



Oraz wszystkie dostępne parametry:

-bash-3.2$ ./pbackup -h
pbackup version current

Usage: ./pbackup [OPTIONS]

OPTIONS:
-a backup type = full
-b use bzip2
-B use gzip
-c /my_backup set DIR_BACKUP
-C new_backup set DIR_NEW_BACKUP
-d my_file_dirs.txt set FILE_DIRS
-D "~/bin /opt" list of directories
-e dirs_exclude.txt path to FILE_DIRS_EXCLUDE
-E "*.old" exclude from backup
-g DEBUG=YES
-G DEBUG=NO
-h show help
-H show variables
-m BACKUP_DIRS=YES
-M BACKUP_DIRS=NO
-n 20050720 incremental, newer than 2005-07-20
-N 5 incremental, last 5 days
With this option, exclude file doesn't work!!!

-p br.txt path to FILE_BR
-P "/dev/hda /dev/hdb" list of boot records
-q quiet
-r BACKUP_RAW=YES
-R BACKUP_RAW=NO
-s BACKUP_BR=YES
-S BACKUP_BR=NO
-t my_partitions.txt path to FILE_RAW
-T "/dev/hda4 /dev/hdb2" list of partitions
-v verbose
-V show version
-x USE_DIRS_EXCLUDE=YES
-X USE_DIRS_EXCLUDE=NO
-y SHOW_DIRS_EXCLUDE=YES
-Y SHOW_DIRS_EXCLUDE=NO
-z SHOW_FIND_LAST=YES
-Z SHOW_FIND_LAST=NO

license: CDDL
author: Piotr Jasiukajtis / estibi
-bash-3.2$

Replikacja ZFS za pomocą: est-repl

Jakiś czas temu napisałem proste narzędzie do zdalnej replikacji ZFS między dwoma hostami.
Widzę, że nadal nie ma tego typu narzędzi dostępnych w systemie,
więc postanowiłem wypuścić 'est-repl' na świat :)

est-repl - główne narzędzie, replikuje przyrostowo system plików
est-repl.config - konfiguracja
est-repl_initial - tworzy pełną replikę - nie przyrostową
est-repl_initial_CREATE - tworzy pełną replikę, usuwa zdalny system plików - uruchamiane do inicjacji zdalnego systemu plików
est-repl_initial_RECURSIVELY - tworzy pełną replikę, usuwa zdalny system plików rekurencyjnie!


Konfiguracja jest banalna:
-bash-3.00$ cat est-repl_0.1/est-repl.config
#! /bin/sh
#
# est-rep.config
#
# AUTHOR: Piotr Jasiukajtis / estibi
# VERSION: 0.1

# destination host and user
DEST_HOST="my-remote-host"
DEST_USER="my-remote-user"

# what to replicate
REPL_FS="my/dataset/to/replicate"

#DEBUG="1"

# EOF


Użytkownik na lokalnym jak i zdalnym systemie musi mieć odpowiednie uprawnienia:
-bash-3.00$ grep my-remote-user /etc/user_attr
my-remote-user::::type=normal;profiles=ZFS File System Management


Dodatkowo komunikacja między hostami odbywa się za pomocą kluczy SSH bez hasła!


A sama replikacja wygląda tak:

-bash-3.00$ ./est-repl ./est-repl.config
Using config file: ./est-repl.config
Used filesystem: data/zones_data/mail1_maildirs
NAME USED AVAIL REFER MOUNTPOINT
data/zones_data/mail1_maildirs 231M 4.77G 49.4M /zones_data/mail1_maildirs

Checking remote snapshots ...
Trying Latest remote snapshot: data/zones_data/mail1_maildirs@backup_080603_18-35-28
data/zones_data/mail1_maildirs@backup_080603_18-35-28
Restoring remote data/zones_data/mail1_maildirs ...
Latest remote snapshot: data/zones_data/mail1_maildirs@backup_080603_18-35-28
Creating snapshot ...
Creating incremental snapshot ...
Sending snapshot to host remote-host ...
inc_snap_080603_18-5 100% |*********************************************************************************************************************************| 2888 KB 00:00
Receiving snapshot ...
receiving incremental stream of data/zones_data/mail1_maildirs@backup_080603_18-55-47 into data/zones_data/mail1_maildirs@backup_080603_18-55-47
received 2.82Mb stream in 2 seconds (1.41Mb/sec)
Deleting temporary files ...
OK, done

Można go dodać to do crona, aby replikował system plików co np 5 minut:

5 * * * * /usr/est-repl /config.repl

To jest wstępna wersja, jest wiele niedociągnięć itp.
Proszę używać go na własną odpowiedzialność.

piątek, 30 maja 2008

Solaris Cluster otwarty!!!

No i nastąpił ten wielki dzień!
Wczoraj (a właściwie dzisiaj w nocy) otwarto Solaris Cluster Core! :)
http://dlc.sun.com/osol/ohac/downloads/current/

czwartek, 29 maja 2008

Zone update on attach

Wyśmienite!!! :)
Nawet działają wszystkie usługi bez żadnych modyfikacji!

Ta strefa działała na starym SXDE 9/07,
została przeniesiona na SXCE89 (swoją drogą pracujące pod xVM jako domU).

# zoneadm -z ns2 attach -u
Getting the list of files to remove
Removing 515 files
Remove 264 of 264 packages
Installing 2542 files
Add 1216 of 1216 packages
Updating editable files
The file within the zone contains a log of the zone update.
#

sobota, 24 maja 2008

Konfiguracja sieci w OpenSolaris.

Konfiguracja sieci systemu OpenSolaris wygląda podobnie jak w systemie Solaris 10.

W podanym przykładzie konfigurujemy kartę Realtek z następującymi ustawieniami:
konfiguracja statyczna - bez DHCP
interfejs karty sieciowej: rtls0
ip: 10.1.1.125
maska: 255.255.255.0
brama: 10.1.1.1
system nazewniczy: DNS
domena dns: moja.domena
serwer dns: 10.1.1.230

Na początek wyłączamy automatyczną konfigurację NWAM.

# svcadm disable svc:/network/physical:nwam


Uruchamiamy domyślną konfigurację interfejsów sieciowych.

# svcadm enable svc:/network/physical:default


Musimy wiedzieć jakie mamy karty sieciowe w systemie:

# dladm show-dev
LINK STATE SPEED DUPLEX
ath0 unknown 0Mb unknown
rtls0 up 100Mb full

Jeśli 'dladm' nie pokazuje naszej karty sieciowej, może warto zajrzeć na stronę http://homepage2.nifty.com/mrym3/taiyodo/eng/ i pobrać odpowiedni sterownik.


Chcemy skonfigurować kartę Realtek.
Usuwamy obecną konfigurację karty z systemu:

# ifconfig rtls0 unplumb


Włączamy kartę z zerowymi ustawieniami:
# ifconfig rtls0 plumb

Podnosimy interfejs i dajemy mu adres 10.1.1.125 w masce 24bitowej (255.255.255.0):
# ifconfig rtls0 up 10.1.1.125/24


Usuwamy konfigurację rutowania:
# route flush


Konfigurujemy domyślną bramkę w systemie:
# route add default 10.1.1.1
add net default: gateway 10.1.1.1


Konfigurujemy DNS jako domyślny system nazewniczy:
# cp /etc/nsswitch.dns /etc/nsswitch.conf


Upewniamy się, że mamy odpowiednio skonfigurowane DNSy:
# cat /etc/resolv.conf
domain moja.domena
nameserver 10.1.1.230
search moja.domena


W tym momencie powinniśmy mieć działające połączenie sieciowe.
Aby system miał takie ustawienia po restarcie, musimy jeszcze zrobić kilka czynności.


W tym celu upewniamy się, że mamy skonfigurowaną maskę naszej podsieci:
# tail -1 /etc/netmasks
10.1.1.0 255.255.255.0


Powinniśmy ustawić domyślną bramkę:
# cat /etc/defaultrouter
10.1.1.1


Bardzo ważna jest konfiguracja nazwy maszyny:
# cat /etc/nodename
myhost

Nazwa maszyny musi się znajdować w /etc/hosts
# grep myhost /etc/hosts
10.1.1.230 myhost.doja.domena myhost loghost


Aby interfejs rtls0 był skonfigurowany z ustawieniami maszyny 'myhost',
musimy wpisać nazwę 'myhost' do pliku /etc/hostname.rtls0.
Upewniamy się, że to zrobiliśmy:
# cat /etc/hostname.rtls0
myhost



Teraz ustawienia powinny przetrwać restart systemu.
Można również zrobić to restartując usługę svc:/network/physical:default:

# svcadm restart svc:/network/physical:default

sobota, 10 maja 2008

2008.05 i xVM

Instalujemy serwer xVM na OpenSolaris 2008.05 w 32bitach bez akceleracji sprzętowej.

# cat /etc/release
OpenSolaris 2008.05 snv_86_rc3 X86
Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 26 April 2008


Tworzymy nowe środowisko uruchomieniowe:
# beadm create os_test



Edytujemy wpisy bootloadera, plik znajduje się tu:
/rpool/boot/grub/menu.lst

Modyfikujemy sekcję aby wyglądała podobnie do tej:
title os_test
bootfs rpool/ROOT/os_test
kernel$ /boot/$ISADIR/xen.gz
module$ /platform/i86xpv/kernel/$ISADIR/unix /platform/i86xpv/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive
#============ End of LIBBE entry =============



Instalujemy dodatkowe paczki.
W moim przypadku już wcześniej zainstalowałem xvm, stąd ten komunikat:
# pkg install SUNWxvm
Nothing to install in this image (is this package already installed?)

#pkg info SUNWxvm
Name: SUNWxvm
Summary: Hypervisor Header Files
State: Installed
Authority: opensolaris.org (preferred)
Version: 3.1
Build Release: 5.11
Branch: 0.86
Packaging Date: Sat Apr 26 18:25:06 2008
Size: 11.1 MB
FMRI: pkg:/SUNWxvm@3.1,5.11-0.86:20080426T182506Z


# pkg install SUNWvirtinst
DOWNLOAD PKGS FILES XFER (MB)
Completed 1/1 14/14 0.18/0.18

PHASE ACTIONS
Install Phase 24/24

Do prawidłowego działania potrzebujemy jeszcze:

# pkg install SUNWurlgrabber
DOWNLOAD PKGS FILES XFER (MB)
Completed 1/1 16/16 0.28/0.28

PHASE ACTIONS
Install Phase 26/26

# pkg install SUNWlibvirt
DOWNLOAD PKGS FILES XFER (MB)
Completed 1/1 13/13 2.10/2.10

PHASE ACTIONS
Install Phase 42/42


Uruchamiamy ponownie system i wybieramy środowisko 'os_test' w grubie.

Po uruchomieniu powinniśmy mieć jądro działające na architekturze xen.
Chodzi nam o i86xpv:
# uname -srvmpi
SunOS 5.11 snv_86 i86pc i386 i86xpv


Sprawdzamy, czy usługi xvm są uruchomione, jeśli nie, to musimy je ręcznie uruchomić:
# svcs -a | grep xvm
online 14:37:20 svc:/system/xvm/store:default
online 14:37:26 svc:/system/xvm/xend:default
online 14:37:45 svc:/system/xvm/console:default
online 14:37:49 svc:/system/xvm/domains:default



Zainstalujmy SXCE86 jako system gość :)

Tworzymy dysk dla nowego systemu:
# zfs create rpool/export/xvm
# zfs create rpool/export/xvm/snv86
# zfs create -V 8g rpool/export/xvm/snv86/disk

# ls /dev/zvol/dsk/rpool/export/xvm/snv86/disk
/dev/zvol/dsk/rpool/export/xvm/snv86/disk



Aby zadziałał xVM musimy jeszcze dodać obsługę zdarzeń XEN:

# /usr/sbin/syseventadm list -R / -c EC_xendev
Jeśli to nic nie zwraca, to wpisujemy:

# /usr/sbin/syseventadm add -R / -c EC_xendev /usr/lib/xen/scripts/xpvd-event 'action=$subclass' 'domain=$domain' 'vdev=$vdev' 'device=$device' 'devclass=$devclass' 'febe=$fob'


# /usr/sbin/syseventadm list -R / -c EC_xpvsys
Jeśli to nic nie zwraca, to wpisujemy:

# /usr/sbin/syseventadm add -R / -c EC_xpvsys /usr/lib/xen/scripts/xpvsys-event 'subclass=$subclass' 'shutdown=$shutdown'

Uruchamiamy ponownie usługę:
# /usr/sbin/syseventadm restart




Instalujemy SXCE86 w xVM korzystając z parawirtualizacji (bez sprzętowej akceleracji HVM):
# virt-install -n nv86_01 -f /dev/zvol/dsk/rpool/export/xvm/snv86/disk --paravirt --nographics --ram=400 -l /mnt/x/sol-nv-b86-x86-dvd.iso




v3.1.2-xvm chgset 'Mon Mar 17 23:11:31 2008 -0700 15633:727210f4a544'
SunOS Release 5.11 Version snv_86 32-bit
Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Configuring /dev
-

1. Solaris Interactive Text (Console session) (default)
2. Apply driver updates
3. Single user shell

Enter the number of your choice.
Timed out, continuing.

Solaris Interactive Text (Console session)

Using install cd in /dev/dsk/c0d1p0
Using RPC Bootparams for network configuration information.
Attempting to configure interface xnf0...
Skipped interface xnf0
Reading ZFS config: done.


Po wstępnej konfiguracji zaczyna się instalować :)



Solaris Initial Install


MBytes Installed: 0.04
MBytes Remaining: 317.08

Installing: Core Kernel Architecture i86xpv, (Root)




-
| | | | | |
0 20 40 60 80 100


Po instalacji w systemie dom0 widzimy nowy system:
2# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 603 1 r----- 214.1
nv86_01 5 400 1 ------ 86.1


W systemie gość:
# uname -a
SunOS snv86-01 5.11 snv_86 i86pc i386 i86xpv

piątek, 9 maja 2008

xVM

Zrobiłem kilka screenów z OpenSolarisowym xVM:
http://picasaweb.google.com/estseg/SunXVM#

piątek, 2 maja 2008

Wymuszony upgrade...

Dzisiaj postanowiłem się zmierzyć z najnowszym patchem jądra 127128-11.

Łatka ta aktualizuje jądro Solaris 10 do wersji jaka się znajduje w najnowszej
aktualizacji (piątej) Solaris 10u5.
Problem z tą łatką uniemożliwia uruchomienie 32bitowego systemu
na starym procesorze (w moim przypadku - Celeron 733Mhz).
Brakuje jakichkolwiek informacji na ten temat w internecie - jedynie co
znalazłem, to szczątkowe informacje, iż problem taki wystąpił u kilku osób.

Jest to bardzo stary sprzęt, jednak pełni u mnie rolę serwera archiwizacji.
Nie wyobrażam sobie trzymać danych lub kopii na innym systemie plików
niż ZFS, więc postanowiłem zobaczyć, czy problem występuje również
na najnowszej dostępnej wersji Solaris Nevada.

Jako iż używam LiveUpgrade nie muszę się martwić, że coś się nie
powiedzie przy aktualizacji (swoją drogą tak właśnie testowałem łatki
do Solaris 10).

Po zaktualizowaniu Solaris 10 do Solaris Nevada (snv87) system się
uruchomił :) co oznacza, że był to tylko problem z łatką (127128-11).

Mam cały czas 3 środowiska uruchomieniowe, jednak myślę, że zostanę
już przy OpenSolaris na tym sprzęcie. Zawsze nowsza technologia i
dostępny kod źródłowy, co daje większe możliwości rozwiązania
problemów.

niedziela, 27 kwietnia 2008

Milax cd...

Milax to bardzo okrojona dystrybucja wzorowana na Solaris Nevada.
Chciałem tylko dodać, że jako jedyna (oprócz Solaris 9)
uruchomiła się (i działała) na bardzo starym sprzęcie (celeron
466Mhz/256MB ram).

OpenSolaris 2008.5 RC

Już niedługo zobaczymy binarną dystrybucję 'OpenSolaris 2008.5',
jednak już teraz można pobrać wersję RC2a stąd.
OpenSolaris 2008.5 (indiana) jest wzorowany na Ubuntu,
więc mamy livecd z możliwością instalacji na dysku.

Nie ma jeszcze obsługi języka polskiego, ale całość się dobrze prezentuje.
Instalator ma już możliwość partycjonowania dysków,
czego nie widzieliśmy w poprzednich wersjach (developer preview).

Co najważniejsze - wszystko jest w systemie graficznym (oprócz
wyboru języka).

Został zmieniony również motyw graficzny - bardzo ładny swoją drogą.

piątek, 25 kwietnia 2008

Milax na OpenSolaris.org

Minidystrybucja Milax znalazła już swoje miejsce jako projekt na opensolaris.org.
http://www.opensolaris.org/os/project/milax

środa, 23 kwietnia 2008

Damn Small Solaris == Milax

Milax - mini dystrybucja livecd oparta na Solaris Express
ma już wersję 0.3.
Ta wersja oparta jest o build 85. Zajmuje 107MB!
milax

Solaris 10 update 5 i Live Upgrade

Ci, którzy myślą o aktualizacji Solarisa 10 do wersji u5 korzystając z
Live Upgrade, muszą jeszcze trochę poczekać na odpowiednie łatki...
Tzn łatka istnieje (137322-01), ale trzeba mieć wykupiony support aby
ją pobrać.

Można jednak to trochę obejść ... ;)
Na Solaris 10u4 usuwamy paczkę SUNWbzip:

# pkgrm SUNWbzip

The following package is currently installed:
SUNWbzip The bzip compression utility
(i386) 11.10.0,REV=2005.01.08.01.09

Do you want to remove this package? [y,n,?,q] y

## Removing installed package instance
## Verifying package dependencies in global zone
WARNING:
The package depends on the package
currently being removed.
Dependency checking failed.

Do you want to continue with the removal of this package [y,n,?,q] y
## Processing package information.
## Removing pathnames in class
/usr/lib/llib-lbz2.ln
/usr/lib/llib-lbz2
/usr/lib/libbz2.so.1
/usr/lib/libbz2.so
/usr/lib/amd64/llib-lbz2.ln
/usr/lib/amd64/libbz2.so.1
/usr/lib/amd64/libbz2.so
/usr/lib/amd64
/usr/lib
/usr/include/bzlib.h
/usr/include
/usr/bin/bzmore
/usr/bin/bzless
/usr/bin/bzip2recover
/usr/bin/bzip2
/usr/bin/bzgrep
/usr/bin/bzfgrep
/usr/bin/bzegrep
/usr/bin/bzdiff
/usr/bin/bzcmp
/usr/bin/bzcat
/usr/bin/bunzip2
/usr/bin
/usr
## Updating system information.

Removal of was successful.




Następnie instalujemy paczkę SUNWbzip z płyty od Solaris 10u5 :)


# pkgadd -d . SUNWbzip

Processing package instance from

The bzip compression utility(i386) 11.10.0,REV=2005.01.08.01.09

[ pełno zbędnych informacji ]

Installing The bzip compression utility as

## Installing part 1 of 1.
/usr/bin/7z
/usr/bin/7za
/usr/bin/7zr
/usr/bin/bzdiff
/usr/bin/bzgrep
/usr/bin/bzip2
/usr/bin/bzip2recover
/usr/bin/bzmore
/usr/bin/p7zip
/usr/include/bzlib.h
/usr/lib/7z/7z.so
/usr/lib/7z/Codecs/Rar29.so
/usr/lib/amd64/libbz2.so
/usr/lib/amd64/libbz2.so.1
/usr/lib/amd64/llib-lbz2.ln
/usr/lib/libbz2.so
/usr/lib/libbz2.so.1
/usr/lib/llib-lbz2
/usr/lib/llib-lbz2.ln
/usr/share/man/man1/7z.1
/usr/share/man/man1/7za.1
/usr/share/man/man1/7zr.1
/usr/share/man/man1/p7zip.1
[ verifying class ]
/usr/bin/bunzip2
/usr/bin/bzcat
/usr/bin/bzcmp
/usr/bin/bzegrep
/usr/bin/bzfgrep
/usr/bin/bzless

Installation of was successful.



Teraz synchronizujemy nowe BE:

# time lumake -n be2_s10u5

Creating configuration for boot environment .
Source boot environment is .
Determining the split file systems of .
Determining the merge point of .
Determining the size and inode count for the split filesystem of .
Creating boot environment .
Checking for GRUB menu on boot environment .
The boot environment does not contain the GRUB menu.
Creating file systems on boot environment .
Creating file system for in zone on .
Mounting file systems for boot environment .
Calculating required sizes of file systems for boot environment .
Populating file systems on boot environment .
Checking selection integrity.
Integrity check OK.
Populating contents of mount point .
Copying.
[ itd, itp ]



Dalej można już standardomo (luupgrade, luactivate).


Dlaczego takie obejście?
Ponieważ system potrzebuje 7zip do aktualizacji do Solaris 10 update 5.

sobota, 12 kwietnia 2008

Phrack

Ktoś jeszcze go pamięta? :)

.:: April 12 2008 00:00 : PHRACK #65 RELEASED ::.

http://phrack.org

Wszystko się rozwija.

Najbliższe kilka miesięcy będzie bardzo interesujące.
- Już za kilka dni będzie można pobrać piąty update Solarisa 10.
- W buildzie 89 Solaris Navada będzie wspierany ZFS root w instalatorze.
- W najbliższym czasie planowane jest włączenie szyfrowania ZFS do głównego kodu.
- Niebawem zostanie wydana dystrybucja 'OpenSolaris Developer' (Indiana).
- Pojawi się nowe Communication Suite.
- Pojawiły się pierwsze źródła SAM-QFS, czekamy na oficjalne paczki.

środa, 19 marca 2008

Linki na dzień 2008-03-19

Heads Up: Changing home directory for the root user at OpenSolaris.org

The Flask Security Architecture: System Support for Diverse Security Policies

The Flawed Assumption of Security in Modern Computing Environments

http://del.icio.us/estibi/080319

niedziela, 16 marca 2008

Zmiany na blogu.

Dodałem trochę linków w kategorii "Inne".
Część z nich dotyczy produktów SUNa, ale nie tylko ...

środa, 12 marca 2008

Otwarcie kodu SAM / QFS!

Otwarcie kodu SAM oraz QFS jest planowane pod
koniec przyszłego tygodnia! Wspaniała wiadomość! :))))

wtorek, 4 marca 2008

Fine Grained Access Policy

Projekt FGAP - rozszeżający obecny system przywilejów Solarisa
został włączony do ON w buildzie 85.

W skrócie można powiedzieć, że pozwala on na definiowanie
polityk zabezpieczeń np aby dany proces mógł odczytać tylko i
wyłącznie wybrane pliki, albo mógł otworzyć tylko i wyłącznie
dany port TCP/IP.

piątek, 29 lutego 2008

OpenDS milestone 1

Projekt OpenDS osiągnął status milestone 1.
Milestone 1 w pełni wspiera standard LDAPv3 oraz
dodatkowe rozszerzenia.

Wydanie wersji oficjalnej 1.0 jest planowane w maju.

Clearview poprzez BFU + LiveUpgrade

Więc chcemy potestować Clearview ..., jeśli nie chcemy czekać
minimum 6 miesięcy, aż będzie włączone do źródeł ON,
możemy zainstalować najnowsze binaria oparte na buildzie 83.

Mamy już przygotowane specjalne środowisko uruchomieniowe:
# lucurr
be2_snv82_bfu_cv83

# uname -srv
SunOS 5.11 snv_82


Musimy rozpakować pobrane binaria:
# bzcat cv_83-SUNWonbld-20080219.i386.tar.bz2 | tar xvf -
# bzcat cv_83-bfu-20080219.i386.tar.bz2 | tar xvf -

Jeśli mamy zainstalowaną paczkę SUNWonbld, należy ją odinstalować!
Instalujemy paczkę SUNWonbld dostarczoną przez clearview:
# pkgadd -d /export/home/estibi/cv_83/onbld SUNWonbld

Processing package instance from

OS-Net Build Tools(i386) 11.11,REV=2008.02.19.14.29
Copyright 2008 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Using as the package base directory.
## Processing package information.
## Processing system information.
1 package pathname is already properly installed.
## Verifying package dependencies.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

This package contains scripts which will be executed with super-user
permission during the process of installing this package.

Do you want to continue with the installation of [y,n,?] y

Installing OS-Net Build Tools as

## Installing part 1 of 1.
/opt/onbld/bin/Install
/opt/onbld/bin/SampleLinks
/opt/onbld/bin/SamplePkgLinks
/opt/onbld/bin/acr
/opt/onbld/bin/bfu
/opt/onbld/bin/bfudrop
/opt/onbld/bin/bindrop
/opt/onbld/bin/bldenv
/opt/onbld/bin/bringovercheck
/opt/onbld/bin/build_cscope
/opt/onbld/bin/cddlchk
/opt/onbld/bin/check_fnames
/opt/onbld/bin/check_rtime
/opt/onbld/bin/checkpaths
/opt/onbld/bin/checkproto
/opt/onbld/bin/cstyle
/opt/onbld/bin/ctfcvtptbl
/opt/onbld/bin/ctffindmod
/opt/onbld/bin/elfcmp
/opt/onbld/bin/flg.flp
/opt/onbld/bin/genoffsets
/opt/onbld/bin/get_depend_info
/opt/onbld/bin/hdrchk
/opt/onbld/bin/i386/abi_audit
/opt/onbld/bin/i386/aw
/opt/onbld/bin/i386/bfuld
/opt/onbld/bin/i386/codereview
/opt/onbld/bin/i386/cpiotranslate
/opt/onbld/bin/i386/cscope-fast
/opt/onbld/bin/i386/ctfconvert
/opt/onbld/bin/i386/ctfdump
/opt/onbld/bin/i386/ctfmerge
/opt/onbld/bin/i386/ctfstabs
/opt/onbld/bin/i386/cw
/opt/onbld/bin/i386/elfextract
/opt/onbld/bin/i386/fastfs
/opt/onbld/bin/i386/findunref
/opt/onbld/bin/i386/install
/opt/onbld/bin/i386/lintdump
/opt/onbld/bin/i386/mbh_patch
/opt/onbld/bin/i386/ndrgen
/opt/onbld/bin/i386/ndrgen1
/opt/onbld/bin/i386/pmodes
/opt/onbld/bin/i386/protocmp
/opt/onbld/bin/i386/protolist
/opt/onbld/bin/intf_check
/opt/onbld/bin/jstyle
/opt/onbld/bin/keywords
/opt/onbld/bin/make_pkg_db
/opt/onbld/bin/makebfu
/opt/onbld/bin/mkacr
/opt/onbld/bin/mkbfu
/opt/onbld/bin/mkclosed
/opt/onbld/bin/mkreadme_osol
/opt/onbld/bin/mktpl
/opt/onbld/bin/nightly
/opt/onbld/bin/onblddrop
/opt/onbld/bin/protocmp.terse
/opt/onbld/bin/sccscheck
/opt/onbld/bin/sccscp
/opt/onbld/bin/sccshist
/opt/onbld/bin/sccsmv
/opt/onbld/bin/sccsrm
/opt/onbld/bin/sdrop
/opt/onbld/bin/signit
/opt/onbld/bin/signproto
/opt/onbld/bin/validate_flg
/opt/onbld/bin/validate_paths
/opt/onbld/bin/wdiff
/opt/onbld/bin/webrev
/opt/onbld/bin/ws
/opt/onbld/bin/wsdiff
/opt/onbld/bin/wx
/opt/onbld/bin/xref
/opt/onbld/bin/xref.mk
/opt/onbld/env/developer
/opt/onbld/env/gatekeeper
/opt/onbld/etc/abi/ABI_i386.db
/opt/onbld/etc/abi/ABI_sparc.db
/opt/onbld/etc/abi/exceptions
/opt/onbld/gk/.cshrc
/opt/onbld/gk/.login
/opt/onbld/lib/i386/libdwarf.so.1
/opt/onbld/man/man1/Install.1
/opt/onbld/man/man1/acr.1
/opt/onbld/man/man1/bldenv.1
/opt/onbld/man/man1/bringovercheck.1
/opt/onbld/man/man1/cddlchk.1
/opt/onbld/man/man1/check_rtime.1
/opt/onbld/man/man1/checkpaths.1
/opt/onbld/man/man1/codereview.1
/opt/onbld/man/man1/cstyle.1
/opt/onbld/man/man1/cw.1
/opt/onbld/man/man1/flg.flp.1
/opt/onbld/man/man1/get_depend_info.1
/opt/onbld/man/man1/intf_check.1
/opt/onbld/man/man1/lintdump.1
/opt/onbld/man/man1/make_pkg_db.1
/opt/onbld/man/man1/mkacr.1
/opt/onbld/man/man1/nightly.1
/opt/onbld/man/man1/sccscheck.1
/opt/onbld/man/man1/sccscp.1
/opt/onbld/man/man1/sccsmv.1
/opt/onbld/man/man1/sccsrm.1
/opt/onbld/man/man1/signit.1
/opt/onbld/man/man1/signproto.1
/opt/onbld/man/man1/webrev.1
/opt/onbld/man/man1/ws.1
/opt/onbld/man/man1/wsdiff.1
/opt/onbld/man/man1/wx.1
/opt/onbld/man/man1/xref.1
[ verifying class ]
/opt/onbld/bin/i386/install.bin

Eksportujemy niezbędne do BFU zmienne:
# export BFULD=/opt/onbld/bin/i386/bfuld
# export FASTFS=/opt/onbld/bin/i386/fastfs
# export GZIPBIN=/usr/bin/gzip
# export PATH=${PATH}:/opt/onbld/bin

Uwaga, użycie BFU spowoduje, iż nie będzie działać upgrade systemu
do nowszej wersji (np sxce82 -> sxce83)!!!
Nie robimy poniższych kroków, jeśli nie mamy pełnej kopii systemu
(dump0) lub nie używamy LiveUpgrade!!! ;)


Uruchamiamy binarną aktualizację systemu BFU, od tej chwili
bieżący system jest w rękach BFU, przerwanie tego procesu
spowoduje niespójny system.
Zamykamy wszystkie programy/usługi itp.

# /opt/onbld/bin/bfu /export/home/estibi/cv_83/archives-nightly-osol/i386
Copying /opt/onbld/bin/bfu to /tmp/bfu.1037
Executing /tmp/bfu.1037 /export/home/estibi/cv_83/archives-nightly-osol/i386

Loading /export/home/estibi/cv_83/archives-nightly-osol/i386 on /

Creating bfu execution environment ...
/tmp/bfu.1037[2850]: /net/onnv.eng/export/gate/public/bin/acr: cannot open
chmod: WARNING: can't access /tmp/bfubin/acr
Verifying archives ...
Performing basic sanity checks ...
/etc/svc/repository.db: passed integrity check
Disabling kernel module unloading ... moddebug: 0 = 0x20000
Unmounting /lib/libc.so.1 ...
Disabling sendmail temporarily ...
Disabling remote logins ...
Disabling syslog temporarily ...
Killing httpd ...
Disabling fmd temporarily ...
Killing nscd ...
Turning on delayed i/o ...
Filesystem Mode
/ safe
/usr safe

Saving configuration files in /bfu.child ... 6144 blocks
Removing init.d links ... done.
Removing obsolete rc.d scripts ... done.
Extracting ufs modules for boot block ... 3260 blocks
Extracting generic.usr ... 400289 blocks
Extracting i86pc.usr ... 3260 blocks
Extracting i86xpv.usr ... 900 blocks
Extracting generic.lib ... 52265 blocks
Extracting generic.sbin ... 2820 blocks
Extracting generic.kernel ... 180505 blocks
Extracting generic.root ... 10500 blocks
Extracting i86pc.root ... 13510 blocks
Extracting i86xpv.root ... 12050 blocks
Extracting i86hvm.root ... 820 blocks
Extracting i86pc.boot ... 2750 blocks

Removing duplicate kernel binaries ...

Simulating SUNWcry* installation...

Cleaning up old Kerberos GSS-API mechanisms...

Cleaning up old RBAC profiles...


Restoring configuration files.

NEW conflict: boot/solaris/bootenv.rc
restore: boot/solaris/devicedb/master
NEW conflict: etc/acct/holidays
restore: etc/auto_home
NEW conflict: etc/crypto/kcf.conf
update: etc/crypto/pkcs11.conf
NEW conflict: etc/default/init
restore: etc/devlink.tab
restore: etc/driver_aliases
NEW conflict: etc/driver_classes
update: etc/ftpd/ftpusers
NEW conflict: etc/group
NEW conflict: etc/inet/hosts
restore: etc/inet/inetd.conf
restore: etc/inet/netmasks
NEW conflict: etc/inet/services
restore: etc/inet/sock2path
restore: etc/inittab
NEW conflict: etc/iu.ap
restore: etc/krb5/krb5.conf
NEW conflict: etc/logadm.conf
NEW conflict: etc/minor_perm
NEW conflict: etc/name_to_major
NEW conflict: etc/nsswitch.conf
NEW conflict: etc/pam.conf
NEW conflict: etc/passwd
NEW conflict: etc/path_to_inst
NEW conflict: etc/power.conf
update: etc/profile
NEW conflict: etc/remote
NEW conflict: etc/security/audit_event
NEW conflict: etc/security/auth_attr
NEW conflict: etc/security/device_policy
NEW conflict: etc/security/exec_attr
restore: etc/security/extra_privs
NEW conflict: etc/security/prof_attr
NEW conflict: etc/security/tsol/devalloc_defaults
NEW conflict: etc/shadow
update: etc/syslog.conf
update: etc/ttysrch
NEW conflict: etc/user_attr
update: etc/uucp/Dialers
NEW conflict: etc/vfstab
restore: kernel/drv/mpt.conf
update: kernel/drv/scsi_vhci.conf
restore: kernel/drv/sd.conf
preserve: kernel/misc/amd64/sysinit
preserve: kernel/misc/amd64/usbs49_fw
preserve: kernel/misc/sysinit
preserve: kernel/misc/usbs49_fw
preserve: var/adm/utmpx
preserve: var/adm/wtmpx
preserve: var/log/syslog
preserve: var/saf/zsmon/log
restore: var/spool/cron/crontabs/root
updating /platform/i86pc/amd64/boot_archive
updating /platform/i86pc/boot_archive

For each file in conflict, your version has been restored.
The new versions are under /bfu.conflicts.

MAKE SURE YOU RESOLVE ALL CONFLICTS BEFORE REBOOTING.

To install resolved changes required for reboot in the boot
archive, invoke 'bootadm update-archive'

Removing obsolete smf services ...
Disabling unneeded inetd.conf entries ...
Connecting platform and name service profiles ...
Marking converted services as enabled ...
cp: cannot access /net/greenline.eng/meta0/smf/post-5090532/sysidtool.xml
bfu: could not copy /net/greenline.eng/meta0/smf/post-5090532/sysidtool.xml
cp: cannot access /net/greenline.eng/meta0/smf/post-5090532/kdmconfig.xml
bfu: could not copy /net/greenline.eng/meta0/smf/post-5090532/kdmconfig.xml
Upgrade of amilo took 5:13.
Turning off delayed i/o and syncing filesystems ...
Filesystem Mode
/ safe
/usr safe

Entering post-bfu protected environment (shell: ksh).
Edit configuration files as necessary, then reboot.

bfu#

Teraz jesteśmy w specjalnej powłoce :)

Musimy uruchomić program 'acr' aby naprawić zależności ...

bfu# /opt/onbld/bin/acr
Getting ACR information from /export/home/estibi/cv_83/archives-nightly-osol/i386... ok

Processing global zone:
FILE ACTION STATUS
etc/crypto/kcf.conf i.kcfconfbase ok
etc/driver_classes i.kclasses ok
etc/minor_perm i.minorperm ok
etc/name_to_major i.nametomajor ok
etc/security/device_policy i.devpolicy ok
etc/iu.ap i.iuap ok
etc/path_to_inst i.preserve ok
etc/shadow i.shadow ok
etc/security/audit_event i.renamenew ok
etc/logadm.conf i.logadmconf ok
etc/passwd i.passwd ok
etc/inet/hosts i.hosts ok
etc/default/init i.definit ok
etc/remote i.etcremote ok
etc/nsswitch.conf i.nsswitch ok
etc/group i.group ok
etc/pam.conf i.pamconf ok
etc/inet/services i.services ok
etc/security/auth_attr i.rbac ok
etc/security/exec_attr i.rbac ok
etc/security/prof_attr i.rbac ok
etc/user_attr i.rbac ok
etc/vfstab i.vfstab ok
etc/acct/holidays i.preserve ok
etc/power.conf i.powerconf ok
boot/solaris/bootenv.rc i.bootenvrc ok
etc/security/tsol/devalloc_defaults i.devallocdefs ok

updating //platform/i86pc/amd64/boot_archive
updating //platform/i86pc/boot_archive
Finished. See /tmp/acr.L6aq6o/allresults for complete log.

Uruchamiamy ponownie system.
UWAGA, musimy wydać polecenie 'reboot'!!!
Nie możemy użyć w tym przypadku 'shutdown' ani 'init'.

bfu# reboot

Po restarcie mamy zaktualizowany system wraz
z nowym Clearview:

# uname -srv
SunOS 5.11 cv_83

czwartek, 28 lutego 2008

Odświeżone Clearview

W najbliższym czasie będzie dostępne do pobrania nowe Clearview
(skompilowane z nowszą wersją ON).
Na razie można pobrać wersję skompilowaną (oraz źródła)
pod build 74 (download).

Projekt Clearview pozwala na:
- Obserwację całego ruchu IP włączając w to grupy IPMP, tunele itp.
- Obserwację ruchu sieciowego między strefami (ZONES).
- Możliwość administracji wszelkimi interfejsami sieciowymi
za pomocą 'dladm'.
- Używanie VLANów oraz agregacji na wszystkich dostępnych w
OpenSolaris kartach sieciowych.
- Użycie IPMP z DHCP i protokołami routingu.
- Wiele wiele innych.

Nexenta po polsku

Patryk Kuźmicz (jamzed) stworzył serwis http://nexenta.pl/
poświęcony Nexencie - dystrybucji OpenSolarisa bazującej
na jądrze Solarisa i narzędziach Debiana/Ubuntu.

Gratulacje! :)

piątek, 22 lutego 2008

JASS w OpenSolaris

OpenSolaris będzie rozwijać JASS, który nie jest już rozwijany przez SUNa.

Powstał nowy projekt, na razie ma status ukryty.

Link do wątku:
http://www.opensolaris.org/jive/thread.jspa?threadID=52830&tstart=0