4.4. Mempersiapkan Berkas untuk Boot Jaringan TFTP

Jika komputer Anda terhubung ke jaringan area lokal, Anda mungkin dapat mem-boot-nya melalui jaringan dari mesin lain, menggunakan TFTP. Jika Anda bermaksud untuk mem-boot sistem instalasi dari mesin lain, berkas boot harus ditempatkan di lokasi tertentu pada mesin itu, dan mesin dikonfigurasi untuk mendukung boot mesin spesifik Anda.

Anda perlu menyiapkan sebuah server TFTP, dan untuk banyak mesin, sebuah server DHCP, atau server RARP, atau server BOOTP.

Reverse Address Resolution Protocol (RARP) adalah salah satu cara untuk memberi tahu klien Anda alamat IP apa yang akan digunakan untuk dirinya sendiri. Cara lain adalah dengan menggunakan protokol BOOTP. BOOTP adalah protokol IP yang menginformasikan komputer tentang alamat IP-nya dan di mana di jaringan untuk mendapatkan image boot. DHCP (Dynamic Host Configuration Protocol) adalah ekstensi BOOTP yang lebih fleksibel dan kompatibel ke belakang. Beberapa sistem hanya dapat dikonfigurasi melalui DHCP.

Trivial Berkas Transfer Protocol (TFTP) digunakan untuk melayani image boot ke klien. Secara teoretis, server apa pun, pada platform apa pun, yang mengimplementasikan protokol ini, dapat digunakan. Dalam contoh di bagian ini, kami akan memberikan perintah untuk SunOS 4.x, SunOS 5.x (alias Solaris), dan GNU/Linux.

4.4.1. Menyiapkan server RARP

Untuk menyiapkan RARP, Anda perlu mengetahui alamat Ethernet (alias alamat MAC) dari komputer klien yang akan dipasang. Jika Anda tidak mengetahui informasi ini, Anda dapat boot ke mode Rescue dan menggunakan perintah ip addr show dev eth0.

Pada sistem server RARP menggunakan kernel Linux atau Solaris/SunOS, Anda menggunakan program rarpd. Anda perlu memastikan bahwa alamat perangkat keras Ethernet untuk klien tercantum dalam basis data ether (baik dalam berkas /etc/ethers, atau melalui NIS/NIS+) dan dalam basis data host. Maka Anda perlu memulai daemon RARP. Berikan perintah (sebagai root): /usr/sbin/rarpd -a pada sebagian besar sistem Linux dan SunOS 5 (Solaris 2), /usr/sbin/in.rarpd -a pada beberapa sistem Linux lainnya, atau /usr/etc/rarpd -a di SunOS 4 (Solaris 1).

4.4.2. Menyiapkan server DHCP

Salah satu perangkat lunak DHCP server bebas adalah ISC dhcpd. Untuk Debian GNU/Linux, paket isc-dhcp-server direkomendasikan. Berikut adalah contoh berkas konfigurasi untuk itu (lihat /etc/dhcp/dhcpd.conf):

option domain-name "example.com";
option domain-name-servers ns1.example.com;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
server-name "servername";

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.253;
  option routers 192.168.1.1;
}

host clientname {
  filename "/tftpboot.img";
  server-name "servername";
  next-server servername;
  hardware ethernet 01:23:45:67:89:AB;
  fixed-address 192.168.1.90;
}

Dalam contoh ini, ada satu server servername yang melakukan semua pekerjaan server DHCP, server TFTP, dan gateway jaringan. Anda hampir pasti perlu mengubah opsi nama domain, serta nama server dan alamat perangkat keras klien. Opsi nama berkas harus berupa filename yang akan diambil melalui TFTP.

Setelah Anda mengedit berkas konfigurasi dhcpd, jalankan ulang dengan /etc/init.d/isc-dhcp-server restart.

4.4.3. Menyiapkan server BOOTP

Ada dua server BOOTP yang tersedia untuk GNU/Linux. Yang pertama adalah CMU bootpd. Yang lainnya sebenarnya adalah server DHCP: ISC dhcpd. Dalam Debian GNU/Linux ini masing-masing ada dalam paket bootp dan isc-dhcp-server.

