Panduan Netboot Berbasis Gentoo Linux
1.
Pendahuluan
Catatan:
Untuk saat ini, panduan ini sangat dikhususkan untuk SPARC dan anda dianggap
ingin menyiapkan server netboot pada komputer yang sudah terinstal Gentoo Linux
|
Dokumen ini akan menjelaskan cara menyiapkan lingkungan boot jaringan untuk
komputer berbasis Sun Microsystems SPARC atau UltraSPARC. Dokumen ini
beranggapan anda menggunakan komputer yang telah terinstal Gentoo Linux sebagai
server.
Server dan klien netboot harus berada di subnet jaringan yang sama, karena
protokol ARP biasanya tidak dapat diantarkan ke subnet jaringan yang berbeda.
Berikut ini adalah tinjauan umum tentang apa yang akan terjadi ketika proses
netboot berlangsung:
-
Komputer klien mengirimkan permintaan reverse ARP (RARP) untuk
mendapatkan alamat IP
- Komputer server merespon klien dengan memberikan alamat IP
-
Klien kemudian mencoba mendownload imej boot dari server RARP melalui
protokol tftp
- Setelah imej di download, klien netboot kemudian mem-boot imej
Berdasarkan tinjauan ini, kita perlu menginstal software untuk daemon RARP dan
daemon TFTP.
2.
Instalasi dan Konfigurasi Software
Daemon RARP
Untuk saat ini, anda memiliki dua pilihan untuk daemon RARP, yaitu
net-misc/iputils (diinstal sebagai bagian dari profil sistem) dan
net-misc/rarpd.
Catatan:
Instalasi net-misc/rarpd akan menimpa instalasi rarpd dan manualnya dari paket
net-misc/iputils
|
Pengaturan elemen umum rarpd : /etc/ethers
Daemon rarpd apapun yang anda pilih, anda harus mengatur file
/etc/ethers. File ini menetapkan host yang harus direspon oleh
rarpd ketika permintaan ditemukan, dan alamat IP yang harus diberikan.
Format file /etc/ethers adalah alamat MAC dari NIC di komputer
yang akan melakukan netboot dan nama host. Spasi memisahkan alamat MAC dengan
nama host, dan setiap entri harus memiliki barisnya masing-masing. Contoh
berikut ini untuk host dengan nama sparc-netboot.gentoo.org:
Daftar Kode 2.1: Contoh /etc/ethers |
08:00:20:77:1f:3e sparc-netboot.gentoo.org
|
Catatan:
Jika angka heksadesimal dari alamat MAC adalah atau dimulai dengan 0, anda
boleh menghapus angka 0 pertama tersebut (misalnya 08:00:20:77:1f:3e menjadi
8:0:20:77:1f:3e).
|
Jika anda ingin menambahkan host lain ke /etc/ethers, anda tidak
perlu me-restart servis rarpd karena file tersebut akan dibaca setiap kali ada
permintaan yang diterima.
Sekarang kita atur penerjemahan nama host di /etc/hosts.
Karena setiap entri di /etc/ethers berisi nama host, server
netboot harus bisa menerjemahkan nama host ke alamat IP. Ini dapat dilakukan
dengan dua cara, /etc/hosts atau nameserver yang digunakan oleh
server netboot.
Sebuah entri /etc/hosts untuk menerjemahkan nama host mungkin
terlihat sama dengan entri yang sudah ada ketika anda menginstal Gentoo di
server netboot. Untuk host contoh kita, sparc-netboot.gentoo.org, kita akan
menggunakan alamat IP 10.0.1.15. Jadi, entri /etc/hosts adalah:
Daftar Kode 2.2: /etc/hosts |
10.0.1.15 sparc-netboot.gentoo.org
|
Catatan:
Tergantung pada lingkungan, anda mungkin harus menanyakan kepada administrator
jaringan tentang alamat IP yang akan anda berikan kepada klien.
|
Jika anda menggunakan nameserver, maka administrator server DNS harus
menambahkan catatan baru untuk nama host, yang pada contoh kita adalah
sparc-netboot.gentoo.org, agar menunjuk ke alamat IP yang benar. Tanyakanlah
cara melakukannya kepada administrator server DNS anda atau bacalah dokumentasi
software server DNS yang anda gunakan.
Catatan:
Jika /etc/hosts dan nameserver memiliki entri untuk host yang akan
melakukan netboot,maka /etc/hosts akan digunakan lebih dahulu
(jika urutan /etc/nsswitch.conf belum diganti dari default).
|
Pengaturan rarpd net-misc/iputils
Pertama, kita harus menetapkan opsi-opsi yang akan kita gunakan untuk rarpd.
Walaupun opsi-opsi yang tersedia lebih banyak daripada opsi-opsi yang
dijelaskan di sini, opsi-opsi berikut ini sudah cukup karena untuk saat ini
rarpd dari net-misc/iputils belum memiliki skrip initnya sendiri, dan sebuah
entri harus ditambahkan di /etc/conf.d/local.start jika anda ingin
mengaktifkan servis rarpd pada saat boot. Contoh entrinya adalah sebagai
berikut:
Daftar Kode 2.3: /etc/conf.d/local.start |
/usr/sbin/rarpd -v -e eth0
|
Penjelasan dari opsi-opsi rarpd di atas (diambil dari halaman manualnya) adalah
sebagai berikut:
| Opsi |
Penjelasan |
| -v |
Modus verbose |
| -e |
Jangan periksa keberadaan imej netboot, beri balasan jika sebuah alamat
MAC cocok dengan alamat IP yang tercantum di database
/etc/ethers dan DNS
|
| eth0 |
antarmuka yang digunakan oleh rarpd |
Untuk mengetahui opsi-opsi lainnya, bacalah man 8 rarpd.
Pengaturan net-misc/rarpd
Pertama, kita harus menginstal rarpd dengan perintah berikut:
Daftar Kode 2.4: Instalasi rarpd |
# emerge net-misc/rarpd
|
Selanjutnya, opsi-opsi rarpd harus ditetapkan di
/etc/conf.d/rarpd. Untuk persamaan konfigurasi seperti yang kita
gunakan di atas bagi rarpd dari net-misc/iputils, edit
/etc/conf.d/rarpd sehingga berisi seperti berikut:
Daftar Kode 2.5: /etc/conf.d/rarpd |
RARPD_OPTS="-v -i eth0"
|
Penjelasan dari opsi-opsi rarpd di atas (diambil dari halaman manualnya):
| Opsi |
Penjelasan |
| -v |
Modus verbose. Tampilkan permintaan yang direspon oleh daemon |
| -i |
Gunakan antarmuka yang ditetapkan. Secara default rarpd menggunakan
antarmuka default sistem lokal, jika tersedia
|
Untuk mengetahui opsi-opsi lain yang tersedia, bacalah man 8 rarpd
Daemon tftpd
Berikut ini adalah pilihan yang anda miliki untuk daemon tftp,
net-misc/atftp, net-misc/netkit-tftp dan
net-misc/tftp-hpa. Anda hanya perlu menginstal satu daemon saja.
Langkah selanjutnya adalah mengkonfigurasi elemen umum tftpd.
Daemon tftp memerlukan sebuah direktori tempat menyimpan file yang akan
diberikan kepada klien. Direktori yang akan kita gunakan di sini adalah
/tftpboot. Direktori ini akan dianggap sebagai direktori root
(/) oleh klien ketika ada permintaan yang diterima. Sebagai
tambahan, kita akan mengatur sistem agar menjalankan daemon sebagai user dan
grup 'nobody'.
Jika direktori yang anda pilih belum tersedia, anda harus menciptakannya dengan
perintah mkdir. Contoh perintah untuk /tftpboot:
Daftar Kode 2.6: Menciptakan /tftpboot |
# /bin/mkdir /tftpboot
|
Selanjutnya kita harus merubah kepemilikan /tftpboot agar dimiliki
oleh user dan grup 'nobody':
Daftar Kode 2.7: Perubahan kepemilikan |
# chown nobody:nobody /tftpboot
|
Daemon atftp
Pertama, instal paket net-misc/atftp.
Daftar Kode 2.8: Instalasi atftp |
# emerge net-misc/atftp
|
Setelah paket net-misc/atftp terinstal, kita harus mengkonfigurasinya.
Jika anda ingin menjalankan servis tftpd ketika boot, anda harus
menambahkan sebuah entri di /etc/conf.d/local.start karena tftpd
belum memiliki skrip init, inetd, atau xinetd-nya sendiri. Jika anda ingin
menggunakan inetd atau xinetd untuk mengendalikan servis tftpd, bacalah
manualnya masing-masing.
Berikut ini adalah contoh entri atftpd di /etc/conf.d/local.start:
Daftar Kode 2.9: /etc/conf.d/local.start |
/usr/sbin/in.tftpd -v --daemon /tftpboot
|
Penjelasan dari opsi tftpd di atas adalah sebagai berikut (diambil dari halaman
manualnya):
| Opsi |
Penjelasan |
| -v |
Meningkatkan level log. Jika tidak ada argumen yang diberikan, maka level
akan dinaikkan satu tingkat. Defaultnya adalah LOG_NOTICE, bacalah
manual 3 syslog untuk mempelajari level log. Rentang nilai yang
diterima adalah 0 (LOG_EMERG) sampai 7 (LOG_DEBUG)
|
| --daemon |
Dijalankan sebagai daemon. Jangan gunakan opsi ini jika atftpd dijalankan
oleh (x)inetd.
|
Untuk mengetahui opsi-opsi lain yang disediakan, bacalah halaman manual atftpd.
Daemon netkit-tftp
Pertama, instal paket net-misc/netkit-tftp.
Daftar Kode 2.10: Instalasi netkit-tftp |
# emerge net-misc/netkit-tftp
|
Selanjutnya, instal sys-apps/xinetd jika belum; Setelah paket
net-misc/netkit-tftp dan sys-apps/xinetd terinstal, kita harus
mengkonfigurasi netkit-tftp. netkit-tftp harus dijalankan oleh xinetd, namun
tidak ada contoh skrip yang disediakan. Berikut ini adalah contoh skrip xinetd:
Daftar Kode 2.11: Contoh /etc/xinetd.d/tftp |
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
group = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
only_from = 10.0.1.0
disable = no
}
|
Catatan:
Contoh file konfigurasi xinetd untuk tftp ini menggunakan baris "disable = no",
yang mengaktifkan servis secara default. Ini adalah kebalikan dari file
konfigurasi default xinetd yang disediakan oleh Gentoo.
|
Penjelasan dari opsi-opsi di atas adalah sebagai berikut:
| Opsi |
Penjelasan |
| user |
User yang digunakan oleh in.tftpd untuk menangani permintaan |
| group |
Grup yang digunakan oleh in.tftpd untuk menangani permintaan |
| server_args |
Direktori root tempat daemon tftp menyimpan file |
| only_from |
Menginformasikan kepada xinetd tetnang host mana saja yang diizinkan
untuk mendapatkan koneksi tftp
|
Informasi lain tentang file konfigurasi xinetd bisa anda dapatkan dari man 5
xinetd.conf.
Jika xinetd sudah dijalankan, anda dapat mengirimkan signal HUP agar file
konfigurasinya dibaca kembali:
Daftar Kode 2.12: Mengirimkan signal HUP kepada xinetd |
# /bin/killall -HUP xinetd
|
Jika belum, jalankan seperti berikut ini:
Daftar Kode 2.13: Menjalankan xinetd |
# /etc/init.d/xinetd start
|
Untuk infomasi lain, bacalah man 8 in.tftpd.
Daemon tftp-hpa
Pertama, instal paket tftp-hpa dengan perintah berikut:
Daftar Kode 2.14: Instalasi tftp-hpa |
# emerge net-misc/tftp-hpa
|
tftp-hpa menyediakan skrip init dan file konfigurasi. Periksa apakah variabel
INIITFTPD_PATH dan INITFTP_OPTS di /etc/conf.d/in.tftpd sama
dengan yang berikut ini:
Daftar Kode 2.15: /etc/conf.d/in.tftpd |
INTFTPD_PATH="/tftpboot"
INTFTPD_OPTS="-s -v -l ${INTFTPD_PATH}"
|
Daemon tftp dapat dijalankan dengan skrip init.d:
Daftar Kode 2.16: Menjalankan in.tftpd |
# /etc/init.d/in.tftpd start
|
Untuk mengetahui opsi-opsi lain yang tersedia, bacalah man 8 tftpd.
3.
Mempersiapkan imej tftpboot yang akan digunakan oleh klien
Pastikan agar anda sudah memiliki imej untuk netboot. Untuk imej netboot sparc
atau sparc64, anda bisa mendapatkannya dari mirror Gentoo di dalam direktori
experimental/sparc/tftpboot. Kami anggap anda menggunakan imej
gentoo-sparc64-1.4_rc4-20040102.tftpboot.
Jika anda memiliki imej anda sendiri, salinlah imej tersebut ke
/tftpboot:
Daftar Kode 3.1: Menyalin imej |
# cp gentoo-sparc64-1.4_rc4-20040102.tftpboot /tftpboot
|
Sekarang, ketika klien netboot menyampaikan permintaan tftp, klien tersebut
akan mencari file yang dinamakan dengan angka heksadesimal dari alamat IP-nya,
dan pada beberapa platform diberi akhiran .ARCH. Angka
heksadesimal ini harus menggunakan huruf kapital.
Anda dapat membaca panduan tentang cara mengubah desimal ke heksadesimal di
http://www.permadi.com/tutorial/numDecToHex/
Dan bagi anda yang malas/tidak sabar, anda dapat menemukan alat pengubah
desimal ke heksadesimal di http://dan.drydog.com/hextemp.html.
Catatan:
Untuk setiap oktet dari alamat IP (mis. angka 10 dari IP 10.0.1.15), anda harus
mengubahnya ke heksadesimal, bukan mengubahnya ke angka tunggal.
|
Untuk alamat IP pada contoh kita, 10.0.1.15, setelah dirubah ke
heksadesimal menjadi:
Daftar Kode 3.2: Alamat IP contoh |
decimal 10 0 1 15
hexadecimal 0A 00 01 0F
|
Jadi untuk klien netboot sparc64 kita, file yang akan dicari ketika klien boot
adalah file bernama 0A00010F.
Namun, di sparc, file tadi akan dinamakan 0A00010F.SUN4M,
0A00010F.SUN4C, atau 0A00010F.SUN4D, tergantung tipe
komputernya.
Sebagai tambahan, jika anda benar-benar malas (seperti penulis), anda dapat
me-netboot komputer tersebut untuk menemukan file dari log server netboot.
Jangan lupa untuk memastikan agar daeom rarpd dan tftpd yang anda pilih sudah
dijalankan. Kemudian, boot komputer klien seperti yang dijelaskan di bagian
"Me-netboot Klien".
Klien akan terlihat seperti terkatung-katung ketika perintah boot net
dijalankan. Selanjutnya pada server netboot, periksa log sistem untuk mencari
entri in.tftpd.
Berikut ini adalah contoh entri dari server netboot yang menggunakan sysklogd
dan tftp-hpa:
Daftar Kode 3.3: Entri log server netboot |
Jan 3 22:48:59 stargazer in.tftpd[8368]: RRQ from 10.0.1.15 filename 0A00010F
|
Nama file yang dicantumkan pada entri di atas setelah kata "filename" adalah
0A00010F.
Untuk mengetahui imej netboot yang sedang anda gunakan dan untuk mengizinkan
banyak komputer untuk menggunakan imej yang sama, anda dapat menggunakan
symlink untuk menciptakan file baru dengan mengikutsertakan heksadesimal untuk
masing-masing komputer. Untuk imej dan klien yang kita gunakan pada contoh ini,
perintahnya adalah:
Daftar Kode 3.4: Membuat symlink file imej |
# /bin/ln -s /tftpboot/gentoo-sparc64-1.4_rc4-20040102.tftpboot /tftpboot/0A00010F
|
Sekarang anda sudah siap untuk melakukan boot jaringan!
4.
Me-netboot Klien
Buka OpenBoot PROM (OBP) di SPARC, lalu ketikkan perintah berikut:
Daftar Kode 4.1: Boot OBP |
ok boot net
|
Metode lainnya untuk beberapa komputer adalah:
Daftar Kode 4.2: Boot OBP, cara alternatif |
ok boot net-tpe
|
Catatan:
Jika komputer anda tidak menampilkan OBP ketika boot, maka anda harus menekan
tombol STOP-A atau mengirimkan signal "break" melalui konsol serial
sebelum sistem operasi di-boot. Jika sistem operasi tidak ditemukan,
seharusnya komputer anda akan mencoba boot dari antarmuka jaringan (yang kita
inginkan), atau menampilkan prompt OBP.
|
Perintah di atas akan memulai proses netboot. Anda akan melihat angka-angka
heksadesimal yang terus berganti. Ketika imej selesai dimuat, kernel akan
mengambil-alih sistem dan memulai proses boot sistem operasi. Pada imej contoh
untuk sparc64 kita, anda akan dibawa ke prompt shell tempat anda dapat memulai
proses instalasi.
5.
Pemecahan Masalah
Kompilasi software
Jika server netboot anda menggunakan Gentoo Linux dan anda mendapatkan masalah
ketika menginstal paket rarpd dan tftpd, lakukan pencarian di
http://forums.gentoo.org dan http://bugs.gentoo.org untuk
mengetahui apakah masalah anda sudah pernah dialami oleh pengguna lain. Jika
belum, atau solusi yang anda temukan tidak dapat menyelesaikan masalah anda,
buatlah laporan bug di http://bugs.gentoo.org.
Saya telah mengetikkan perintah "boot net", tetapi kelihatannya 'hang'.
Hal ini kemungkinan disebabkan oleh file yang ingin dimuat oleh komputer anda
dari server netboot tidak tersedia. Pada komputer SPARC, anda mungkin akan
melihat pesan berikut:
Daftar Kode 5.1: Netboot hang |
Rebooting with command: boot
Boot device: net File and args:
|
Periksa kembali apakah file yang diperlukan klien benar-benar tersedia di
/tftpboot. Anda dapat mengetahui file yang diminta oleh klien dari
log server. Selain itu, jika file ini sudah tersedia, klien akan mencoba untuk
memuatnya. Terkadang, ketika pada awalnya file tersebut tidak tersedia,
komputer akan "hang" ketika file ditemukan. Untuk mengatasi masalah ini,
kembalilah ke prompt OBP untuk menjalankan kembali perintah "boot net". Klien
seharusnya akan dapat mendownload imej netboot dan mem-boot OS.
Saya mencoba melakukan netboot, tetapi saya hanya melihat pesan "Timeout
waiting for ARP/RARP packet".
Masalah ini bisa disebabkan oleh beberapa hal:
-
Pastikan entri di /etc/ethers tersedia untuk merespon
permintaan klien. Jika alamat MAC yang tercantum tidak benar dan/atau
server netboot tida dapat menerjemahkan nama host klien, server tidak akan
dapat merespon klien.
-
Periksa apakah hub atau switch jaringan yang digunakan oleh klien dan
server mengizinkan lalu-lintas RARP. Jika permintaan klien tidak dapat
mencapai server, atau sebaliknya, klien tidak akan mendapatkan respon.
-
Tidak ada komputer yang merespon permintaan RARPD karena tidak ada servis
yang menerimanya. Periksa apakah servis rarpd telah dijalankan.
-
Klien tidak mengetahui bahwa NIC-nya tersambung ke hub/switch jaringan.
Periksa apakah led NIC dan port di hub/switch jaringan menyala. Jika led
menyala, periksa pengaturan "tpe-link-test?" di OBP dengan perintah
printenv tpe-link-test?. Anda seharusnya mendapatkan output seperti
tpe-link-test? false true. Kolom pertama berisi nama parameter,
kolom kedua berisi nilai parameter saat ini, dan kolom ketiga berisi nilai
default parameter. Pada contoh di atas, kita dapat melihat bahwa nilai
parameter saat ini adalah "false", artinya klien tidak memeriksa apakah NIC
telah terhubung dengan jaringan sebelum menyampaikan permintaan RARP.
Situasi ini terkadang bisa mendatangkan masalah.
Untuk mengganti nilai parameter "tpe-link-test?" dari prompt OBP, jalankan
perintah berikut:
Daftar Kode 5.2: Mengganti nilai tpe-link-test |
ok setenv tpe-link-test? true
tpe-link-test? = true
|
Nilai parameter "tpe-link-test?" sekarang adalah "true". Coba netboot kembali.
Isi dokumen ini dilisensikan dengan lisensi Creative Commons -
Attribution / Share Alike.
|