Serial Console Linux

Di kamar saya ada PC server milik rekan saya yang belum selesai diutak-atik. Sayangnya tidak ada monitor yang bisa dipakai. Biasanya saya mengakses PC server tersebut lewat network dengan koneksi SSH. Oh ya PC server ini berisikan Red Hat Linux Enterprise 5.1. Tanpa monitor saya tidak bisa melihat tampilan yang keluar saat proses booting maupun proses shutdown berlangsung. Iseng saya ingin mencoba menampilkan output-nya melalui port serial. Inginnya console yang biasanya ditampilkan ke monitor saya arahkan ke serial port, mirip-mirip yang biasa dipakai di server-server beneran 😀 . Mencari tahu di Google saya menemukan referensi yang tepat di sini :

http://www.vanemery.com/Linux/Serial/serial-console.html

Segera saja saya coba mengarahkan console-nya Red Hat ke port serial. Dari serial port PC tadi saya sambungkan dengan notebook menggunakan kabel serial (kali ini saya pakai kabel rollover-nya Cisco), seperti in fotonya :

Langkah-langkah yang harus saya jalankan sesuai tutorial yang ada di web tersebut adalah sebagai berikut :

1. Mengidentifikasi port serial yang ada pada motherboard dengan perintah seperti berikut ini :

[root@aptserver ~]# dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
0000:00:09.0: ttyS1 at I/O 0xc008 (irq = 5) is a 16450
0000:00:09.0: ttyS2 at I/O 0xc010 (irq = 5) is a 8250
0000:00:09.0: ttyS3 at I/O 0xc018 (irq = 5) is a 16450

2. Mengaktifkan port serial supaya bisa dikenali oleh sistem operasi :

[root@aptserver ~]# setserial -g /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

3. Memodifikasi file /etc/inittab supaya memperbolehkan user untuk login lewat console :

[root@aptserver ~]# cp /etc/inittab /etc/inittab.orig
[root@aptserver ~]# vi /etc/inittab
#tambahkan baris berikut ini di dalam /etc/inittab
s0:2345:respawn:/sbin/agetty -L -f /etc/issueserial 9600 ttyS0 vt100
[root@aptserver ~]# init q
[root@aptserver ~]# pkill agetty

4. Memodifikasi /etc/securetty supaya root bisa login lewat console :

[root@aptserver ~]# echo "ttyS0" >> /etc/securetty

5. Mengatur GRUB supaya menampilkan console tidak lagi ke monitor tapi ke port serial (tambahkan opsi console=ttyS0,9600):

[root@aptserver ~]# cp /boot/grub/grub.conf /boot/grub/grub.conf.orig
[root@aptserver ~]# vi /boot/grub/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-53.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet acpi=off apm=on apm=power-off console=ttyS0,9600
initrd /boot/initrd-2.6.18-53.el5.img
[root@aptserver ~]#

6. Mematikan aplikasi kudzu supaya tidak memeriksa perubahan default console dari VGA ke port serial :

[root@aptserver ~]# chkconfig kudzu off

7. Reboot PC :

[root@aptserver ~]# shutdown -h now

Kira-kira seperti itu langkah-langkah konfigurasinya. Setelah reboot, PC akan menampilkan console-nya melalui port serial. Untuk mengaksesnya saya bisa menggunakan aplikasi Hyperterminal (kalau notebook saya menggunakan Windows). Dalam hal ini notebook saya berisi Ubuntu, sehingga saya harus memilih aplikasi yang bisa mengakses terminal serial. Yang umum dipakai orang adalah aplikasi  minicom tapi saya menemukan aplikasi lain yang mirip, namanya cu. Aplikasi ini tersedia di kumpulan DVD repositori Ubuntu 8.10, saya tinggal menginstalnya dengan perintah :

tedy@tedy-laptop:~$ sudo apt-get install cu

Untuk menggunakan aplikasi  cu format perintahnya seperti berikut ini :

tedy@tedy-laptop:/media/disk-1$ cu -l (serial_port) -s (baud_rate)

Karena notebook saya tidak memiliki port serial, maka saya menggunakan USB to serial adapter untuk menghubungkan kabel serial dari PC ke notebook. Fotonya seperti berikut ini :

Adapter tersebut dikenali oleh Ubuntu sebagai /dev/ttyUSB0 sehingga perintah yang saya pakai untuk mengakses console Red Hat adalah seperti berikut ini :

tedy@tedy-laptop:/media/disk-1$ cu -l /dev/ttyUSB0 -s 9600
Connected.

