Blog Kang One

Catatan Sederhana untuk Berbagi

Mengatasi Masalah Pada Linux

Pendahuluan

Berikut ini adalah hasil terjemahan saya dari salah satu artikel di situs MandrakeUser.org yang judulnya "Emergency Recovery". Jika ada kesalahan dalam hasil penerjemahan ini saya harap dikoreksi dan diinformasikan kepada saya melalui e-mail yang ada pada bagian akhir dari tulisan ini.
System Freeze

Ketika 'freeze', komputer Anda tidak mau merespon terhadap perintah-perintah dan input device seperti keyboard dan mouse tidak bekerja. Ini merupakan hal terburuk dan kemungkinannya adalah masalah serius pada konfigurasi sistem, software atau hardware Anda.

Ketika terjadi freeze, prioritas utama Anda adalah mencoba untuk men-shutdown sistem secara aman (normal). Coba langkah-langkah berikut secara berurutan (anggap Anda berada di X):

1. Coba kill X server dengan menekan ALT-CTRL-BACKSPACE bersamaan.
2. Coba pindah ke konsol lain dengan ALT-CTRL-F2. Jika berhasil, login sebagai 'root' dan lakukan perintah kill -15 $(pidof X) atau kill -9 $(pidof X), jika perintah pertama tidak berhasil (cek dengan top).
3. Jika Anda bagian dari jaringan lokal, coba telnet atau ssh ke komputer lain (ingat Anda tidak bisa telnet sebagai root, jadi login dulu sebagai user biasa).
4. Jika sistem Anda tidak merespon juga, Anda harus mencoba 'SysRq sequence' (System Resque). 'SysRq sequence' membutuhkan penekanan 3 tombol secara bersamaan, tombol ALT kiri, SysRq, dan tombol huruf:
1. 'ALT kiri-SysRq-r' merubah keyboard menjadi mode 'raw'. Sekarang coba tekan tombol ALT-CTRL-BACKSPACE lagi. Jika tidak berhasil, lanjutkan.
2. 'ALT kiri-SysRq-s' menyimpan semua data yang belum tersimpan ke disk (sinkronisasi disk).
3. 'ALT kiri-SysRq-e' mengirim sinyal penghentian untuk semua proses, kecuali untuk init.
4. 'ALT kiri-SysRq-i' mengirim sebuah sinyal kill untuk semua proses, kecuali untuk init.
5. 'ALT kiri-SysRq-u' me-mount ulang semua filesistem yang sebagai read-only.
6. 'ALT kiri-SysRq-b' reboot sistem. Mungkin sama dengan menekan tombol 'reset'.
Ingat bahwa ini merupakan suatu urutan (sequence), sehingga Anda harus menekan satu kombinasi setelah yang lainnya dalam urutan: Raw-Sync-tErm-kIll-Unmount-reBoot (atau dibaca: Raising Skinny Elephants Is Utterly Boring). Untuk lebih jelasnya baca file 'sysrq.txt' dengan perintah less $(locate sysrq.txt).
5. Jika masih belum menolong, tekan tombol 'reset' di casing Anda sambil berdo'a. Jika beruntung, Linux hanya akan menjalankan fsck ketika boot.
Tentu saja mencoba untuk mencari tahu penyebab masalah pada filesistem Anda itu lebih baik, karena cara-cara di atas bisa menyebabkan kerusakan pada sistem. Mungkin Anda harus mencoba ReiserFS, filesistem berjurnal yang disertakan pada Linux Mandrake (LM) mulai versi 7.0, yang menangani kesalahan dengan lebih baik. Tetapi mengganti extfs2 dengan ReiserFS mengharuskan Anda mem-format ulang partisi. ;-( Jika tidak mau memformat ulang, coba saja extfs3, tapi masih dalam tahap pengembangan.

Sistem Hang Ketika Boot
Jika sistem Anda boot dengan baik, tetapi hang ketika 'Rebuilding RPM database' atau 'Finding Module Dependencies', tekan saja CRL-C. Ini akan menghentikan proses tersebut dan melanjutkan proses yang lain.

Lakukan rpm --rebuilddb sebagai root jika hang saat 'Rebuilding RPM database'.
Jika komputer Anda hang ketika 'Finding module dependencies', sepertinya Anda sedang mengupgrade kernel tetapi belum seluruhnya selesai. Periksa apakah file di direktori /boot dan /lib/modules memiliki versi kernel yang sama (biasanya pada akhir dari namafile). Baca dokumentasi tentang Kernel Upgrade untuk lebih lengkap.

Jika proses boot hang ketika
RAMDISK: Compressed image found at block 0
berarti Anda telah merusak image 'initrd'. Coba untuk boot melalui 'lilo.conf' yang telah Anda backup (jika punya) atau coba 'Contoh 1' pada bagian Sistem Tidak Mau Boot Dari Disk Lagi (di bagian bawah) untuk boot sistem darurat dan menghapus/merubah entri initrd di lilo.conf.

Periksa Filesistem Pada Saat Boot Gagal
Jika Anda tidak men-shutdown dengan benar, sistem akan menjalankan sebuah rutin filesystem check ketika boot berikutnya. Tapi kadang-kadang rutin ini akan gagal dan membawa Anda ke konsol. Jika begitu jalankan:

e2fsck -py [device]
device diubah menjadi nama partisi yang gagal di periksa. Parameter -p memberitahu 'e2fsck' untuk melakukan semua perbaikan yang perlu tanpa menanyakannya dulu, sedangkan -y menyetujui semua perubahan yang akan dilakukan e2fsck.

Ketika selesai, tekan CTRL-D untuk keluar dari konsol. Sistem akan restart. Jika masih saja ada masalah yang sama, mungkin ada bad block (bad sector) pada disk Anda. Jalankan:

e2fsck -c [device]
untuk mencari tahu. Perintah ini akan menandai bad block yang ditemui secara otomatis sehingga mencegah sistem untuk menyimpan file pada block tersebut. 'e2fsck' memeriksa filesistem secara otomatis jika:
• filesistem tidak di-unmount pada shutdown sebelumnya
• telah tercapai kondisi 'maximal mount count'
Untuk mempercepat pemeriksaan, gunakan parameter -f.

Boot ke Runlevel Lain
Jika Anda belum begitu mengetahui konsep runlevel, baca dulu artikel sebelumnya yang berjudul Daemon.
Secara default, GNU/Linux boot ke runlevel 3 (consol) atau runlevel 5 (X). Default runlevel ditentukan oleh suatu entry di file '/etc/inittab'.
id:3:initdefault:
untuk boot ke konsol
id:5:initdefault:

untuk boot ke X Window.
Jika Anda ingin boot ke runlevel lain yang tidak dituliskan dalam '/etc/inittab', Anda bisa menentukannya di bootprompt. Pada LiLo (sebelum LM 7.1), ketik linux init 3 untuk boot ke konsol dan linux init 5 untuk boot ke X tanpa memperdulikan entry di file '/etc/inittab'. Dalam GNU GRUB, tekan tombol 'e' dua kali, tambahkan init [angka], tekan ENTER dan tombol 'b' untuk boot.
Sistem Tidak Mau Boot Dari Disk Lagi

Ini terjadi bisa karena MBR telah rusak atau tertimpa, atau konfigurasi yang salah atau masalah lain yang lebih gawat. Pada kasus pertama, Anda hanya membutuhkan disket boot yang menyediakan boot sector yang baik. Disket ini akan boot dengan sistem yang ada pada harddisk. Pada kasus kedua, Anda membutuhkan disket boot yang tidak akan menggunakan sistem pada harddisk. LM 7.1 ke bawah menyediakan image untuk disket 'rescue': ini adalah sistem GNU/Linux dalam satu disket. Anda bisa menggunakan disket ini untuk boot dan melakukan perbaikan yang diperlukan dengan me-mount partisi root yang bersangkutan pada harddisk. Sejak LM 7.1, CD Mandrake pertama berisi rescue system tersendiri. Boot komputer menggunakan CD tersebut dan ketikkan
rescue

pada boot prompt. System rescue ini jauh lebih baik daripada yang dulu dengan disket, tidak ada ruginya kalau dilakukan. Ini menggunakan vi editor dan standard procedure untuk shutdown /rebooting komputer. Kemungkinan lain menggunakan GNU/Linux system yang diinstall dalam windows partisi. (Seperti M$ mempunyai 'Linux for Windows') atau 'Live-Filesystem" yang jalan di CDROM (seperti DemoLinux).

Bagaimana Menggunakan Disket Boot/Disket Rescue
CD Mandrake datang dengan image untuk disket 'rescue' (di direktori 'images'). Anda boot dengan menggunakan disket boot tersebut, ketikkan rescue pada boot prompt dan masukkan disket rescue ketika diminta (image disket 'rescue' tidak bootable). Biasanya Anda harus membuat sebuah boot floppy ketika instalasi. Jika tidak, Anda bisa membuatnya dengan:

mkbootdisk $(uname -r)

Catatan: cek dulu apakah disket Anda benar-benar bekerja!!! Kadang-kadang sangan menjengkelkan ketika muncul pesan:
Loading linux........
error 0x10
ketika boot dari disket yang ada bad block-nya ;) Ini merupakan CRC error ('media failure'). mkbootdisk tidak memeriksa disket boot yang sedang dibuat, Anda harus memeriksanya sendiri! Tetapi, ini tidak selalu berarti disket Anda yang rusak. Coba sekali lagi, jika masih sama, coba disket lain.

