Selasa, 22 November 2011

Linux Quota dan Kernel

 

 

1. Pendahuluan

Di sebuah komputer yang digunakan oleh banyak user dan belum diterapkan pemberian Disk Quota, seringkali masing-masing user menyimpan datanya tanpa memperhatikan kapasitas harddisk komputer tersebut. Tentu saja hal in akan menimbulkan masalah-masalah yang membuat pusing seorang administrator. Untuk mengatasi agar masing-masing user tidak dapat menyimpan data melebihi kapasitas yang diizinkan , maka seorang administrator perlu menerapkan pemberian disk quota pada masing-masing user tersebut. Akan tetapi mungkin saja ada beberapa user yang ingin diberikan disk quota yang lebih besar atau bahkan mungkin diberikan disk quota yang tidak terbatas. Karena itu  dengan penerapan disk quota  ini dapat diatur pembagian quota masing-masing user sesuai dengan yang dikehendaki.

 

Banyak pilihan yang dapat digunakan dalam menentukan cara untuk memberikan batas quota yag mungkin dialokasikan untuk seorang user atau group yaitu apakah dengan menentukan ruang disk atau dengan menentukan banyak file yang boleh mereka buat. Anda boleh saja membatasi alokasi ruang disk (block quota) atau berdasarkan jumlah file (inode quota) atau mungkin kombinasi keduanya. Masing-masing pembatasan ini kemudian akan dibagi atas dua kategori, yaitu kategori hard limit dan soft limits.

 

Hard limit tidak boleh dilewati. Setelah seorang user mencapai hard limitnya, dia tidak akan mendapatkan tambahan alokasi baru pada file sistem tersebut. Sebagai contoh jika user tersebut mempunyai hard limit 500 blok dalam sebuah file sistem saat dia telah mengggunakan 490 blok, maka user tersebut hanya tinggal memiliki alokasi 10 blok. Jika dia mencoba untuk mengalokasikan tambahan 11 blok, maka usaha ini akan gagal karena sudah melewati hard limitnya.

 

Sebaliknya soft limit dapat dilewati tapi hanya selama waktu yang telah ditetapkan. Periode ini dikenal dengan sebutan grace period, yang harga defaultnya adalah seminggu atau tujuh hari. Jika seorang user tetap mempertahankan kelebihan quota di batas soft limit lebih lama dari grace periodyang dimilikinya, maka soft limit ini akan berubah menjadi hard limit. Kemudian karena sifat hard limit, dia tidak akan memperoleh tambahan alokasi lagi. Saat user tersebut mengembalikan lagi pemakaian ruang disk di bawah batas quota yang dimilikinya, grace period akan diset ulang.

 

Kernel merupakan inti dari sistem operasi Linux. Program-program lainnya seperti kompiler, editor, window manager dsb adalah paket distribusi yang disertakan melengkapi sistem Linux. Kernel berisi  program yang dimuat saat boot dan berfungsi sebagai interface antara software dan hardware. Kernel juga bertugas menangani permintaan membaca atau menulis peralatan disk, melakukan tugas-tugas network, proses input/output,  manajemen memori, dsb. Kita harus mengkonfigurasikan kernel dan mengkompilenya agar benar-benar efisien dan sesuai dengan sistem Linux kita.  Pada dasarnya linux adalah kernel. Program-program lainnya seperti kompiler, editor, window manager dsb yang disertakan adalah paket distribusi yang melengkapi kernel menjadi sebuah sistem yang operasi yang lengkap. Informasi mengenai perkembangan kernel khususnya yang terbaru bisa dilihat di homepage http://www.kernel.org atau http://www.linuxtoday.org. 

 

2. Konfigurasi Quota

Sebelum mencoba untuk menggunakan disk quota perlu diingat bahwa quota harus sudah dikonfigurasi di kernel anda dan sistem anda sudah terinstall paket quota. Pada Linux Redhat versi 6.2, paket quota bisa diinstall dengan rpm jika saat instalasi sistem, paket quota tidak dipilih. Setelah itu konfigurasi ulang kernel anda dan pada bagian quota support ketikkan y :

 

Quota support (CONFIG_QUOTA) [n] y


 



Pada Linux redhat 6.2, jika quota sudah diinstall, maka secara otomatis saat booting sistem akan mengaktifkan quota. Untuk mengecek apakah quota sudah aktif lakukan perintah berikut :



# /usr/sbin/quotacheck –avug



 



Kemudian hidupkan quota :



# /usr/sbin/quotaon -avug



 



Setelah itu anda harus menyunting file /etc/fstab untuk mengaktifkan disk quota per baris file sistem, dimana anda dapat mengaktifkan quota untuk masing-masing user atau group atau keduanya untuk semua file sistem yang ada di Linux. Sebelum quota diaktifkan tampilan file /etc/fstab adalah sbb:



 


/dev/hda1       /        ext2    defaults        1       1


/dev/hda2       /home    ext2    defaults        1       1


 



Untuk mengaktifkan quota user, tambahkan “usrquota” pada kolom keempat setelah “defaults” menjadi :



 


/dev/hda1       /        ext2    defaults        1       1


/dev/hda2       /home    ext2    defaults,usrquota       1        1


 



Cara untuk mengaktifkan quota group hampir sama, yaitu hanya dengan mengganti options usrquota menjadi grpquota. Sedangkan untuk mengaktifkan keduanya, dapat dilakukan dengan mengubah options seperti berikut :



 


/dev/hda1       /        ext2    defaults              1      1


