poniedziałek, 2 listopada 2009

ZFS Deduplication w snv128

Deduplikacja ZFS najprawdopodobniej pojawi się w snv128.
Już teraz jest włączona do źródeł:

$ hg log | head
changeset: 10923:df470fd79c3c
tag: tip
user: Evan Yan
date: Mon Nov 02 15:58:28 2009 +0800
summary: PSARC/2008/181 Solaris Hotplug Framework

changeset: 10922:e2081f502306
user: Jeff Bonwick
date: Sun Nov 01 14:14:46 2009 -0800
summary: PSARC 2009/571 ZFS Deduplication Properties


Update: Deduplikacja pojawi się w buildzie 128, zamiast 127 ;)

piątek, 2 października 2009

opensolaris tlen plugin

Dla tych, co potrzebują plugin komunikatora Tlen.pl na OpenSolaris'owym Pidginie ;)

Pobieramy kompilator i odpowiednie zależności z repozytorium OpenSolaris:
# pkg install -v SUNWgnome-common-devel SUNWxwinc SUNWgnome-base-libs gcc-dev SUNWgtar

Potrzebne są również źródła samego plugina:
$ wget -c http://nic.com.pl/~alek/pidgin-tlen/pidgin-tlen-20090811.tar.gz

Po rozpakowaniu paczki, należy delikatnie wyedytować plik Makefile:
$ gtar xvzf pidgin-tlen-20090811.tar.gz
pidgin-tlen-20090811
pidgin-tlen-20090811/README
pidgin-tlen-20090811/Makefile
pidgin-tlen-20090811/tlen_48.png
pidgin-tlen-20090811/tlen_22.png
pidgin-tlen-20090811/tlen_16.png
pidgin-tlen-20090811/tlen.h
pidgin-tlen-20090811/tlen.c
pidgin-tlen-20090811/auth.c
pidgin-tlen-20090811/wb.h
pidgin-tlen-20090811/wb.c
pidgin-tlen-20090811/chat.h
pidgin-tlen-20090811/chat.c
pidgin-tlen-20090811/avatar.h
pidgin-tlen-20090811/avatar.c
pidgin-tlen-20090811/Makefile.mingw



$ diff -u Makefile ../../pidgin-tlen-20090811/Makefile
--- Makefile 2009-08-24 13:23:53.000000000 +0200
+++ ../../pidgin-tlen-20090811/Makefile 2009-10-02 00:35:39.145438858 +0200
@@ -1,5 +1,5 @@
CC?= gcc
-LOCALBASE?= /usr/local
+LOCALBASE?= /usr
DESTDIR?=

CFLAGS+=`PKG_CONFIG_PATH=${LOCALBASE}/lib/pkgconfig pkg-config pidgin --cflags` \
@@ -25,11 +25,11 @@
ectags -Ra /usr/obj/ports/pidgin-2.5.5/pidgin-2.5.5/

install:
- install -d -o root -g wheel ${DESTDIR}${LOCALBASE}/lib/purple-2/
- install -o root -g wheel libtlen.so ${DESTDIR}${LOCALBASE}/lib/purple-2/
+ ginstall -d -o root -g sys ${DESTDIR}${LOCALBASE}/lib/purple-2/
+ ginstall -o root -g sys libtlen.so ${DESTDIR}${LOCALBASE}/lib/purple-2/
for i in 16 22 48; do \
- install -d -o root -g wheel ${DESTDIR}${LOCALBASE}/share/pixmaps/pidgin/protocols/$$i/; \
- install -o root -g wheel tlen_$$i.png \
+ ginstall -d -o root -g sys ${DESTDIR}${LOCALBASE}/share/pixmaps/pidgin/protocols/$$i/; \
+ ginstall -o root -g sys tlen_$$i.png \
${DESTDIR}${LOCALBASE}/share/pixmaps/pidgin/protocols/$$i/tlen.png; \
done