Jika Anda tidak mendapatkan disket yang baik, Anda bisa menggunakan salah satu image di direktori 'images'. Copy ke disket, boot, kemudian ketik 'rescue' pada prompt pertama dan siapkan disket 'rescue' tersebut.

Kerugiannya: tidak ada keymaps untuk keyboard non-US, hanya ada perintah 'cat' bukannya 'less' atau 'more' untuk menampilkan teks, tidak ada command line history atau command line completion, dsb.

Di sisi lain disket tersebut berisi editor 'pico', bukannya 'vi' (yang lebih sulit buat pemula). Dengan fasilitas yang kurang dari sistem rescue tersebut, mungkin Anda lebih memilih menggunakan disket boot pihak ketiga (atau upgrade ke LM 7.1 atau terbaru ;-)) seperti tomsrtbt atau mulinux (yang bisa menjalankan X pada disket keduanya), tetapi Anda harus yakin bahwa:
1. Apakah sistem-sistem tersebut menggunakan program yang kompatibel dengan sistem kita. 'Tomsrtbt contohnya, datang dengan mount versi lama, yang tidak bisa me-mount partisi extfs2 LM 7.
2. Apakah sistem-sistem tersebut bisa mengenali hardware Anda. Ini sangat penting jika GNU/Linux Anda misalnya menggunakan disk SCSI.
Jadi: cobalah sebelum menggunakannya ;-)
Contoh 1: Memperbaiki MBR Yang Rusak