/dev/hda2       /home    ext2    defaults,usrquota,grpquota   1   1


 



Kemudian perlu dibuat juga file yang berfungsi menyimpan record quota yaitu quota.user dan quota.group. Keduanya harus diset owner sebagai root, dan hanya boleh di read-write oleh root saja. File ini biasa diletakkan di partisi /home. 


# cd /home


# touch quota.user 


# touch quota.group 


# chmod 600 quota.user 


# chmod 600 quota.group


 



Untuk keterangan lebih lanjut tentang fstab, baca manualnya :



# man fstab



 



Selanjutnya reboot sistem agar quota dapat berjalan. Jika operasi sudah berjalan normal anda tidak perlu lagi menjalankan perintah quotacheck dan quotaon. Anda hanya perlu memastikan bahwa quota benar-benar sudah diaktifkan. Cara yang mudah untuk melakukan ini ialah dengan menjalankan perintah quota –v. Dari keluaran perintah ini dapat anda lihat satu baris informasi tentang pemakaian disk dan batas quota saat itu untuk masing-masing file sistem yang telah diaktifkan quotanya.



 



Untuk mengalokasikan batas quota digunakan perintah edquota. Perintah dapat digunakan baik untuk mengatur quota seorang user maupun quota sebuah group. Apabila perintah edquota digunakan untuk mengatur quota seorang user maka setelah perintah edquota bisa diikuti dengan flag –u atau bisa juga tidak, baru kemudian diikuti namauser yang akan diatur quotanya. Jika peintah edquota tidak diikuti flag, maka secara default perintah edquota tersebut dianggap akan mengatur quota seorang user alias menggunakan flag –u. Karena itu, jika perintah edquota ini akan digunakan untuk mengatur quota sebuah group, maka setelah perintah ini harus diikuti flag –g baru kemudian diikuti nama group yang akan diatur quotanya. Selain itu perintha edquota ini juga dapat digunakan untuk mengatur quota dua atau lebih user atau group sekaligus. Sintaksnya :



# edquota <user1> <user2> <user3> …dst



dan untuk mengatur dua atau lebih group digunakan :



# edquota  -g <group1> <group2> <group3> …dst



 



Ketika perintah edquota diminta, secara otomatis sistem akan menggunakan fasilitas teks editor vi untuk menyunting batas-batas quota yang dikehendaki. Penggunaan perintah edquota dapat dilihat pada contoh berikut :



 



Untuk edit quota user



# edquota –u bagus


Quotas for user bagus: 


/dev/hda2: blocks in use: 2594, limits (soft = 5000, hard = 6500) 


           inodes in use: 356, limits (soft = 1000, hard = 1500)


"blocks in use" adalah jumlah total blok (dalam kilobyte) yang telah dipakai oleh user. "inodes in use" adalah jumlah total file yang dimiliki user dalam partisi tersebut.



Untuk edit quota group


# edquota –g asisten


Quotas for group asisten: 


/dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000) 


           inodes in use: 1454, limits (soft = 3000, hard = 4000)


Seringkali seorang administrator ingin supaya ia dapat mengatur batas quota pada suatu rentang uid atau user ID, sehingga dia tidak perlu memberikan batas quota masing-masing user satu demi satu yang tentu saja akan memakan waktu dan tenaga. Hal ini dapat dilakukan dengan menggunakan flag –p pada perintah edquota. Hal pertama yang harus dilakukan dalam penduplikasian batas quota untuk sejumlah user ini adalah menentukan batas quota yanag akan dijadikan contoh atau prototype pada seorang user saja. Setelah itu proses duplikasi dapat dilakukan. Jika diasumsikan shell anda adalah csh dan user ID dimulai pada nomor 500 maka digunakan perintah :



# edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`


 


Jika anda ingin mengeset sendiri grace periode, dapat dilakukan perintah edquota –t. Maka akan ditampilkan :



 


# edquota -t


Time units may be: days, hours, minutes, or seconds 


Grace period before enforcing soft limits for users: 


/dev/hda2: block grace period: 0 days, file grace period: 0 days 


Jika anda ingin mengeset grace periode menjadi 5 hari maka anda cukup mengubah angka 0 days menjadi 5 days, disesuaikan dengan block dan filenya.



Keterangan selengkapnya baca di manual :



# man edquota



Setelah disk quota aktif pada system, tentu saja administrator ingin memeriksa batas quota dan kapasitas disk quota yang telah digunakan. Untuk melakukan hal itu, selain dapat menggunakan perintah quota, juga dapat digunakan perintah repquota. Perintah quota hanya dapat digunakan oleh seorang user untuk memeriksa quota user dan group, dan pemakaian kapasitas disk yang dimilikinya. Perintah ini tidak bisa  digunkan untuk melihat informasi quota yang dimiliki user lain atau group lain, jika hanya menggunakan account user  biasa. Hanya superuser atau yang memiliki account root yang dapat melihat informasi quota y ang dimiliki user lain beserta pemakaiannya. Perintah repquota dapat digunakan untuk mendapatkan ringkasan dari semua informasi quota dan pemakaian disk untuk file system yang telah diaktifkan quotanya. Berbeda dengan perintah edquota, pada perintah repquota ini jika anda tidak menambahkan flag apapun, secara otomatis yang akan ditampilkan adalah quota untuk masing-masing user dan quota untuk masing-masing group (jika keduanya ada). Jadi misalkan ingin melihat alokasi quota tiap user di file system /home digunakan perintah :