Dla ułatwienia, tak powinien wyglądać plik Makefile po zmianach:
$ cat Makefile
CC?= gcc
LOCALBASE?= /usr
DESTDIR?=

CFLAGS+=`PKG_CONFIG_PATH=${LOCALBASE}/lib/pkgconfig pkg-config pidgin --cflags` \
-I${LOCALBASE}/include \
-fPIC \
-Wall
DATE= `grep TLEN_VERSION tlen.h | awk '{print $$3}' | sed -e 's/"//g'`

.c.o:
$(CC) -c $< $(CFLAGS) OBJS= tlen.o auth.o chat.o wb.o avatar.o all: ${OBJS} $(CC) -shared -fPIC -o libtlen.so ${OBJS} clean: rm -f ${OBJS} libtlen.so *.core tags: *.c *.h rm -f tags ectags . ectags -Ra /usr/obj/ports/pidgin-2.5.5/pidgin-2.5.5/ install: ginstall -d -o root -g sys ${DESTDIR}${LOCALBASE}/lib/purple-2/ ginstall -o root -g sys libtlen.so ${DESTDIR}${LOCALBASE}/lib/purple-2/ for i in 16 22 48; do \ ginstall -d -o root -g sys ${DESTDIR}${LOCALBASE}/share/pixmaps/pidgin/protocols/$$i/; \ ginstall -o root -g sys tlen_$$i.png \ ${DESTDIR}${LOCALBASE}/share/pixmaps/pidgin/protocols/$$i/tlen.png; \ done dist: clean rm -f pidgin-tlen-${DATE}.tar.gz rm -rf pidgin-tlen-${DATE} mkdir pidgin-tlen-${DATE} cp README* avatar.[ch] chat.[ch] wb.[ch] auth.c tlen.[ch] tlen_*.png Makefile* pidgin-tlen-${DATE} tar zcvf pidgin-tlen-${DATE}.tar.gz pidgin-tlen-${DATE} rm -rf pidgin-tlen-${DATE} .PHONY: tags




Przed kompilacją pluginu należy zmodyfikować zmienną PATH, aby narzędzia GNU były wyszukiwane jako pierwsze:

# export PATH=/usr/gnu/bin:${PATH}

Czyścimy pliki z poprzednich kompilacji:
# gmake clean
rm -f tlen.o auth.o chat.o wb.o avatar.o libtlen.so *.core


Plugin jest mały, tak więc kompilacja trwa moment:
# gmake
cc -c tlen.c `PKG_CONFIG_PATH=/usr/local/lib/pkgconfig pkg-config pidgin --cflags` -I/usr/local/include -fPIC -Wall
cc -c auth.c `PKG_CONFIG_PATH=/usr/local/lib/pkgconfig pkg-config pidgin --cflags` -I/usr/local/include -fPIC -Wall
cc -c chat.c `PKG_CONFIG_PATH=/usr/local/lib/pkgconfig pkg-config pidgin --cflags` -I/usr/local/include -fPIC -Wall
cc -c wb.c `PKG_CONFIG_PATH=/usr/local/lib/pkgconfig pkg-config pidgin --cflags` -I/usr/local/include -fPIC -Wall
cc -c avatar.c `PKG_CONFIG_PATH=/usr/local/lib/pkgconfig pkg-config pidgin --cflags` -I/usr/local/include -fPIC -Wall
cc -shared -fPIC -o libtlen.so tlen.o auth.o chat.o wb.o avatar.o



Po kompilacji instalujemy plugin w systemie:
# gmake install
ginstall -d -o root -g sys /usr/lib/purple-2/
ginstall -o root -g sys libtlen.so /usr/lib/purple-2/
for i in 16 22 48; do \
ginstall -d -o root -g sys /usr/share/pixmaps/pidgin/protocols/$i/; \
ginstall -o root -g sys tlen_$i.png \
/usr/share/pixmaps/pidgin/protocols/$i/tlen.png; \
done

niedziela, 23 sierpnia 2009

OpenSolaris: encrypt i decrypt