Red Hat nash version 5.1.19.6 starting
INIT: /etc/inittab[53]: duplicate ID field "s0"
Welcome to Red Hat Enterprise Linux Server
Press 'I' to enter interactive startup.
Setting clock  (utc): Fri Jan 30 09:29:11 WIT 2009 [  OK  ]
Starting udev: [  OK  ]
Loading default keymap (us): [  OK  ]
Setting hostname aptserver:  [  OK  ]
No devices found
Setting up Logical Volume Management:   /dev/cdrom: open failed: No medium found

Lihat pada contoh di atas saya bisa melihat proses booting yang sedang berlangsung di PC tersebut. Berikut screenshot-nya supaya lebih yakin 😀 :

Synaptic & DVD Repo Ubuntu 8.04

Di lingkungan Ubuntu, semua software disimpan dalam repository. Ada repository yang ditaruh dalam server, ada juga yang disebarkan dalam bentuk DVD. Saya kenal dengan yang namanya DVD repository Ubuntu sejak versi 7.04. Dengan menggunakan DVD repository, kita tidak perlu koneksi internet untuk mengakses software dari server repository. Walaupun kita punya akses internet, tentu akan lebih menyenangkan memiliki repository lokal (dalam bentuk DVD) karena proses instalasi akan jauh lebih cepat daripada harus mengakses server repository lewat internet.

Ubuntu Linux punya aplikasi yang namanya Synaptic, Synaptic berfungsi me-manage semua aplikasi (software) yang dapat diinstal ke dalam Ubuntu. Secara default, Syanptic akan mencoba mengakses server-server repository Ubuntu untuk membuat daftar software/aplikasi. Untuk mendaftarkan semua software yang ada di dalam DVD repository kita harus menjalankan perintah berikut ini :

$ sudo apt-cdrom add

Dengan perintah tersebut, Synaptic akan mengenali bahwa DVD yang kita gunakan adalah repository-nya Ubuntu. Perintah tersebut harus kita ulangi untuk semua DVD repository yang kita miliki. Tulisan tentang hal ini sebenarnya sudah pernah saya tulis di sini.