Anggaplah Anda telah meng-upgrade kernel dan lupa menjalankan lilo. Anda tidak bisa boot GNU/Linux dari disk lagi dan tidak bisa membuat disket floppy. Bagaimana meng-update 'LiLo'?
1. Boot dari emergency disket yang Anda pilih.
2. Mount partisi 'root' GNU/Linux Anda:

mount /dev/[(device name)(nomor partisi root)] -t ext2 /mnt

Jika Anda tidak ingat di partisi mana, jalankan:

fdisk [nama device disk Anda, biasanya /dev/hda] –l

apakah pada partisi pertama atau kedua (jika yang pertama adalah '/boot' dan kapasitasnya sekitar 10MB).
3. Pindah ke direktori yang baru Anda mount: cd /mnt. Jika Anda butuh mount point lain, buat saja dengan perintah mkdir.
4. Ubah 'lilo.conf', jika perlu, gunakan editor pico atau 'vi' (pico /etc/lilo.conf, vi /etc/lilo.conf).
5. Ubah letak 'root' yang tadinya dari disket ke filesistem yang baru Anda buat: chroot /mnt. Ini perlu karena lilo harus mengetahui lokasi direktori root dari filesistem yang akan di boot yaitu direktori yang Anda mount tadi, bukan dari disket!
Anda bisa melewati langkah ini jika Anda hanya meng-edit atau menghapus suatu file (tapi ingat path yang berbeda!).
6. Jalankan /sbin/lilo
7. Tinggalkan mode 'chroot' dengan exit
8. (Optional tetapi lebih aman:) jalankan sync
9. Reboot.
Jika Anda pelupa, cobalah ganti LiLo dengan GNU GRUB yang lebih mudah bagi orang yang pelupa ;-)
Contoh 2: Memperbaiki Super Block Yang Rusak
Super block merupakan block pertama pada setiap partisi extfs2. Berisi data penting mengenai file system seperti ukuran, free space, dsb (mirip File Allocation Table pada partisi FAT). Super block yang rusak menyebabkan partisi tidak bisa di mount. Untungnya extfs2 menyediakan beberapa backup dari super block ini.
1. Boot dari emergency system yang Anda pilih.
2. Super block cadangan biasanya disimpan pada permulaan di setiap 8kb block (8192 bytes). Sehingga backup berikutnya ada pada bye ke 8193.
3. Untuk mengembalikan super block dari cadangannya, jalankan perintah:

e2fsck -b 8193 /dev/[nama partisi yang rusak]

4. Jika block itu juga rusak, coba cadangan berikutnya pada byte ke 16384 dan seterusnya.
5. Reboot
Gagal Login
Sebelum mencoba cara-cara berikut, pastikan dulu bahwa Anda tidak salah ketik: periksa apakah 'capslock' menyala, coba periksa huruf besar-kecil, coba login dengan account atau terminal lain (pindah dengan ALT-F2) dsb.
Gagal login mungkin disebabkan kerusakan file '/etc/passwd', '/etc/shadow' atau '/etc/securetty' atau file permission yang salah. Untungnya ini terjadi setelah instalasi pada sistem-sistem tertentu saja.
1. Untuk masuk ke sistem, reboot dan ketik:

linux init=/bin/sh rw

pada boot prompt LiLo. Jika menggunakan GNU/GRUB, tekan tombol 'e' dua kali dan tambahkan

init=/bin/sh rw

untuk perintah boot dan tekan ENTER dan 'b' untuk boot. Ini akan boot ke sistem minimal (tidak terproteksi) seperti runlevel 1.
2. Setelah masuk ke sistem, ketik

vi /etc/passwd

(Catatan: bisa digunakan editor lain selain 'vi', tergantung sistemnya.)
Lihatlah pada file ini. Seharusnya tidak mengandung baris kosong, komentar atau karakter-karakter non-ASCII. Jika ada, hapus saja (di 'vi' tekan x). Entry untuk 'root' harus SAMA dengan baris berikut:

root:x:0:0:root:/root:/bin/bash

Jika tidak sama, ubahlah (tekan i) dan simpan (ESC, kemudian :wq).
Periksa permission dengan ls -l /etc/passwd, seharusnya -rw-r--r--.
3. Kemudian, jalankan vi /etc/shadow. Format tiap baris dalam '/etc/shadow' adalah:

[accountname]:[password]:[other stuff] e.g.
root:$1$KODLG[etc]:10979:0:99999:7:::

Bagian password tentunya terenkripsi.
Hapus saja bagian password untuk 'root' dengan memindahkan kursor pada karakter pertama dari password (biasanya '$' pertama) dan ketik dw. Sekarang ketik :wq untuk menyimpan file dan keluar.
4. Jika lihat file '/etc/securetty' (more /etc/securetty), yang seharusnya menampilkan:
tty1
tty2
tty3
tty4
tty5
tty6
5. Yang juga harus diperiksa adalah '/var/log/messages', siapa tahu masalah pada sistem ter-log di file, dan juga periksa kepemilikan dan permission (ls -al) dari '/root/.bash_profile', '/root/.bashrc', dan '/etc/gettydefs. Semua file harus milik 'root' dan harus bisa dibaca/ditulisi (-rw-) setidaknya untuk 'root' sendiri.
6. Sekarang jalankan:

sync && mount -o remount,ro /