Solaris oferuje bardzo proste w użyciu narzędzie do szyfrowania plików: 'encrypt'. Poniżej przykład.

Tworzymy plik z tekstem:

> echo "To jest tajny tekst" > plik.txt

Tworzymy zaszyfrowany plik:

> encrypt -v -a aes -i plik.txt -o plik-zaszyfrowany
Enter passphrase:
Re-enter passphrase:
[..................|...................|...................|..................]
Done.


> file plik.txt plik-zaszyfrowany
plik.txt: ascii text
plik-zaszyfrowany: data

Usuwamy oryginalny plik:

> rm plik.txt

Pozostaje nam tylko zaszyfrowana wersja pliku.

Aby odczytać zawartość zaszyfrowanego pliku wpisujemy:

> decrypt -v -a aes -i plik-zaszyfrowany
Enter passphrase:
[..................|...................|...................|..................]
Done.
To jest tajny tekst

sobota, 22 sierpnia 2009

IPS tips

OpenSolaris podczas instalacji systemu tworzy tzw. obraz (pkg image-create) w katalogu głównym i przypisuje do niego publishera (pkg publisher), dlatego jak robimy update systemu używamy komendy 'pkg image-update'.

Mało znaną funkcjonalnością systemu pakietów OpenSolarisa IPS jest możliwość tworzenia wielu 'obrazów' w różnych katalogach. Dla przykładu, każdy użytkownik może sobie stworzyć takowy 'obraz' w swoim katalogu domowym i tam instalować paczki zamiast w katalogu głównym systemu jako root.

Ostatnio znalazłem dodatkowe repozytorium IPS z ciekawymi paczkami http://ips.homeunix.com:10906/ i zamiast dodawać kolejnego publishera do systemu i instalować jako root w globalnej strefie postanowiłem dodać nowe repozytorium jako zwykły użytkownik w katalogu domowym, dodatkowo w zonie TX..

> zonename
public

> plabel
PUBLIC

> prtdiag
prtdiag can only be run in the global zone

Będziemy instalować paczki w katalogu /home/estibi/media/

> mkdir -p /home/estibi/media/
> pkg image-create -p multimedia=http://ips.homeunix.com:10906/ /home/estibi/media/

Uwaga, musimy wejść do katalogu /home/estibi/media lub użyć parametru pkg -R, inaczej 'pkg' będzie używać publishera z katalogu "/".

> cd /
> pkg publisher
PUBLISHER TYPE STATUS URI
opensolaris.org (preferred) origin online http://pkg.opensolaris.org/dev/

> cd /home/estibi/media/
> pkg publisher
PUBLISHER TYPE STATUS URI
multimedia (preferred) origin online http://ips.homeunix.com:10906/

> pkg refresh --full

Instalujemy paczkę 'easytag':

> pkg install -v pkg:/MBLeasytag
Creating Plan - Before evaluation:
UNEVALUATED:
+pkg:/MBLeasytag@2.1,5.11:20090615T121154Z

After evaluation:
None -> pkg:/MBLeasytag@2.1,5.11:20090615T121154Z
None -> pkg:/MBLid3lib@3.8.3,5.11:20090615T121103Z
Actuators:

None
DOWNLOAD PKGS FILES XFER (MB)
Completed 2/2 44/44 1.82/1.82

PHASE ACTIONS
Install Phase 109/109
PHASE ITEMS
Reading Existing Index 8/8
Indexing Packages 2/2


Jeśli teraz uruchomimy zainstalowany program otrzymamy komunikat błędu, ponieważ program jest zlinkowany z bibliotekami, które powinny się znajdować w katalogu głównym:

> /home/estibi/media/usr/bin/easytag
ld.so.1: easytag: fatal: libid3-3.8.so.3: open failed: No such file or directory
Killed

Aby program się uruchomił, należy podać mu ścieżkę do bibliotek:

> LD_LIBRARY_PATH=/home/estibi/media/usr/lib /home/estibi/media/usr/bin/easytag

Można również wyeksportować zmienną:

> export LD_LIBRARY_PATH=/home/estibi/media/usr/lib:${LD_LIBRARY_PATH}
> /home/estibi/media/usr/bin/easytag

Paczka 'easytag' jest zainstalowana:

> pkg -R /home/estibi/media list
NAME (PUBLISHER) VERSION STATE UFIX
MBLeasytag 2.1 installed ----
MBLid3lib 3.8.3 installed ----

czwartek, 2 lipca 2009

snoop i bity pakietów

Solarisowy snoop ma podobną składnię co tcpdump, oto przykłady:

Aby wyłapać pakiety TCP z flagą SYN:
# snoop -V 'tcp and tcp[13]& 0x2 != 0'

Aby wyłapać pakiety TCP z flagą RST:
# snoop -V 'tcp and tcp[13]& 0x4 != 0'

wtorek, 23 czerwca 2009

PathScale Compiler Suite

Powstała inicjatywa aby 'uwolnić' pakiet kompilatorów PathScale.
Pomysł jest powiązany z projektem OSUNIX.
Więcej informacji: PathScale

środa, 17 czerwca 2009

The Zones Parallel Patching

Równoległe paczowanie stref jest już dostępne w Solarisie 10 w łatkach:
119255-66 na x86 oraz 119254-66 na sparc.

Więcej informacji na:
http://blogs.sun.com/patch/entry/zones_parallel_patching_feature_now

poniedziałek, 15 czerwca 2009

OpenSolaris na MIPS?

Od niedawna OpenSolaris działa już na procesorach ARM..
Dzisiaj powstał projekt przeportowania tego systemu również na architekurę MIPS ;)
http://opensolaris.org/os/project/mips/

piątek, 12 czerwca 2009

Phrack #66

Wyszedł nowy numer magazynu Phrack!

Phrack #66

czwartek, 11 czerwca 2009

OpenSolaris ARM

OpenSolaris działa już na nowej platformie sprzętowej: ARM
Tak.. niedługo będziemy widzieć OpenSolarisa w urządzeniach wbudowanych ;)

Oto strona projektu: OSARM, a oto OpenSolaris działający na platformie ARM w qemu:


piątek, 22 maja 2009

poniedziałek, 18 maja 2009

FreeBSD: chflags -R noschg

Post nie jest związany z Solarisem, jednak dotyczy dosyć ciekawego problemu:

# uname -r
6.4-STABLE
# pwd
/home/root/bin
# mount | grep /home
/dev/da0s1d on /home (ufs, local, soft-updates)
# ls -alh
total 22
drwxrwxrwx 2 root wheel 1.0K Oct 6 2008 .
drwxrwxrwx 6 root wheel 1.0K May 18 08:49 ..
-r-sr-xr-x 1 root wheel 18K Jul 12 2007 rcp
# chmod 755 rcp
chmod: rcp: Operation not permitted
# rm -f rcp
rm: rcp: Operation not permitted
#
# chflags -R noschg rcp
# rm -r rcp
#

niedziela, 3 maja 2009

ekg w OpenSolaris 2009.06

# Pobieramy libgadu i instalujemy je w /home/estibi/ekg/
wget -c http://toxygen.net/libgadu/files/libgadu-1.8.2.tar.gz
gtar xvf libgadu-1.8.2.tar.gz

cd libgadu-1.8.2

./configure --prefix=/home/estibi/ekg/
time make && make install

# Instalujemy ncurses (potrzebne do kompilacji ekg)
pfexec pkg install -v SUNWncurses

# Pobieramy i instalujemy ekg w /home/estibi/ekg/
gtar xvf ekg-20090502.tar.gz
cd ekg-20090502

export PATH=/usr/gnu/bin:${PATH}

./configure "CFLAGS=-I $HOME/ekg/include" "LDFLAGS=-L ${HOME}/ekg/lib -L /usr/gnu/lib -R ${HOME}/ekg/lib -R /usr/gnu/lib" --prefix=/home/estibi/ekg/

