W ko?cu przysz?y! Dwie Netry T1-AC200 z allegro. Jak wida? na stronie SUN’a (lub ORACLE’a za jaki? czas :) sprz?t co kolwiek stary, ale wci?? jary. Po pierwsze 1U, po drugie niska cena (249 z? za sztuk?), po trzecie architektura SPARC, po czwarte hardcoreowy 1337 sprz?t dla geeków^W niezawodna maszyna dla administratorów. W sam raz na jeden ma?y serwis www do uzytku wewn?trznego + dodatkowa Netra do testów i poznania Solarisa. S?owo wyja?nienia odno?nie hardcorowo?ci tego sprz?tu. Nie mamy mo?liwo?ci pod??czenia monitora, klawiatury (ewentualnie USB), nie ma karty graficznej. Wszystko co dostajemy to dwa porty sieciowe, dwa konsolowe, dwa USB i jeden zewn?trzny SCSI. Na szcz??cie jest tak?e LOM czyli Lights Off Management do którego dostajemy si? poprzez port szeregowy z innego komputera specjalnym kablem RS232< ->RJ45. Kabelek ten pasuje od urz?dze? CISCO, lub mo?na go zrobi? samemu (koszt kitowej wtyczki RS232 z wyprowadzonymi kablami do zlutowania to 12 z? a schemat jest tu). Dla leniwców SUN przewidzia? promocje – 500 z? netto za oryginalny kabel ;). Generalnie pod??czenie si? do LOM to najmniejszy problem. Wystarczy jaki? komputer z terminalem. Ja wykorzysta?em NetBSD i minicoma. Ustawi?em odpowiedni port szeregowy oraz jego pr?dko?? (9600 8N1 oraz kontrola parzysto?ci) i po Initializing Modem
zg?osi? si? LOM. Polecam zapoznanie si? z tym artyku?em na pocz?tek. Czas na w?a?ciwa instalacj?. Tutaj zaczynaj? si? schody. Mo?na u?y? zewn?trznego nap?du SCSI, ale akurat takiego nie posiada?em (allegro te? nie specjalnie ma takie rzeczy) pozatym przyda?by si? raz i koniec. Z zewn?trznego nap?du USB Netry niestety nie da si? wybootowa?. Pozosta?a ostatnia mo?liwo?? czyli netboot NetBSD z innej maszyny NetBSD. I tu zaczyna si? w?a?ciwa cz??? tego posta, a je?li kiedy? b?dziesz mie? przyjemno?? instalacji tego typu to zgodzisz si? ze mn? ?e T1 jest hardcoreowa :)
Potrzeba b?dzie nam kilku rzeczy. rarpd, tftp, dhcp i bootp u?ywany z dhcp oraz nfs. Dodatkowo NetBSD/sparc64.
Netr? pod??czamy do sieci oraz do konsoli i szukamy adresu MAC pierwszej karty sieciowej. Je?li jeste?my w ok
to wydajemy polecenie banner
i rezultacie dostajemy to czego szukamy:
ok banner
Netra T1 200 (UltraSPARC-IIe 500MHz), No Keyboard
OpenBoot 4.0, 1024 MB memory installed, Serial #401376.
Ethernet address 0:3:ba:6:1f:e0, Host ID: 83061fe0.
Je?li jeste?my w lom
wydajemy polecenie power-on
aby przej?? do ok
. Podczas startu Netry wysy?amy sygna? break (w minicomie CTRL+A ok
i dajemy banner
. Je?li nie wiesz o czym pisz? to znaczy ?e nie odrobi?e? lekcji z akapitu powy?ej i nie przeczyta?e? o co chodzi w LOM i jego trybach pracy :)
Chwilowo Netr? zostawiamy i zajemiemy si? ?rodowiskiem w NetBSD potrzebnym do sieciowego wybootowania NetBSD na Netrze.
Zaczynamy od rarpd czyli reverse ARP. B?dzie on potrzebny do nadania IP na podstawie MAC którego chwil? wcze?niej zdobyli?my.
Na NetBSD dopisujemy nast?puj?ce rzeczy do nast?puj?cych plików:
/etc/ethers
0:3:ba:6:1f:e0 netra
/etc/hosts
10.1.0.8 netra netra.
Uruchamiamy poleceniem rarpd -a -d
dzi?ki czemu rarpd nie forknie si? nam do backgroundu i b?dziemy widzie? czy co? si? z nim komunikuje. Adres IP oczywi?cie w/g w?asnych potrzeb. Mój NetBSD ma akurat 10.1.0.6 wi?c Netra b?dzie mia?a 10.1.0.8.
Nast?pnie konfigurujemy tftp czyli Trivial File Transfer Protocol. Tutaj jest troch? zabawy.
Tworzymy po pierwsze katalog dla plików potrzebnych do podania przez TFTP:
mkdir /tftpboot
Linkujemy lub kopiujemy bootloader z dystrybucji NetBSD/sparc64 zmieniaj?c nazw? na IP Netry zapisanej w hex’ie czyli szesnastkowo :) Czyli:
Po ?ci?gni?ciu z ftp.netbsd.org/pub/NetBSD/NetBSD-5.0/sparc64/ kopiujemy bootloader do katalogu dost?pnego dla tftp:
cp /usr/home/cancer/sun/sparc64/installation/netboot/ofwboot.net /tftpboot
Przeliczamy wybrany IP Netry na hex u?ywaj?c np bc
bc
obase=16
10
A
1
1
0
0
8
8
Czyli 10.1.0.8 = 0A108
Linkujemy ofwboot.net jako IPHEX. Gwoli wyja?nienia – mia?em dziwne problemy z tftpd i podczas debugowania doda?em dodatkowe zera do IP w HEX dlatego s? dwa podlinkowania w moim katalogu. Ostatecznie nie wiem który zadzia?a? ale powinny obydwa :)
ls -la /tftpboot/
total 19240
lrwxr-xr-x 1 root wheel 11 May 19 11:03 0A010008 -> ofwboot.net
lrwxr-xr-x 1 root wheel 11 May 19 11:01 0A108 -> ofwboot.net
-rw-r--r-- 1 root wheel 85249 May 19 10:15 ofwboot.net
Kiedy mamy ju? przygotowany tftp mo?emy go uruchomi?. Tutaj nast?pi?a rzecz dziwna poniewa? whereis tftpd
zwraca?o nic, a komenda tftpd
oznajmia?a tftpd: Command not found
mimo ?e jak wó? tftpd jest w basesystemie:
ls -la /usr/libexec/tftpd
-r-xr-xr-x 1 root wheel 23216 Feb 21 2008 /usr/libexec/tftpd
tftpd uruchamiamy z inetd.conf odhashowuj?c odpowiedni? linijk?:
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
Musia?em lekko zmodyfikowa? daj?c pe?n? scie?k?:
tftp dgram udp wait root /usr/libexec/tftpd /usr/libexec/tftpd -l -s /tftpboot
Ostatecznie po którym? restarcie zadzia?a?o mimo tego ?e kiedy wida? by?o tftpd w procesach to Netra si? nie chcia?a dogada?, kiedy w procesach tftpd nie by?o (po restarcie inetd) Netra nagle zacz??a si? bootowa?. Nie wiem czy to akurat moja dolegliwo?? czy ogólnie NetBSD 4.0_STABLE. Zak?adaj?c, ?e rarpd i tftp jest ok, mo?emy wybootowa? Netr? dla testu.
ok boot net
Boot device: /pci@1f,0/pci@1,1/network@c,1 File and args:
Using Onboard Transceiver - Link Up.
18c00
Server IP address: 10.1.0.6
Client IP address: 10.1.0.8
>> NetBSD/sparc64 OpenFirmware Boot, Revision 1.13
Using Onboard Transceiver - Link Up.
bootp: no reply
Using BOOTPARAMS protocol: ip address: 10.1.0.8bootparamd: 'whoami' call failed
open netbsd: Unknown error: code 60
Failed to load 'netbsd'.
: trying netbsd.gz...
Najwa?niejsz? informacj? jest, ?e boot loader zosta? pomy?lnie wczytany. B??dem ?e bootp nie odpowiada nie przejmujemy si? na razie, za chwil? go ustawimy. W logach rarpd powinno by? mniej wi?cej co? takiego:
rarpd: 00:03:ba:06:1f:e0 asked; netra replied
Zapami?ta?! architektura sparc64 u?ywa dhcpd z bootp a nie samo bootp :) Godzina zaoszcz?dzona na bezskuteczne i dziwne skonfigurowanie bootp.
Tworzymy konfig dhcp dla naszych potrzeb:
/etc/dhcpd.conf
deny unknown-clients;
ddns-update-style none;
allow bootp;
subnet 10.1.0.0 netmask 255.255.255.0 {
}
group {
option broadcast-address 10.1.0.255;
option domain-name "test.net";
option domain-name-servers 10.1.0.1;
option routers 10.1.0.251;
option subnet-mask 255.255.255.0;
host netra {
hardware ethernet 00:03:ba:06:1f:e0;
fixed-address 10.1.0.8;
option host-name "netra";
filename "netbsd-INSTALL.gz";
next-server 10.1.0.6;
option root-path "/export/netra/root";
}
}
Odpalamy dhcpd uprzednio tworz?c plik /var/db/dhcpd.leases
touch /var/db/dhcpd.leases
/usr/sbin/dhcpd -d -f
dyrektywa filename mówi jaki kernel ma za?adowa? bootloader, chcemy kernel instalacyjny którego sciagamy z
ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-5.0/sparc64/binary/kernel/netbsd-INSTALL.gz i umieszczamy tam gdzie jest root katalog w nfs czyli w /export/netra/root
. Dyrektywa next-server 10.1.0.6
mówi gdzie jest serwer nfs, reszta opcji raczej jasna.
Jeszcze Netry nie startujemy bo nie mamy skonfigurowanego NFS’a.
Tworzymy struktur? katalogów i kopiujemy nasz instalacyjny kernel do odpowiedniego katalogu:
mkdir -p /export/netra/root/dev
mkdir /export/netra/usr
mkdir /export/netra/home
touch /export/netra/swap
cp netbsd-INSTALL.gz /export/netra/root
mknod /export/netra/root/dev/console c 0 0
dodajemy wpisy do /etc/exports
/etc/exports
/export/netra/root -maproot=root:wheel netra
/export/netra/swap -maproot=root:wheel netra
/export/netra/usr -maproot=nobody:nobody netra
/export/netra/home -maproot=nobody:nobody netra
dodajemy do /etc/rc.conf
komponenty NFSa:
/etc/rc.conf
rpcbind=YES
mountd=YES
nfsd=YES
i startujemy go:
/etc/rc.d/rpcbind start
/etc/rc.d/mountd start
/etc/rc.d/nfsd start
Warto sprawdzi? czy wszystkie komponenty zosta?y uruchomione, aby potem nie szuka? b??du podczas bootowania. Kolejno?? uruchamiania jest do?? wa?na.
Ok, je?li mamy wszystko. Dzia?aj?cy rarpd, tftp, dhcpd z bootp i nfsd mountd i rpcbind oraz odpowiednie prawa do wszystkiego – mo?emy spróbowa? kompletnie wybootowa? Netr?! Go!
ok boot net
Boot device: /pci@1f,0/pci@1,1/network@c,1 File and args:
Using Onboard Transceiver - Link Up.
18c00
Server IP address: 10.1.0.6
Client IP address: 10.1.0.8
>> NetBSD/sparc64 OpenFirmware Boot, Revision 1.13
Using Onboard Transceiver - Link Up.
Using BOOTP protocol: ip address: 10.1.0.8, hostname: netra, netmask: 255.255.21
root addr=10.1.0.6 path=/export/netra/root
=0x8573d8
Loading netbsd: 6935248+357272+439736 [522792+334504/
I tu nast?puj? ju? znane komunikaty kernela. Je?li na samym pocz?tku jest:
NetBSD 5.0 (INSTALL) #0: Mon Apr 27 08:27:44 UTC 2009
to znaczy, ?e je?li hardware si? nie wywali to za kilka sekund uj?ymy upragnione:
Welcome to sysinst, the NetBSD-5.0 system installation tool.
Instalacja jest prawie taka sama jak na i386/amd64. Po ostatecznym zbootowaniu mamy gotowy system!
uname -mrs
NetBSD 5.0 sparc64
Kilka uwag na koniec:
1. Je?li podczas bootowania kernel/system nie odpowiada, mo?na wys?a? mu breaka, wtedy jednak zamiast wrzuci? nas do ok
znajdziemy si? w debugerze db>. po wydaniu reboot
Netra zawiesza?a si? na amen i tylko twardy reset a w?a?ciwie cold boot pomaga?. Dlatego trzeba rebootowa? z opcj? 0x4
co powoduje brak syncowania dysków i restart do lom.
2. Chwil? przed wej?ciem do sysinstalla jest pytanie o typ klawiatury, trzeba wybrac sun-type4
a nie sun
, poniewa? nie b?d? dzia?a?y kursory. Instalacja jednak jest nadal mo?liwa u?ywaj?c litera?ów jako skrótów opcji.
3. NetBSD na architekturze sparc64 nie zbootuje si? z FFS2, dlatego chocia? / musi zosta? jako FFS1, reszta partycji mo?e by? FFS2.
4. Zmiana kernela z INSTALL na zwyk?y oraz rozpakowanie setsów do odpowiedniego miejsca w /export/netra/ oraz drobne modyfikacje rc.conf i swapa (tych w export) przy powy?szej konfiguracji zaskutkuje stworzeniem bezdyskowej stacji roboczej. Zmiana setsów na i386 lub amd64 pozwoli uruchomi? bezdyskow? stacj? na zwyk?ym PC :)
W razie problemów do dyspozycji macie komentarze oraz IRC – #netbsd.pl – nick cancer. Podzi?kowania dla lamy i morra za cenne wskazówki podczas uruchamiania netboota :)
Na koniec dmesg z ?wie?o odpalonej Netry:
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 5.0 (GENERIC) #0: Mon Apr 27 08:13:38 UTC 2009
builds@b4.netbsd.org:/home/builds/ab/netbsd-5-0-RELEASE/sparc64/200904260229Z-obj/home/builds/ab/netbsd-5-0-RELEASE/src/sys/arch/sparc64/compile/GENERIC
total memory = 1024 MB
avail memory = 991 MB
timecounter: Timecounters tick every 10.000 msec
mainbus0 (root): SUNW,UltraAX-i2 (Netra T1 200): hostid 83061fe0
cpu0 at mainbus0: SUNW,UltraSPARC-IIe @ 500 MHz, UPA id 0
cpu0: 32K instruction (32 b/l), 16K data (32 b/l), 1024K external (64 b/l)
psycho0 at mainbus0
psycho0: SUNW,sabre: impl 0, version 0: ign 7c0 bus range 0 to 2; PCI bus 0
psycho_alloc_extent: no "available" property
psycho_alloc_extent: no "available" property
DVMA map: c0000000 to e0000000
IOTSB: 11d0000 to 1250000
pci0 at psycho0
pci0: i/o space, memory space enabled
ppb0 at pci0 dev 1 function 1: Sun Microsystems Simba PCI bridge (rev. 0x13)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
ebus0 at pci1 dev 12 function 0
ebus0: Sun Microsystems PCIO Ebus2 (US III), revision 0x01
flashprom at ebus0 addr 0-fffff not configured
clock0 at ebus0 addr 0-1fff: mk48t59
ebus_attach: idprom: incomplete
SUNW,lomh at ebus0 addr 200000-200003 ipl 42 not configured
alipm0 at pci1 dev 3 function 0: 74KHz clock
iic0 at alipm0: I2C bus
spdmem0 at iic0 addr 0x54
spdmem0: SDRAM memory, data ECC, 512MB, 133MHz (PC-1100)
spdmem0: 13 rows, 11 cols, 1 banks, 4 banks/chip, 7.5ns cycle time
spdmem0: tAA-tRCD-tRP-tRAS: 3-20-20-45
spdmem0: voltage LvTTL (not 5V tolerant), refresh time 7.8us (self-refreshing)
spdmem1 at iic0 addr 0x55
spdmem1: SDRAM memory, data ECC, 512MB, 133MHz (PC-1100)
spdmem1: 13 rows, 11 cols, 1 banks, 4 banks/chip, 7.5ns cycle time
spdmem1: tAA-tRCD-tRP-tRAS: 3-20-20-45
spdmem1: voltage LvTTL (not 5V tolerant), refresh time 7.8us (self-refreshing)
admtemp0 at iic0 addr 0x18: ADM1021 or compatible environmental sensor
ebus1 at pci1 dev 7 function 0
ebus1: Acer Labs M1533 PCI-ISA Bridge, revision 0x00
dma at ebus1 addr 0-ffff ipl 1 not configured
power at ebus1 addr 2000-2007 ipl 37 not configured
com0 at ebus1 addr 3f8-3ff ipl 43: ns16550a, working fifo
com0: console
com1 at ebus1 addr 2e8-2ef ipl 43: ns16550a, working fifo
gem0 at pci1 dev 12 function 1: Sun Microsystems ERI Ethernet (rev. 0x01)
gem0: interrupting at ivec 3006
ukphy0 at gem0 phy 1: Generic IEEE 802.3u media interface
ukphy0: OUI 0x0008bb, model 0x0002, rev. 1
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
gem0: Ethernet address 00:03:ba:06:1f:e0, 2KB RX fifo, 2KB TX fifo
ohci0 at pci1 dev 12 function 3: Sun Microsystems USB controller (rev. 0x01)
ohci0: interrupting at ivec 24
ohci0: OHCI version 1.0, legacy support
usb0 at ohci0: USB revision 1.0
aceride0 at pci1 dev 13 function 0
aceride0: Acer Labs M5229 UDMA IDE Controller (rev. 0xc3)
aceride0: bus-master DMA support present
aceride0: primary channel configured to native-PCI mode
aceride0: using ivec 180c for native-PCI interrupt
atabus0 at aceride0 channel 0
aceride0: secondary channel configured to native-PCI mode
atabus1 at aceride0 channel 1
gem1 at pci1 dev 5 function 1: Sun Microsystems ERI Ethernet (rev. 0x01)
gem1: interrupting at ivec 301c
ukphy1 at gem1 phy 1: Generic IEEE 802.3u media interface
ukphy1: OUI 0x0008bb, model 0x0002, rev. 1
ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
gem1: Ethernet address 00:03:ba:06:1f:e0, 2KB RX fifo, 2KB TX fifo
ohci1 at pci1 dev 5 function 3: Sun Microsystems USB controller (rev. 0x01)
ohci1: interrupting at ivec 26
ohci1: OHCI version 1.0, legacy support
usb1 at ohci1: USB revision 1.0
ppb1 at pci0 dev 1 function 0: Sun Microsystems Simba PCI bridge (rev. 0x13)
pci2 at ppb1 bus 2
pci2: i/o space, memory space enabled
esiop0 at pci2 dev 8 function 0: Symbios Logic 53c896 (ultra2-wide scsi)
esiop0: using on-board RAM
esiop0: interrupting at ivec 1820
scsibus0 at esiop0: 16 targets, 8 luns per target
esiop1 at pci2 dev 8 function 1: Symbios Logic 53c896 (ultra2-wide scsi)
esiop1: using on-board RAM
esiop1: interrupting at ivec 1820
scsibus1 at esiop1: 16 targets, 8 luns per target
pcons at mainbus0 not configured
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
timecounter: Timecounter "tick-counter" frequency 500000000 Hz quality 100
No counter-timer -- using %tick at 500MHz as system clock.
scsibus0: waiting 2 seconds for devices to settle...
scsibus1: waiting 2 seconds for devices to settle...
uhub0 at usb0: Sun Microsystem OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 4 ports with 4 removable, self powered
uhub1 at usb1: Sun Microsystem OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 4 ports with 4 removable, self powered
sd0 at scsibus0 target 0 lun 0:
sd0: 17274 MB, 7508 cyl, 19 head, 248 sec, 512 bytes/sect x 35378533 sectors
sd0: sync (25.00ns offset 31), 16-bit (80.000MB/s) transfers, tagged queueing
Kernelized RAIDframe activated
root on sd0a dumps on sd0b
root file system type: ffs
© odwiedź stronÄ™ http://maciejewski.org po wiÄ™cej fajnych postów!
Comment