# repquota –u /home


misalnya tipe user di file sistem /home ini telah diatur, akan muncul tampilan  :


                      Block limits               File limits 


 


   User         used    soft    hard  grace    used  soft  hard   grace 


 


   root   --  175419       0       0          14679     0     0 


   bin    --   18000       0       0            735     0     0 


   uucp   --     729       0       0             23     0     0 


   man    --      57       0       0             10     0     0 


   bagus  --   13046   15360   19200            806  1500  2250 


   andri  --    2838    5120    6400            377  1000  1500


 


Penggunaan perintah quota –v oleh seorang user dapat dilakukan untuk melihat batas quota yang dimilkinya di file system tertentu. Sebagai contoh di bawah ini user adjie akan melihat batas quota yang dimilikinya :



 



# quota –v 


 


Disk quotas for user adjie (uid 501) :


Filesystem  blocks  quota  limit  grace  files  quota  limit  grace


/home         525*     500     550    5days    17     0      0  


/usr          0     500    550              0     0      0 


 


Pada file system /home dari contoh di atas dapat dilihat bahwa user tersebut telah lewat 25 blok dari batas quota yang diizinkan dan mempunyai sisa perpanjangan waktu 5 hari lagi. Tanda asterisk (*) menunjukkan bahwa user tersebut saat ini telah melewati batas quota yang dimilikinya. File system yang tidak digunakan sama sekali oleh user biasanya tidak akan ditampilkan dalam keluaran peintah quota, meskipun user tersebut mempunyai jatah quota pada file system tersebut. Jadi pada contoh di atas (user adjie selain punya quota di /home juga ada di /usr). Jika perintah quota digunakan tanpa flag apapun, maka quota user adjie di /usr tidak akan ditampilkan karena dia sama sekali belum menggunakan jatah quotanya di file system tersebut. Tapi karena perintah edquota menggunakan flag –v maka semua informasi tentang quota yang dimilikinya akan ditampilkan.


 



3. Perkembangan Kernel



Biasanya kernel yang terdapat pada sistem Linux yang kita install sudah berjalan baik, namun kadang kernel perlu dikompilasi ulang atau bahkan di upgrade ke versi yang lebih tinggi agar bisa bekerja optimal pada sistem Linux kita. Hal ini bisa disebabkan karena kernel versi sebelumnya tidak mendukung feature-feature terbaru sesuai dengan perkembangan software.  Kernel terbaru saat pembuatan modul adalah kernel versi 2.4.7. Kernel yang msih banyak digunakan sekarang ini adalah kernel 2.4.2 yang secara garis besar mempunyai feature sebagai berikut :



§  Mendukung  sampai 2.4 milyar user dan group



§  Dukungan RAM hingga 64 Gigabyte



§  NetFilter sebagai pengganti IP chains



§  Dukungan USB yang lebih banyak



§  Reiserfs journaling file system yang memiliki kecepatan dan performance yang lebih bagus



§  /dev file system (devfs), virtual file system untuk device (seperti /proc 



              untuk memory), tetapi masih dalam tahap percobaan.



 



 



4.Instalasi Kernel



 



4.1 Membuat Disket Boot



 



Sebelumnya memulai instalasi kernel, sangat dianjurkan untuk membuat bootdisk untuk persiapan jika kita mengalami kegagalan saat proses instalasi.  Untuk tujuan ini, kita dapat menggunakan utilitas dalam Linux yaitu “mkbootdisk”. Tapi sebelum itu, kita harus mengetahui versi kernel kita saat ini dengan memeriksa file “/etc/lilo.conf”. Sebagai contoh, berikut ditampilkan isi file “/etc/lilo.conf” :



# pico /etc/lilo.conf



boot=/dev/hda



map=/boot/map



install=/boot/boot.b



prompt



timeout=50



default=linux



image=/boot/vmlinuz-2.2.14-15.0



              label=linux



              read-only



              root=/dev/hda9



other=/dev/hda1



              label=dos



Berdasarkan file di atas, sistem Linux diboot menggunakan “/boot/vmlinuz-2.2.14-15.0”. Berikut adalah langkah-langkah pembuatan bootdisk :



# mkbootdisk --device /dev/fd0 2.2.14-15.0



Insert a disk in /dev/fd0. Any information on the disk will be lost.



Press <Enter> to continue or ^C to abort:      



Sebaiknya kita memboot ulang sistem dengan bootdisk tersebut untuk menjamin bahwa bootdisk tersebut bekerja dengan baik.



 



4.2 Konfigurasi Kernel



 



Langkah pertama kita akan menguninstall kernel versi lama. Tapi sebelum itu ada baiknya kita Agar lebih aman sebaiknya modul lama dibackup dulu. Modul ada di direktori /lib/modules.



# cp /lib/modules/2.2.14 /lib/modules/2.2.14.bkp



Dengan membackup modul maka bila modul baru tidak bisa digunakan dengan baik maka modul lama masih bisa dipakai lagi dengan menghapus modul baru dan mengganti nama modul backup seperti semula.



Dalam proses uninstall ini ada dua macam cara :



Bila kita pernah menginstall kernel Linux dengan source dalam bentuk tar archive (.tar.gz):



§   Masuk ke direktori /usr/src :



    # cd /usr/src



§   Hapuslah simbolik links dengan perintah :



    # rm –rf linux



§   Hapus direktori kernel header Linux :



    # rm-rf linux-2.2.xx