untuk menulis semua isi buffer ke disk dan me-mount ulang partisi dalam mode read-only. Tekan ALT-CTRL-DEL bersamaan untuk reboot. Pada login berikutnya, ketik 'root' untuk nama account dan tekan saja ENTER pada prompt 'password'. Ketik passwd untuk membuat password baru untuk 'root'.
Ini juga berlaku jika Anda lupa password 'root'...
Mengembalikan File Yang Terhapus
GNU/Linux lebih ketat dalam hal file yang telah dihapus dibandingkan dengan MS-DOS misalnya. Tidak ada utility seperti undelete. Pada artikel Linux Ext2fs Undeletion mini-HOWTO dijelaskan langkah-langkahnya, tetapi membutuhkan kemampuan dan keberanian untuk mengotak-atik (contohnya remount partisi secara read-only). Sayangnya mini-HOWTO masih mengacu pada kernel 2.0.x yang sudah ketinggalan.
Linux Gazzette terbitan lama telah memberikan tips untuk merecover file teks. Filemanager konsol 'Midnight Commander' (mc) memiliki fitur yang mendukung undelete melalui 'undelfs'.
Tapi ada utility recover yang melakukan langkah-langkahnya secara otomatis dan bahkan dengan tampilan grafis, namanya 'gtkrecoer'. Kunci untuk merecover dengan tuntas adalah waktu: sekali GNU/Linux menimpa file yang telah terhapus, tidak ada cara lain untuk mengembalikannya kecuali melalui backup-nya.
Cara yang lebih baik adalah mencegah file yang dihapus dihilangkan langsung dari tempatnya. Lingkungan seperti KDE atau GNOME telah memiliki direktori 'Trash' sendiri, tapi Anda tidak akan menemukannya di konsol atau window manager lain.
Deltree merupakan skrip yang memungkinkan penghapusan file ke 'recycled folder'. Ini memungkinkan recovery dengan mudah. Bahkan mendukung sintaks rm, sehingga Anda bisa menggunakannya sebagai pengganti rm dengan membuatkan sebuah alias.
Selain Deltree adalah rmm ('remove improved'), dowload saja, jadikan executable dengan perintah chmod 755 dan copy ke '/usr/bin' (bukan '/usr/local/bin' sebagaimana yang dikatakan pembuat skrip tsb. '/usr/local/bin' bukan bagian dari $PATH punya 'root'!).
Orang Bijak Berkata: Biasakan Backup Data
Setidaknya backup-lah direktori '/~' dan '/etc' Anda secara rutin, sisanya biasanya ada di CD instalasi Anda. Linux Gazzette memiliki artikel yang cukup baik mengenai topik ini, Backup for the Home Network, lengkap dengan skrip backup yang mudah, yang akan membackup data secara inkremental. Jika Anda memiliki CD Burner, cobalah menggunakan Backup On CD, kumpulan skrip yang akan membuat backup pada CD-R(W). Jika Anda lebih suka dengan yang tampilan grafis, cobalah Linux Backup.

Beberapa prinsip backup:
• Jangan menyimpan backup pada media yang sama dengan sistem. A disk failure is a disk failure is a disk failure ;-) Simpanlah di harddisk lain (jika punya dua), pada media removable (CD) atau pada komputer lain yang satu jaringan dengan komputer Anda.
• Pastikan Anda bisa me-restore kembali. Jika perintah untuk mengembalikan backup pada disk gagal, mungkin membutuhkan sedikit trik ;-). Anda harus memeriksa juga apakah program backup menghasilkan backup yang baik/valid, khususnya ketika meng-kompresinya dengan gzip.
• Back-up secara rutin. Backup yang telah dua bulan lamanya biasanya tidak seberguna backup pada dua hari yang lalu. Gunakanlah program backup yang bisa dijadwal, atau jadikan sebagai job di cron.

Copyright LSTB (Tom Berger) and Mandrakesoft 1999-2001.
Diterjemahkan sekitar bulan September-Desember 2001.
Demikian tulisan terjemahan mengenai mengatasi permasalahan pada sistem operasi linux. Semoga bermanfaat bagi Anda semuanya. Jika ada saran atau komentar bisa dilayangkan ke arioss@softhome.net. Untuk membaca tulisan menarik lainnya silakan menuju ke situs Sony AK Knowledge Center dengan alamat di www.sony-ak.com.
Terimakasih.
Labels: komputer, linux

Thanks for reading Mengatasi Masalah Pada Linux. Please share...!

Back To Top