time make && make install

# Uruchamiamy /home/estibi/ekg/bin/ekg

poniedziałek, 27 kwietnia 2009

Jak dodać VNIC do domeny w xVM?

Najpierw tworzymy VNIC:

# dladm create-vnic -l e1000g0 myvnic

Dodajemy do domeny xVM:

# virsh attach-interface mydomain bridge myvnic --script vif-dedicated

czwartek, 16 kwietnia 2009

Klonowanie stref - mini HOWTO

Prosty przyklad.
Zakladam, ze strefa 'linux03-test' jest juz skonfigurowana za pomoca 'zonecfg'.


# zfs create -o quota=30g rpool/zones/linux03-test

# chmod 700 /zones/linux03-test

# zoneadm -z linux02 halt

# zoneadm -z linux03-test clone -s rpool/zones/linux02@backup_090416_12-28-22 linux02
Copying /zones/linux02/.zfs/snapshot/backup_090416_12-28-22...

# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
- linux02 installed /zones/linux02 lx shared
- linux01 installed /zones/linux01 lx shared
- linux03-test installed /zones/linux03-test lx shared

# zoneadm -z linux02 boot
# zoneadm -z linux03-test boot

# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / native shared
3 linux02 running /zones/linux02 lx shared
4 linux03-test running /zones/linux03-test lx shared
- linux01 installed /zones/linux01 lx shared

Skrypt do tworzenia snapshotow ZFS

Prosty skrypt do crontaba.
Wrzucam to tutaj, aby nie pisac go ciagle od zera..

#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/opt/csw/bin:/usr/sfw/bin:/usr/sbin
export PATH
CUR_DATE=`date '+%y%m%d_%H-%M-%S'`

for FS in `zfs list -t filesystem,volume -H -o name | sed '/dump/d' | sed '/swap/d'`
do
echo "Creating snapshot: ${FS}@backup_${CUR_DATE}"
zfs snapshot ${FS}@backup_${CUR_DATE}
done

# EOF

piątek, 3 kwietnia 2009

środa, 18 marca 2009

Urządzenia w Trusted Solaris

W Trusted Extensions jeżeli chcemy skorzystać np. z karty dźwiękowej, pendrive, cdromu itp. musimy je przyporządkować do konkretnej strefy.
W danym momencie z danego urządzenia można korzystać tylko w 1 strefie, nie można dzielić dostępu pomiędzy strefami.

Aby dać dostęp do urządzenia używamy graficznego narzędzia poprzez 'Trusted Path'.
Jak to jednak zrobić z linii poleceń? :)

Zarządzać urządzeniami można tylko z globalnej strefy.

Aby usunąć wszystkie urządzenia z wszystkich stref używamy:
# deallocate -I

Aby zobaczyć wszystkie dostępne urządzenia:
# list_devices -l

Aby np dać dostęp do karty dźwiękowej w strefie 'public' wystarczy:
# allocate -U estibi -z public audio0

Co oznacza, że dajemy dostęp do karty dźwiękowej (audio0) w strefie 'public' dla zalogowanego użytkownika (w tym przypadku 'estibi').

Jeśli nie podamy użytkownika, dostęp będzie mieć tylko UID==0.

Dlaczego to piszę?
Ponieważ można tego użyć aby ominąć BUG 6795288, gdzie /usr/bin/tsoljdsdevmgr nie spełnia swojej roli.

czwartek, 5 marca 2009

CIFS Server - mini howto

Zakładamy, że używamy OpenSolaris 2008.11.

Najpierw zainstalujmy paczki serwera CIFS:

# pkg install -v SUNWsmbs SUNWsmbskr


Następnie uruchamiamy ponownie system:

# init 6



Po restarcie tworzymy zasób sieciowy:

# sharemgr create zasoby1
# sharemgr add-share -r dane -s /export/dane zasoby1


Dołączamy do grupy roboczej GRUPA_ROBOCZA:

# smbadm join -w GRUPA_ROBOCZA