§   Hapus direktori kernel modul Linux  dengan perintah :



    # rm –rf /lib/modules/2.2.xx



  



Menghapus modul lama diperlukan bila kita telah menginstall versi kernel sebelumnya yang berupa modul. Jika direktori modul ini tidak terdapat dalam direktori “/lib”  karena kernel versi sebelumnya bukan kernel termodulasi. 



Bila kita baru pertama kali menginstall kernel Linux, kita harus menguninstall paket kernel RPM yang terinstall dalam sistem kita:



§   Kita dapat mengetahui release paket RPM dengan perintah sbb :



   # rpm –qa| grep kernel



     kernel-headers-2.2.xx.i386.rpm



     kernel-2.2.xx.i386.rpm



§   Untuk menguninstall kernel linux RPM :



   # rpm –e –nodeps kernel-headers kernel



     cannot remove /usr/src/linux-2.2.xx – directory not empty



     cannot remove /lib/modules/2.2.xx – directory not empty



   # rm –rf /usr/src/linux-2.2.xx/



   # rm –rf /lib/modules/2.2.xx/



Kita menghapus secara manual direktori “/usr/src/linux-2.2.xx” dan “/lib/modules/2.2.xx” beserta direktori-direktori di bawahnya.



    



Pada tahap instalasi kita harus mengambil source kernel yang akan kita install (biasanya ini bisa diambil di ftp-ftp tertentu). Pada modul ini kita akan menginstall kernel versi 2.2.16. Kopikan source kernel ini pada direktori /usr/local/src lalu ekstrak source sbb :



# cp linux-2.2.16.tar.gz /usr/src/



# tar –zxvf linux-2.2.16.tar.gz     



Perintah tersebut akan mendekompress dan mengekstrak file-file di dalamnya ke direktori /usr/src/. Biasanya setelah diekstrak, akan dibuat direktori /usr/src/linux, sehingga akan menimpa direktori lama. Ada baiknya kita membackup direktori /usr/src/linux yang lama. Mengupgrade kernel dengan versi yang jauh lebih tinggi (misal dari 2.2.14 ke 2.4.2) akan lebih kompleks dan rumit daripada mengupgrade ke versi yang tidak terlalu tinggi (misal dari 2.2.14 ke 2.2.16). Sebaiknya baca juga file /usr/src/linux/README dan /usr/src/linux/Documentation/Change.



# cd /usr/src/linux



# make mrproper



Perintah ini akan membersihkan segala sesuatu yang masih tertinggal secara tidak sengaja pada source. Kemudian kita harus mengkonfigurasi kernel kita. Terdapat tiga mode konfigurasi yaitu:



§   make config, membuat konfigurasi kernel berdasarkan teks



§   make menuconfig, menampilkan option-option kernel dengan pull down dan menu yang mudah dipahami.



§   make xconfig, berupa tampilan full grafis (Xwindows).



 



Dalam kompilasi kali ini, kita akan menggunakan mode yang kedua karena mode ini cukup mudah dan tidak membutuhkan dukungan hardware yang tinggi. Setelah mengetikkan perintah itu akan tampil konfigurasi kernel linux. Kita harus memilih option-option tersebut sesuai dengan kebutuhan dan spesifikasi komputer kita. Biasanya kita dihadapkan pada pilihan yes (y), module (m), dan no (n). Bila kita bingung dalam menentukan pilihan-pilihan tersebut bacalah petunjuk (help) yang disediakan untuk setiap option. Option option yang kita pilih yes (y) akan dimuat dan dikompile ke dalam kernel. Hal ini akan memperbesar ukturan kernel kita. Oleh karena itu, pilihlah hanya feature-feature yang sering digunakan. Untuk feature-feature yang jarang digunakan sebaiknya dijadikan sebagai modul. Berikut contoh option-option yang disediakan :



 



Code maturity level options



Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [N/y/?]



Processor type and features



Processor family (386, 486/Cx486, 586/K5/5x86/6x86, Pentium/K6/TSC, PPro/6x86MX) [PPro/6x86MX]



Maximum Physical Memory (1GB, 2GB) [1GB]



Math emulation (CONFIG_MATH_EMULATION) [N/y/?]



MTRR (Memory Type Range Register) support (CONFIG_MTRR) [N/y/?]



Symmetric multi-processing support (CONFIG_SMP) [Y/n/?] N



Loadable module support



Enable loadable module support (CONFIG_MODULES) [Y/n/?] N



General setup



Networking support (CONFIG_NET) [Y/n/?]



PCI support (CONFIG_PCI) [Y/n/?]



PCI access mode (BIOS, Direct, Any) [Any]



PCI quirks (CONFIG_PCI_QUIRKS) [Y/n/?] N



Backward-compatible /proc/pci (CONFIG_PCI_OLD_PROC) [Y/n/?] N



MCA support (CONFIG_MCA) [N/y/?]



SGI Visual Workstation support (CONFIG_VISWS) [N/y/?]



System V IPC (CONFIG_SYSVIPC) [Y/n/?]



BSD Process Accounting (CONFIG_BSD_PROCESS_ACCT) [N/y/?]



Sysctl support (CONFIG_SYSCTL) [Y/n/?]



Kernel support for a.out binaries (CONFIG_BINFMT_AOUT) [Y/n/?]



Kernel support for ELF binaries (CONFIG_BINFMT_ELF) [Y/n/?]



Kernel support for MISC binaries (CONFIG_BINFMT_MISC) [Y/n/?]



Parallel port support (CONFIG_PARPORT) [N/y/?]