Beberapa hari lalu saya sudah mendapat file image dari DVD repository Ubuntu 8.04 dari teman saya Salman. Semuanya ada 5 iso image saya simpan dalam eksternal harddisk saya. Daripada repot mengkopi semuanya ke dalam kepingan DVD, saya cari cara untuk menggunakan iso image tadi. Googling sebentar saya menemukan caranya, seperti ini :

  1. Buat mount point untuk tiap iso image, misalnya seperti ini :
    tedy@tedy-laptop:/$ sudo mkdir /media/ubuntu1
    tedy@tedy-laptop:/$ sudo mkdir /media/ubuntu2
    tedy@tedy-laptop:/$ sudo mkdir /media/ubuntu3
    tedy@tedy-laptop:/$ sudo mkdir /media/ubuntu4
    tedy@tedy-laptop:/$ sudo mkdir /media/ubuntu5
    
  2. Mount satu persatu iso image ke dalam mount point yang sudah dibuat, seperti ini:
    tedy@tedy-laptop:/media/SENSE/DVD$ sudo mount -o loop ubuntu-8.04-repository-i386-1_contrib.iso /media/ubuntu1
    tedy@tedy-laptop:/media/SENSE/DVD$ sudo mount -o loop ubuntu-8.04-repository-i386-2_contrib.iso /media/ubuntu2
    tedy@tedy-laptop:/media/SENSE/DVD$ sudo mount -o loop ubuntu-8.04-repository-i386-3_contrib.iso /media/ubuntu3
    tedy@tedy-laptop:/media/SENSE/DVD$ sudo mount -o loop ubuntu-8.04-repository-i386-4_contrib.iso /media/ubuntu4
    tedy@tedy-laptop:/media/SENSE/DVD$ sudo mount -o loop ubuntu-8.04-repository-i386-5_contrib.iso /media/ubuntu5
    
    
  3. Jalankan perintah apt-cdrom dengan tambahan opsi supaya Synaptic membaca mount point file iso image tadi, karena secara default Synaptic akan mencoba membaca CDROM (Perintah ini pun saya ulangi untuk semua mount point.) :
    tedy@tedy-laptop:/$ sudo apt-cdrom -d /media/ubuntu1 -m add
    Using CD-ROM mount point /media/ubuntu1/
    Identifying.. [c1d618279cfb4e10ca09f0e1bc5dd8b4-2]
    Scanning disc for index files..
    Found 2 package indexes, 0 source indexes, 0 translation indexes and 0 signatures
    This disc is called:
    'Ubuntu 8.04 _Hardy Heron_ - i386 - DVD Repository - Disc 1 of 5'
    Reading Package Indexes... Done
    Writing new source list
    Source list entries for this disc are:
    deb cdrom:[Ubuntu 8.04 _Hardy Heron_ - i386 - DVD Repository - Disc 1 of 5]/ hardy main restricted
    Repeat this process for the rest of the CDs in your set
    
  4. Edit file /etc/apt/source.list, hapus seluruh isinya (untuk melarang Synaptic mendownload software dari server repository) dan ganti isi file dengan baris perintah berikut :
    deb file:///media/ubuntu1 hardy main restricted
    deb file:///media/ubuntu2 hardy main multiverse universe
    deb file:///media/ubuntu3 hardy universe
    deb file:///media/ubuntu4 hardy universe
    deb file:///media/ubuntu5 hardy universe
    
  5. Yang perlu diperhatikan adalah DVD repository harus dimount secara tepat sesuai isi DVD tersebut. Karena ada 3 macam repository : main restricted, main multiverse, dan universe. Pada contoh di atas, DVD main restricted saya mount ke /media/ubuntu1 , DVD multiverse saya mount ke /media/ubuntu2 , dan 3 DVD universe saya mount berurutan di /media/ubuntu3, /media/ubuntu4, dan /media/ubuntu3 . Lalu bagaimana kita tahu mana iso image yang merupakan main restricted, main multiverse, dan universe….gampang, lihat saja isinya seperti contoh berikut ini :
    tedy@tedy-laptop:/$ ls /media/ubuntu1/dists/hardy/
    main  restricted
    tedy@tedy-laptop:/$ ls /media/ubuntu2/dists/hardy/
    main  multiverse  universe
    tedy@tedy-laptop:/$ ls /media/ubuntu3/dists/hardy/
    universe
    tedy@tedy-laptop:/$ ls /media/ubuntu4/dists/hardy/
    universe
    tedy@tedy-laptop:/$ ls /media/ubuntu5/dists/hardy/
    universe
    
  6. Update Synaptic supaya mengenali semua mount point tadi bilamana nanti akan menginstal software, perintahnya adalah :
    tedy@tedy-laptop:/$ sudo apt-get update

Dengan cara ini saya tidak perlu lagi membakar iso image ke dalam kepingan DVD. Dulu waktu menggunakan Ubuntu 7.04 tiap kali ingin menginstal sesuatu dengan bantuan Synaptic, saya harus bolak-balik mengganti-ganti DVD. Dengan menggunakan iso image, saya tinggal mount saja semua file iso image tadi dari dalam eksternal harddisk ke dalam mount point yang sudah dibuat. Syanptic akan mencari sendiri di dalam DVD yang mana software yang perlu diinstal berada. Tapi resikonya adalah saya buang sekitar 20GB ruang di harddisk eksternal saya untuk menyimpan kelima file iso image repository tadi 🙂

Picasa On Linux

Since I’ve collected many pictures from my camera, I used Picasa for manage them. Usually I using Picasa for Windows on my notebook, because in office I use Windows for work. Beside Microsoft Windows, I also installed Ubuntu Linux on my notebook. Sometimes I prefer to use Ubuntu especially when I using my notebook at home.

When I used Ubuntu, I got stuck to see my pictures collections which lay on Windows partitions. Ubuntu has F-Spot Photo Manager to provide the user a software for managing their photo collections. But I don’t like F-Spot Photo Manager, it doesn’t have good feature and poor of their user interface.

This morning I tried to search whether Google provide Picasa for Linux user. Good for Google that provide us Linux version of Picasa. I just download them from Picasa site. They provide three types of Picasa for Linux : *rpm installer, *deb installer, and *bin installer. Although I use Ubuntu which using Debian based software management, I prefer to get *bin installer. So I download the installer : picasa-2.2.2820-5.i386.bin.

For me, the *bin installer more easy to use. The step for install Picasa are like this :

  1. To have the installer become executable, I change them using chmod command like this :
    root@tedy:/home/tedy# chmod a+x picasa-2.2.2820-5.i386.bin
  2. After that I just run them like run a executable script :
    root@tedy:/home/tedy# ./picasa-2.2.2820-5.i386.bin
  3. When I run them, the installation wizard will pop up, and it’s easy for me to just follow their instructions. Same like Windows installation wizard, just click Next and Next 😀 By default Picasa will put the installation on /opt/picasa.
  4. Yup…installation process completed for very short time. To start Picasa, just type the bin file :
    root@tedy:/usr/bin# /opt/picasa/bin/picasa
    See the Picasa on my Ubuntu Linux; it’s very similar with my Picasa that run on my Windows OS.