Konfigurujemy PAM:

# echo "other password required pam_smb_passwd.so.1 nowarn" >> /etc/pam.conf


Dodajemy grupę i użytkowników w systemie:

# useradd -g 100 workers
# useradd -g workers kowalski
# useradd -g workers jankowski


Uprawnienia dla zasobu:

# chgrp workers /export/dane
# chmod 770 /export/dane
# /usr/bin/chmod -R A=owner@:full_set:file_inherit/dir_inherit:allow /export/dane
# /usr/bin/chmod -R A+group@:full_set:file_inherit/dir_inherit:allow /export/dane


Konfiguracja usługi serwera:

# smbadm create workers
# smbadm add-member -m kowalski workers
# smbadm add-member -m jankowski workers


Utworzenie haseł dla użytkowników:

# passwd kowalski
# passwd jankowski

Upewniamy się, czy usługa serwera CIFS działa poprawnie:

$ svcs smb/server
STATE STIME FMRI
online Feb_24 svc:/network/smb/server:default

niedziela, 15 lutego 2009

ERROR: lulib_umount: failed to umount BE

Taki błąd może pojawić się podczas usuwania starego środowiska uruchomieniowego lub podczas aktywacji nowego BE, gdy mamy ZFS jako główny system plików.

ludelete -n SXCE103
System has findroot enabled GRUB
Checking if last BE on any disk...
ERROR: lulib_umount: failed to umount BE: .
ERROR: This boot environment is the last BE on the above disk.
ERROR: Deleting this BE may make it impossible to boot from this disk.
ERROR: However you may still boot solaris if you have BE(s) on other disks.
ERROR: You *may* have to change boot-device order in the BIOS to accomplish this.
ERROR: If you still want to delete this BE , please use the force option (-f).
Unable to delete boot environment.


Dlaczego się tak dzieje?
Ponieważ jest nieprawidłowa kolejność systemów plików w plikach definiujących środowiska uruchomieniowe LiveUpgrade.

Zakładamy, iż informacje o środowisku uruchomieniowym 'SXCE103' są w pliku '/etc/lu/ICF.1'.
Poprawna kolejność powinna wyglądać tak:

SXCE103:/export:rpool/export:zfs:0
SXCE103:/export/home:rpool/export/home:zfs:0
SXCE103:/export/home/estibi:rpool/export/home/estibi:zfs:0

Czyli najpierw system plików ojciec, potem dzieci :)

Naprawienie kolejności systemów plików w pliku definiującym dane środowisko uruchomieniowe powinno pomóc.

niedziela, 8 lutego 2009

ZFS i użycie pamięci - mini howto

Jak sprawdzić ile pamięci używa ZFS w danym momencie na ARC Cache:

# kstat -m zfs -s c
module: zfs instance: 0
name: arcstats class: misc
c 67108864

Tutaj widzimy, że jest to 67MB.



Jak sprawdzić jaką ilość pamięci może maksymalnie użyć:

# kstat -m zfs -s c_max
module: zfs instance: 0
name: arcstats class: misc
c_max 200000000

Tutaj widzimy, że jest to ok 200MB.



Aby ZFS nie używał więcej niż 200MB na swój ARC Cache wystarczy dopisać
do pliku "/etc/system" następującą linijkę:

set zfs:zfs_arc_max = 200000000

środa, 4 lutego 2009

xVM i Windows XP

Podczas instalacji Windowsa XP jako wirtualna maszyna na xVM
pojawia się problem po restarcie Windowsa (podczas instalacji).

Instalator Windows potrzebuje płytę instalacyjną,
jednak płyta instalacyjna jest tymczasowo dołączana na czas instalacji (do restartu) przez 'virt-install'.

Aby dodać obraz płyty instalacyjnej do domeny xVM na stałe wystarczy wpisać:

virsh attach-disk mojadomena /data/winxp_pro.iso hdc --type cdrom --driver file --mode readonly

Napęd cdrom pojawia się automatycznie w domenie (bez konieczności restartu).