Advanced Power Management BIOS support (CONFIG_APM) [N/y/?]



Plug and Play support



Plug and Play support (CONFIG_PNP) [N/y/?]



Block devices



Normal PC floppy disk support (CONFIG_BLK_DEV_FD) [Y/n/?]



Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support (CONFIG_BLK_DEV_IDE) [Y/n/?]



Use old disk-only driver on primary interface (CONFIG_BLK_DEV_HD_IDE) [N/y/?]



Include IDE/ATA-2 DISK support (CONFIG_BLK_DEV_IDEDISK) [Y/n/?]



Include IDE/ATAPI CDROM support (CONFIG_BLK_DEV_IDECD) [Y/n/?]



Include IDE/ATAPI TAPE support (CONFIG_BLK_DEV_IDETAPE) [N/y/?]



Include IDE/ATAPI FLOPPY support (CONFIG_BLK_DEV_IDEFLOPPY) [N/y/?]



SCSI emulation support (CONFIG_BLK_DEV_IDESCSI) [N/y/?]



CMD640 chipset bugfix/support (CONFIG_BLK_DEV_CMD640) [Y/n/?] N



RZ1000 chipset bugfix/support (CONFIG_BLK_DEV_RZ1000) [Y/n/?] N



Generic PCI IDE chipset support (CONFIG_BLK_DEV_IDEPCI) [Y/n/?]



Generic PCI bus-master DMA support (CONFIG_BLK_DEV_IDEDMA) [Y/n/?]



Boot off-board chipsets first support (CONFIG_BLK_DEV_OFFBOARD) [N/y/?]



Use DMA by default when available (CONFIG_IDEDMA_AUTO) [Y/n/?]



Other IDE chipset support (CONFIG_IDE_CHIPSETS) [N/y/?]



Loopback device support (CONFIG_BLK_DEV_LOOP) [N/y/?]



Network block device support (CONFIG_BLK_DEV_NBD) [N/y/?]



Multiple devices driver support (CONFIG_BLK_DEV_MD) [N/y/?]



RAM disk support (CONFIG_BLK_DEV_RAM) [N/y/?]



XT hard disk support (CONFIG_BLK_DEV_XD) [N/y/?]



Mylex DAC960/DAC1100 PCI RAID Controller support (CONFIG_BLK_DEV_DAC960) [N/y/?] (NEW)



Parallel port IDE device support (CONFIG_PARIDE) [N/y/?]



Compaq SMART2 support (CONFIG_BLK_CPQ_DA) [N/y/?] (NEW)



Networking options



Packet socket (CONFIG_PACKET) [Y/n/?]



Kernel/User netlink socket (CONFIG_NETLINK) [N/y/?]



Network firewalls (CONFIG_FIREWALL) [N/y/?] Y



Socket Filtering (CONFIG_FILTER) [N/y/?]



Unix domain sockets (CONFIG_UNIX) [Y/n/?]



TCP/IP networking (CONFIG_INET) [Y/n/?]



IP: multicasting (CONFIG_IP_MULTICAST) [N/y/?]



IP: advanced router (CONFIG_IP_ADVANCED_ROUTER) [N/y/?]



IP: kernel level autoconfiguration (CONFIG_IP_PNP) [N/y/?]



IP: firewalling (CONFIG_IP_FIREWALL) [N/y/?] (NEW) Y



IP: transparent proxy support (CONFIG_IP_TRANSPARENT_PROXY) [N/y/?] (NEW)



IP: masquerading (CONFIG_IP_MASQUERADE) [N/y/?] (NEW)



IP: optimize as router not host (CONFIG_IP_ROUTER) [N/y/?]



IP: tunneling (CONFIG_NET_IPIP) [N/y/?]



IP: GRE tunnels over IP (CONFIG_NET_IPGRE) [N/y/?]



IP: aliasing support (CONFIG_IP_ALIAS) [N/y/?]



IP: TCP syncookie support (not enabled per default) (CONFIG_SYN_COOKIES) [N/y/?] Y



IP: Reverse ARP (CONFIG_INET_RARP) [N/y/?]



IP: Allow large windows (not recommended if <16Mb of memory) (CONFIG_SKB_LARGE) [Y/n/?]



The IPX protocol (CONFIG_IPX) [N/y/?]



Appletalk DDP (CONFIG_ATALK) [N/y/?]



Telephony support



Linux telephony support (CONFIG_PHONE) [N/y/?] (NEW)



SCSI support



SCSI support (CONFIG_SCSI) [Y/n/?]



SCSI disk support (CONFIG_BLK_DEV_SD) [Y/n/?]



SCSI tape support (CONFIG_CHR_DEV_ST) [N/y/?]



SCSI CD-ROM support (CONFIG_BLK_DEV_SR) [N/y/?]



SCSI generic support (CONFIG_CHR_DEV_SG) [N/y/?]



Probe all LUNs on each SCSI device (CONFIG_SCSI_MULTI_LUN) [Y/n/?] N



Verbose SCSI error reporting (kernel size +=12K) (CONFIG_SCSI_CONSTANTS) [Y/n/?] N



SCSI logging facility (CONFIG_SCSI_LOGGING) [N/y/?]



SCSI low-level drivers



7000FASST SCSI support (CONFIG_SCSI_7000FASST) [N/y/?]



ACARD SCSI support (CONFIG_SCSI_ACARD) [N/y/?]



Adaptec AHA152X/2825 support (CONFIG_SCSI_AHA152X) [N/y/?]