Untuk menggunakan CMU bootpd, Anda harus terlebih dahulu menghapus komentar (atau menambahkan) baris yang relevan di /etc/inetd.conf. Pada Debian GNU/Linux, Anda dapat menjalankan update-inetd --enable bootps, lalu /etc/init.d/inetd reload untuk melakukannya. Untuk berjaga-jaga jika server BOOTP Anda tidak berjalan pada Debian, baris yang dimaksud akan terlihat seperti:

bootps  dgram  udp  wait  root  /usr/sbin/bootpd  bootpd -i -t 120

Sekarang, Anda harus membuat berkas /etc/bootptab. Ini memiliki jenis format yang akrab dan cryptic yang sama dengan berkas printcap, termcap, dan disktab BSD lama yang bagus. Lihat halaman manual bootptab untuk informasi lebih lanjut. Untuk CMU bootpd, Anda perlu mengetahui alamat perangkat keras (MAC) klien. Berikut adalah contoh /etc/bootptab:

client:\
  hd=/tftpboot:\
  bf=tftpboot.img:\
  ip=192.168.1.90:\
  sm=255.255.255.0:\
  sa=192.168.1.1:\
  ha=0123456789AB:

Anda perlu mengubah setidaknya opsi ha, yang menentukan alamat perangkat keras klien. Opsi bf menentukan berkas yang harus diambil klien melalui TFTP; lihat Bagian 4.4.5, “Pindahkan Image TFTP Ke Tempatnya” untuk lebih jelasnya.

Sebaliknya, menyiapkan BOOTP dengan ISC dhcpd sangat mudah, karena memperlakukan klien BOOTP sebagai kasus yang cukup khusus dari klien DHCP. Beberapa arsitektur memerlukan konfigurasi kompleks untuk mem-boot klien melalui BOOTP. Jika milik Anda adalah salah satunya, baca bagian ini Bagian 4.4.2, “Menyiapkan server DHCP”. Jika tidak, Anda mungkin akan bisa lolos hanya dengan menambahkan direktif allow bootp ke blok konfigurasi untuk subnet yang berisi klien di /etc/dhcp/dhcpd.conf, dan jalankan ulang dhcpd dengan /etc/init.d/isc-dhcp-server restart.

4.4.4. Mengaktifkan Server TFTP

Untuk menyiapkan server TFTP, Anda harus terlebih dahulu memastikan bahwa tftpd diaktifkan.

Dalam kasus tftpd-hpa ada dua cara layanan dapat dijalankan. Ini dapat dimulai sesuai permintaan oleh daemon inetd sistem, atau dapat diatur untuk dijalankan sebagai daemon independen. Yang mana dari metode ini yang digunakan dipilih ketika paket dipasang dan dapat diubah dengan mengonfigurasi ulang paket.

[Catatan] Catatan

Secara historis, server TFTP menggunakan /tftpboot sebagai direktori tempat menyajikan image. Namun, paket Debian GNU/Linux dapat menggunakan direktori lain untuk mematuhi Filesystem Hierarchy Standard. Misalnya, tftpd-hpa secara baku menggunakan /srv/tftp. Anda mungkin harus menyesuaikan contoh konfigurasi di bagian ini.

Semua alternatif in.tftpd yang tersedia di Debian harus mencatat permintaan TFTP ke log sistem secara baku. Sebagian dari mereka mendukung argumen -v untuk meningkatkan verbositas. Disarankan untuk memeriksa pesan log ini jika terjadi masalah boot karena merupakan titik awal yang baik untuk mendiagnosis penyebab kesalahan.

4.4.5. Pindahkan Image TFTP Ke Tempatnya

Selanjutnya, tempatkan image boot TFTP yang Anda butuhkan, seperti yang ditemukan di Bagian 4.2.1, “Di Mana Menemukan Berkas Instalasi”, dalam direktori image boot tftpd. Anda mungkin harus membuat tautan dari berkas itu ke berkas yang tftpd akan gunakan untuk mem-boot klien tertentu. Sayangnya, nama berkas ditentukan oleh klien TFTP, dan tidak ada standar yang kuat.