picasa on linux


Thanks for Google to care with Linux user like me 🙂

Pasang Server & Storage

Hari Selasa dan Rabu kemarin saya ditugaskan bos memasang Fujitsu Primepower 450 dan Fujitsu Eternus 2000 di kantornya Icon+. Icon+ kantornya terletak di kompleks gardu PLN Gandul. Bener-bener jauh tempatnya….tempat jin buang anak nih =)) . Dari kantor saya di Sudirman, saya butuh waktu hampir 1.5 jam perjalanan. Ini gambar papan nama PLN yang saya ambil saat pulang siang kemarin.

Server Primepower yang saya pasang sudah dipasangi Solaris 9 (pernah saya cerita di sini). Hari Selasa saya mounting 4 server dan 2 Eternus ke dalam rak. Berdua dengan rekan saya, Wira, pekerjaan mounting ini cukup melelahkan…berat euy servernya. Setelah terpasang ke dalam rak, tugas saya berikutnya adalah mengubah ukuran RAID group di dalam Eternus lalu menghubungkannya dengan server. Ini gambar yang saya ambil di salah satu rak :

Karena proses format disknya Eternus butuh waktu berjam-jam, hari Selasa malam saya tinggal pulang saja. Waktu juga sudah jam 8 malam lebih. Rabu pagi saya balik lagi ke PLN Gandul. Tinggal menghubungkan Eternus dengan server supaya server bisa dapat harddisk. Ini sih cepat, mulai kerja jam 11 siang, sebelum jam 1 sudah beres. Pulang deh ke kantor, sebelumnya mampir dulu di mal Cinere makan siang di sana. Belum selesai tugas saya Selasa sore kemarin. Tugas berikutnya adalah pergi ke Toyota, mengganti internal disk yang rusak di server SunFire V890. Di postingan berikutnya saja ceritanya.

Linux Backup Script

Di bawah ini adalah script untuk proses backup sehari-hari server kami di kantor :

script backup

Script di atas dibuat untuk mengotomatisasi proses backup file server yang dipakai oleh kami yang ada di tim UNIX. Server ini sebenarnya PC Fujitsu Deskpower yang dijadikan file server dengan OpenSUSE 10.3 sebagai sistem operasinya. Sebenarnya ada beberapa Fujitsu Primepower server yang bisa dipakai. Cuma entah mengapa bos saya memutuskan untuk menggunakan desktop ini sebagai file server. Dulu saya dan rekan saya, Ramdhan, yang menginstal OpenSUSEnya. Lalu saya yang mengkonfigurasi Samba supaya kami yang sehari-hari menggunakan Windows di notebook bisa dengan mudah mengakses file server tadi.

Setelah file yang ditaruh semakin banyak, jadi timbul kebutuhan untuk mengamankan data-data yang ada. Saya lalu memanfaatkan sebuah Fujitsu Primepower 450 sebagai NFS server untuk menjadi tempat menaruh backup-nya. Supaya gampang saya menggunakan perintah tar untuk melakukan backup. Supaya proses backup-nya otomatis, maka saya buatkan script di atas lalu saya daftarkan di crontab OpenSUSE. Saya jadwalkan proses backup berjalan jam 8 malam. Benar-benar script bodoh-bodohan untuk membuat pekerjaan backup jadi otomatis :)) Script itu saya buat di sela-sela pekerjaan saya yang lain. Lumayan lah, saya puas dengan hasilnya. Puasnya karena saya jadi terpacu untuk belajar bash scripting lagi 😀

Awalnya saya hanya buat script untuk mem-backup saja. Tapi dipikir-pikir bisa penuh lama-lama NFS server-nya. Maka saya tambahkan script untuk membatasi jumlah backup file hanya 3 hari ke belakang saja. Sudah beberapa minggu ini saya pantau terus hasilnya tiap pagi saat datang kantor. Memeriksa apakah backup sudah sukses semalam. Satu bagian yang kurang, membuat script ini mengirimkan email ke saya secara otomatis untuk melaporkan hasil proses backup tiap malam. Ini tentu akan memudahkan saya untuk memantau hasil backup, tinggal lihat email report-nya saja.