Adaptec AHA1542 support (CONFIG_SCSI_AHA1542) [N/y/?]



Adaptec AHA1740 support (CONFIG_SCSI_AHA1740) [N/y/?]



Adaptec AIC7xxx support (CONFIG_SCSI_AIC7XXX) [N/y/?] Y



Enable Tagged Command Queueing (TCQ) by default [N/y/?] (NEW) Y



Maximum number of TCQ commands per device (CONFIG_AIC7XXX_CMDS_PER_DEVICE) [8] (NEW)



Collect statistics to report in /proc (CONFIG_AIC7XXX_PROC_STATS) [N/y/?] (NEW)



Delay in seconds after SCSI bus reset (CONFIG_AIC7XXX_RESET_DELAY) [5] (NEW)



IBM ServeRAID support (CONFIG_SCSI_IPS) [N/y/?] (NEW)



AdvanSys SCSI support (CONFIG_SCSI_ADVANSYS) [N/y/?]



Always IN2000 SCSI support (CONFIG_SCSI_IN2000) [N/y/?]



AM53/79C974 PCI SCSI support (CONFIG_SCSI_AM53C974) [N/y/?]



AMI MegaRAID support (CONFIG_SCSI_MEGARAID) [N/y/?]



BusLogic SCSI support (CONFIG_SCSI_BUSLOGIC) [N/y/?]



DTC3180/3280 SCSI support (CONFIG_SCSI_DTC3280) [N/y/?]



EATA ISA/EISA/PCI (DPT and generic EATA/DMA) support (CONFIG_SCSI_EATA) [N/y/?]



EATA-DMA [Obsolete] (DPT, NEC, AT&T, SNI, AST, Olivetti, Alphatronix) support



(CONFIG_SCSI_EATA_DMA) [N/y/?]



EATA-PIO (old DPT PM2001, PM2012A) support (CONFIG_SCSI_EATA_PIO) [N/y/?]



Future Domain 16xx SCSI/AHA-2920A support (CONFIG_SCSI_FUTURE_DOMAIN) [N/y/?]



GDT SCSI Disk Array Controller support (CONFIG_SCSI_GDTH) [N/y/?]



Generic NCR5380/53c400 SCSI support (CONFIG_SCSI_GENERIC_NCR5380) [N/y/?]



Initio 9100U(W) support (CONFIG_SCSI_INITIO) [N/y/?]



Initio INI-A100U2W support (CONFIG_SCSI_INIA100) [N/y/?]



NCR53c406a SCSI support (CONFIG_SCSI_NCR53C406A) [N/y/?]



symbios 53c416 SCSI support (CONFIG_SCSI_SYM53C416) [N/y/?]



Simple 53c710 SCSI support (Compaq, NCR machines) (CONFIG_SCSI_SIM710) [N/y/?] (NEW)



NCR53c7,8xx SCSI support (CONFIG_SCSI_NCR53C7xx) [N/y/?]



NCR53C8XX SCSI support (CONFIG_SCSI_NCR53C8XX) [N/y/?]



SYM53C8XX SCSI support (CONFIG_SCSI_SYM53C8XX) [Y/n/?] N



PAS16 SCSI support (CONFIG_SCSI_PAS16) [N/y/?]



PCI2000 support (CONFIG_SCSI_PCI2000) [N/y/?]



PCI2220i support (CONFIG_SCSI_PCI2220I) [N/y/?]



PSI240i support (CONFIG_SCSI_PSI240I) [N/y/?]



Qlogic FAS SCSI support (CONFIG_SCSI_QLOGIC_FAS) [N/y/?]



Qlogic ISP SCSI support (CONFIG_SCSI_QLOGIC_ISP) [N/y/?]



Qlogic ISP FC SCSI support (CONFIG_SCSI_QLOGIC_FC) [N/y/?]



Seagate ST-02 and Future Domain TMC-8xx SCSI support (CONFIG_SCSI_SEAGATE) [N/y/?]



Tekram DC390(T) and Am53/79C974 SCSI support (CONFIG_SCSI_DC390T) [N/y/?]



Trantor T128/T128F/T228 SCSI support (CONFIG_SCSI_T128) [N/y/?]



UltraStor 14F/34F support (CONFIG_SCSI_U14_34F) [N/y/?]



UltraStor SCSI support (CONFIG_SCSI_ULTRASTOR) [N/y/?]



Network device support



Network device support (CONFIG_NETDEVICES) [Y/n/?]



ARCnet devices



ARCnet support (CONFIG_ARCNET) [N/y/?]



Dummy net driver support (CONFIG_DUMMY) [Y/n/?]



EQL (serial line load balancing) support (CONFIG_EQUALIZER) [N/y/?]



General Instruments Surfboard 1000 (CONFIG_NET_SB1000) [N/y/?] (NEW)



Ethernet (10 or 100Mbit)



Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET) [Y/n/?]



3COM cards (CONFIG_NET_VENDOR_3COM) [N/y/?]



AMD LANCE and PCnet (AT1500 and NE2100) support (CONFIG_LANCE) [N/y/?]



Western Digital/SMC cards (CONFIG_NET_VENDOR_SMC) [N/y/?]



Racal-Interlan (Micom) NI cards (CONFIG_NET_VENDOR_RACAL) [N/y/?]



Other ISA cards (CONFIG_NET_ISA) [N/y/?]



EISA, VLB, PCI and on board controllers (CONFIG_NET_EISA) [Y/n/?]