poniedziałek, 2 lutego 2009

Solaris i HP Smart Array Controller Driver

Na niektórych serwerach HP mamy kontrolery dyskowe 'HP Smart Array'.
Domyślnie nie ma do nich sterowników na płytach instalacyjnych Solarisa/OpenSolarisa, tak więc system nie widzi dysków twardych.

Jeśli używamy Solaris 10, to można pobrać sterowniki ze strony hp:
ftp://ftp.hp.com/pub/softlib2/software1/pubsw-windows/p1220948930/v46783/CPQary3-1.90-solaris10-i386.tar.gz

Sterowniki te nie współpracują z Solaris Express (przynajmniej instalator ich nie widzi).

Można to łatwo obejść.



Oto struktura archiwum:
$ ls -alh
total 4474
drwxr-xr-x 5 estibi staff 10 kw 1 2008 .
drwx------ 3 estibi staff 7 lut 2 10:06 ..
-rw-r--r-- 1 estibi staff 1,4M kw 1 2008 CPQary3.144
-rw-r--r-- 1 estibi staff 516K kw 1 2008 CPQary3.iso
drwxr-xr-x 3 estibi staff 3 kw 1 2008 CPQary3.pkg
drwxr-xr-x 3 estibi staff 4 kw 1 2008 DU
-rw-r--r-- 1 estibi staff 20K kw 1 2008 LICENSE.CPQary3
-rw-r--r-- 1 estibi staff 1,3K kw 1 2008 README.CPQary3
-rw-r--r-- 1 estibi staff 17K kw 1 2008 RELEASENOTES.CPQary3
drwxr-xr-x 2 estibi staff 3 kw 1 2008 tools


Katalog 'DU' nagrywamy na płytę.
Na pendrive też można nagrać, jednak na systemie pcfs (lub jak kto woli fat, lub vfat) system nie rozróżnia małych i dużych liter,
a katalog 'DU' musi być widoczny jako 'DU',
system widzi go jednak jako 'du'...


Przed nagraniem należy zmienić 2 elementy:

$ cd DU/
$ ls -alh
total 11
drwxr-xr-x 3 estibi staff 4 kw 1 2008 .
drwxr-xr-x 5 estibi staff 10 kw 1 2008 ..
-rw-r--r-- 1 estibi staff 4 kw 1 2008 release.def
drwxr-xr-x 3 estibi staff 3 kw 1 2008 sol_210


$ vi release.def
$ cat release.def
211

$ mv sol_210 sol_211
$ ls -alh
total 11
drwxr-xr-x 3 103 staff 4 lut 2 12:00 .
drwxr-xr-x 3 root root 3 lut 2 12:00 ..
-rw-r--r-- 1 103 staff 4 lut 2 12:00 release.def
drwxr-xr-x 3 103 staff 3 kw 1 2008 sol_211

Nagrywamy cały katalog na płytę (tutaj dvd+rw):

$ growisofs -Z /dev/rdsk/c4t0d0s2 -R -J plyta-hp-sxce
WARNING: /dev/rdsk/c4t0d0s2 already carries isofs!
About to execute 'mkisofs -R -J plyta-hp-sxce | builtin_dd of=/dev/rdsk/c4t0d0s2 obs=32k seek=0'
Setting input-charset to 'UTF-8' from locale.
/dev/rdsk/c4t0d0s2: "Current Write Speed" is 4.1x1385KBps.
Total translation table size: 0
Total rockridge attributes bytes: 2698
Total directory bytes: 16384
Path table size(bytes): 124
Max brk space used 22000
266 extents written (0 MB)
builtin_dd: 272*2KB out @ average 0.0x1385KBps
/dev/rdsk/c4t0d0s2: flushing cache
/dev/rdsk/c4t0d0s2: stopping de-icing
/dev/rdsk/c4t0d0s2: writing lead-out

Przy startowaniu systemu SXCE, wybieramy '5' zmieniamy płytę instalacyjną na płytę ze sterownikiem.