AMD PCnet32 (VLB and PCI) support (CONFIG_PCNET32) [N/y/?]



Apricot Xen-II on board Ethernet (CONFIG_APRICOT) [N/y/?]



CS89x0 support (CONFIG_CS89x0) [N/y/?]



DM9102 PCI Fast Ethernet Adapter support (EXPERIMENTAL) (CONFIG_DM9102) [N/y/?] (NEW)



Generic DECchip & DIGITAL EtherWORKS PCI/EISA (CONFIG_DE4X5) [N/y/?]



DECchip Tulip (dc21x4x) PCI support (CONFIG_DEC_ELCP) [N/y/?]



Old DECchip Tulip (dc21x4x) PCI support (CONFIG_DEC_ELCP_OLD) [N/y/?] (NEW)



Digi Intl. RightSwitch SE-X support (CONFIG_DGRS) [N/y/?]



EtherExpressPro/100 support (CONFIG_EEXPRESS_PRO100) [Y/n/?]



PCI NE2000 support (CONFIG_NE2K_PCI) [N/y/?]



TI ThunderLAN support (CONFIG_TLAN) [N/y/?]



VIA Rhine support (CONFIG_VIA_RHINE) [N/y/?]



SiS 900/7016 PCI Fast Ethernet Adapter support (CONFIG_SIS900) [N/y/?] (NEW)



Pocket and portable adaptors (CONFIG_NET_POCKET) [N/y/?]



Ethernet (1000 Mbit)



SysKonnect SK-98xx support (CONFIG_SK98LIN) [N/y/?] (NEW)



FDDI driver support (CONFIG_FDDI) [N/y/?]



PPP (point-to-point) support (CONFIG_PPP) [N/y/?]



SLIP (serial line) support (CONFIG_SLIP) [N/y/?]



Wireless LAN (non-hamradio) (CONFIG_NET_RADIO) [N/y/?]



Token ring devices



Token Ring driver support (CONFIG_TR) [N/y/?]



Fibre Channel driver support (CONFIG_NET_FC) [N/y/?] (NEW)



Wan interfaces



MultiGate (COMX) synchronous serial boards support (CONFIG_COMX) [N/y/?] (NEW)



Frame relay DLCI support (CONFIG_DLCI) [N/y/?]



WAN drivers (CONFIG_WAN_DRIVERS) [N/y/?]



SBNI12-xx support (CONFIG_SBNI) [N/y/?] (NEW)



Amateur Radio support



Amateur Radio support (CONFIG_HAMRADIO) [N/y/?]



IrDA subsystem support



IrDA subsystem support (CONFIG_IRDA) [N/y/?]



ISDN subsystem



ISDN support (CONFIG_ISDN) [N/y/?]



Old CD-ROM drivers (not SCSI, not IDE)



Support non-SCSI/IDE/ATAPI CDROM drives (CONFIG_CD_NO_IDESCSI) [N/y/?]



Character devices



Virtual terminal (CONFIG_VT) [Y/n/?]



Support for console on virtual terminal (CONFIG_VT_CONSOLE) [Y/n/?]



Standard/generic (dumb) serial support (CONFIG_SERIAL) [Y/n/?]



Support for console on serial port (CONFIG_SERIAL_CONSOLE) [N/y/?]



Extended dumb serial driver options (CONFIG_SERIAL_EXTENDED) [N/y/?]



Non-standard serial port support (CONFIG_SERIAL_NONSTANDARD) [N/y/?]



Unix98 PTY support (CONFIG_UNIX98_PTYS) [Y/n/?]



Maximum number of Unix98 PTYs in use (0-2048) (CONFIG_UNIX98_PTY_COUNT) [256] 128



Mouse Support (not serial mice) (CONFIG_MOUSE) [Y/n/?]



Mice



ATIXL busmouse support (CONFIG_ATIXL_BUSMOUSE) [N/y/?]



Logitech busmouse support (CONFIG_BUSMOUSE) [N/y/?]



Microsoft busmouse support (CONFIG_MS_BUSMOUSE) [N/y/?]



PS/2 mouse (aka "auxiliary device") support (CONFIG_PSMOUSE) [Y/n/?]



C&T 82C710 mouse port support (as on TI Travelmate) (CONFIG_82C710_MOUSE) [Y/n/?] N



PC110 digitizer pad support (CONFIG_PC110_PAD) [N/y/?]



Joystick support



Joystick support (CONFIG_JOYSTICK) [N/y/?]



QIC-02 tape support (CONFIG_QIC02_TAPE) [N/y/?]



Watchdog Timer Support (CONFIG_WATCHDOG) [N/y/?]



/dev/nvram support (CONFIG_NVRAM) [N/y/?]



Enhanced Real Time Clock Support (CONFIG_RTC) [N/y/?]



Video for Linux



Video For Linux (CONFIG_VIDEO_DEV) [N/y/?]



Double Talk PC internal speech card support (CONFIG_DTLK) [N/y/?]



Ftape, the floppy tape device driver



Ftape (QIC-80/Travan) support (CONFIG_FTAPE) [N/y/?]



Filesystems



Quota support (CONFIG_QUOTA) [N/y/?] Y



Kernel automounter support (CONFIG_AUTOFS_FS) [Y/n/?] N



Amiga FFS filesystem support (CONFIG_AFFS_FS) [N/y/?]



Apple Macintosh filesystem support (experimental) (CONFIG_HFS_FS) [N/y/?]



DOS FAT fs support (CONFIG_FAT_FS) [N/y/?]



ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS) [Y/n/?]



Microsoft Joliet CDROM extensions (CONFIG_JOLIET) [N/y/?]



Minix fs support (CONFIG_MINIX_FS) [N/y/?]



NTFS filesystem support (read only) (CONFIG_NTFS_FS) [N/y/?]



OS/2 HPFS filesystem support (read only) (CONFIG_HPFS_FS) [N/y/?]



/proc filesystem support (CONFIG_PROC_FS) [Y/n/?]



/dev/pts filesystem for Unix98 PTYs (CONFIG_DEVPTS_FS) [Y/n/?]



ROM filesystem support (CONFIG_ROMFS_FS) [N/y/?]



Second extended fs support (CONFIG_EXT2_FS) [Y/n/?]



System V and Coherent filesystem support (CONFIG_SYSV_FS) [N/y/?]



UFS filesystem support (CONFIG_UFS_FS) [N/y/?]



Network File Systems



Coda filesystem support (advanced network fs) (CONFIG_CODA_FS) [N/y/?]



NFS filesystem support (CONFIG_NFS_FS) [Y/n/?] N



SMB filesystem support (to mount WfW shares etc.) (CONFIG_SMB_FS) [N/y/?]



NCP filesystem support (to mount NetWare volumes) (CONFIG_NCP_FS) [N/y/?]



Partition Types



BSD disklabel (BSD partition tables) support (CONFIG_BSD_DISKLABEL) [N/y/?]



Macintosh partition map support (CONFIG_MAC_PARTITION) [N/y/?]



SMD disklabel (Sun partition tables) support (CONFIG_SMD_DISKLABEL) [N/y/?]



Solaris (x86) partition table support (CONFIG_SOLARIS_X86_PARTITION) [N/y/?]



Console drivers



VGA text console (CONFIG_VGA_CONSOLE) [Y/n/?]



Video mode selection support (CONFIG_VIDEO_SELECT) [N/y/?]



Sound



Sound card support (CONFIG_SOUND) [N/y/?]



(Security options will appear only if you are patched your kernel with the Openwall Project patch).



Security options



Non-executable user stack area (CONFIG_SECURE_STACK) [Y]



Autodetect and emulate GCC trampolines (CONFIG_SECURE_STACK_SMART) [Y]



Restricted links in /tmp (CONFIG_SECURE_LINK) [Y]



Restricted FIFOs in /tmp (CONFIG_SECURE_FIFO) [Y]



Restricted /proc (CONFIG_SECURE_PROC) [N] Y



Special handling of fd 0, 1, and 2 (CONFIG_SECURE_FD_0_1_2) [Y]



Enforce RLIMIT_NPROC on execve(2) (CONFIG_SECURE_RLIMIT_NPROC) [Y]



Destroy shared memory segments not in use (CONFIG_SECURE_SHM) [N] Y



 



 



4.3 Instalasi Kernel



 



Seteleh mengkonfigurasi kernel kita dengan pilihan-pilihan di atas, langkah selanjutnya adalah instalasi kernel yang baru. Masuklah ke direktori /usr/src/linux  lalu jalankan perintah :



# make dep; make clean; make bzImage



Perintah make dep akan memproses konfigurasi dan menetukan mana yang dikompile dan tidak dikompile. Perintah make clean akan menghapus sisa-sisa kompilasi sebelumnya dan terakhir make bzImage akam melakukan kompilasi penuh pada kernel kita. Selanjutnya kita harus melakukan kompilasi modul jika memilih yes pada option “Enable loadable module support (CONFIG_MODULES)” saat konfigurasi di atas :



# make modules



# make modules_install



Kernel biasanya berada di direktori /boot dengan nama awalan vmlinuz. Copykan file-file berikut ini untuk booting :



# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.16-new



# cp /usr/src/linux/System.map /boot/System.map.2.2.16



Masuklah ke direktori /boot dan buatlah links untuk vmlinuz dan System.map sbb:



# cd /boot



# ln –fs System.map.2.2.16 System.map



# ln –fs vmlinuz-2.2.16-new vmlinuz



Tanpa links di atas, program LILO akan mencari secara default kernel yang lama.



Kemudian (di direktori /boot) hapuslah file berikut ini :



# cd /boot



# rm –f module-info



Sebagai tambahan, ada beberapa perintah dan file yang berhubungan dengan modul, diantaranya:



# lsmod (menampilkan daftar modul)



# insmod (menyisipkan modul)



# rmmod (menghapus modul)



File /etc/conf.modules adalah file untuk meload kernel modules, manualnya bisa dilihat dengan perintah :



# man conf.modules



Agar modul dapat diload secara otomatis maka harus diletakkan perintah untuk meload modul tersebut yaitu pada file /etc/rc.d/rc.sysinit. Kemudian edit file /etc/lilo.conf dan tambahkan baris berikut ini :



# pico /etc/lilo.conf



 



image=/boot/vmlinuz-2.2.16-new



              label=linux-up



              read-only



              root=/dev/hda9



Restart lilo dan reboot sistem dengan perintah :



# /sbin/lilo –v



# reboot



Setelah direboot, dan masuk ke menu pilihan booting isilah dengan option “linux-up” agar sistem masuk ke kernel yang baru.



Instalasi dan kompilasi kernel dapat juga dilakukan dari paket RPM. Release RPM yang ada dapat dilihat dan didownload di http://www.rpmfind.net.

Tidak ada komentar:

Posting Komentar