Category: Linux

  • Cara Manual Memperbaiki Grub

    Laptop yang saya gunakan menggunakan dual boot linux dan Windows 10. Nah kemarin saya melakukan upgrade pada sistem linux saya, dan setelah reboot ternyata grubnya bermasalah. Hanya tampilan prompt grub yang tampil di layar.

    Dari pada menggunakan live cd yang harus bikin dulu, dan kebetulan flashdisk saya juga ternyata kemarin linuxnya habis di timpa untuk keperluan lain, akhirnya saya pilih menggunakan cara manual yang lebih sederhana persiapannya.

    Syarat menggunakan cara ini adalah anda harus mengetahui dimana posisi partisi linux anda. Dalam contoh dibawah ini saya akan mengasumsikan bahwa linux saya berada di /dev/sda3 dan posisi /boot ada di root /dev/sda3.

    [box]

    insmod ext2

    set root='(hd0,3)’

    linux /vmlinuz root=/dev/sda3

    initrd /initrd

    boot

    [/box]

    FYI, grub mensupport juga autocomplete, jadi anda bisa tekan tab untuk melengkapi ketikan, misalnya ketika mengetikan linux /vm lalu tekan tab, maka daftar file yang diawali huruf vm akan muncul.

    parameter tambahan untuk bagian “linux /vmlinuz root=/dev/sda3”, bisa menambahkan dengan ro yang artinya partisi akan di mount dalam kondisi read-only. Penulisan lengkapnya menjadi “linux /vmlinuz root=/dev/sda3 ro”.

    Setelah mengetikan boot dan menekan tombol enter, system akan memulai proses booting. Setelah itu saya berhadapan dengan prompt. Kemudian login dan mengetikan “update-grub2“.

    Reboot dan system kembali normal.

    Selamat berjuang!!!

     

  • Linux Yang Mana Yang Cocok Untuk Spek Mesin Saya

    Belakangan sering sekali pertanyaan tentang “Linux yang mana yang cocok untuk spek mesin saya” di sebuah group.

    Saya jadi teringat laptop kesayangan saya dulu yang sudah habis di mutilasi untuk tujuan belajar di akhir masa hidupnya. Laptop yang terkenal dengan nama Farida itu memiliki spek CPU pentium 150 dengan RAM 96MB. Yang masih terus saya pakai walaupun saya sudah memiliki mesin berkelas Pentium 4 dan akhirnya wafat setelah saya memiliki mesin berkelas i7 Gen 2.

    Dengan spek seperti itu mesin ini masih mampu menjalankan Linux hasil kompilasi sendiri berdasarkan ramuan yang serupa dengan Slackware 10  yang tentu saja dipercantik juga dengan desktopnya TAPI tentu saja dengan penuh kesadaran diri.

    Maksud dari “kesadaran diri” ini adalah jelas saya tidak mungkin mengisinya dengan aneka jenis kemeriahan yang sering ditampilkan di desktop, seperti aneka animasi dan segala sesuatunya. Sadar bahwa dengan spek segitu hanya mampu menjalankan aplikasi yang sangat terbatas. Walau openoffice bisa berjalan disitu, tapi tentu saja butuh waktu yang cukup lama untuk tampil. Kesabaran anda akan diuji dengan baik kalau anda ingin menggunakan aplikasi office dan memasang aneka animasi dalam presentasi. Bila anda bisa tetap tersenyum ramah ketika ditampar barulah anda terbukti kalau anda cukup tabah untuk bisa membuat presentasi dengan aneka animasi dalam presentasi anda di mesin ini.

    Jadi untuk mempercantik tampilan saya hanya menggunakan Window Manager yaitu Enlightenment dengan wallpaper pilihan saya dan tanpa menu, jadilah sebuah desktop yang sangat ringan dan pas dengan kebutuhan saya. Karena tanpa menu saya harus hafal semua shortcut yang saya buat dan atau nama aplikasi yang ingin saya panggil untuk dapat mengoperasikannya. Jadi bisa dibilang cuma saya yang bisa mengoperasikannya hehe.

    Browser pun saya menggunakan text based browser seperti links2 atau elinksyang di percantik dengan kemampuan grafis. File manager menggunakan Midnight Commander yang dilengkapi juga dengan mcedit atau Midnight Commander Editor plus build-in Hex viewer dan Hex Editor yang kadang saya pakai.

    Games ? Tentu saja saya bisa main juga di mesin ini. Game sejenis Brick asik kok dimainkan disini.

    Bisa dibilang semua aplikasi saya compile sendiri untuk mencari kondisi yang paling sesuai. Update atau upgrade software perlu pertimbangan masak2x karena spesifikasinya yang terbatas. Mayoritas penggunaan saya di mesin ini adalah menggunakan text based application.

    Kebanyakan penanya yang saya baca menampilkan spek yang jauh lebih dasyat dibandingkan dengan Farida dengan RAM 2GB dan kelas CPU yang kadang sampai i3 atau i5 yang dibandingkan Farida jelas WOW kalah jauh. Untuk kelas seperti ini tentu saja jawabannya Linux  mana saja yang kemudian anda atur agar sesuai dengan kebutuhan anda dan kondisi mesin anda. Buang sebanyak mungkin hal yang memang tidak diperlukan dan hanya memakan resource computer anda.

    Salah satu pemakan resource terbesar adalah Desktop Environment (DE) dengan segala asesorisnya. Lakukan saja research dan coba rasakan dengan berganti2x DE. Dengan mencoba anda akan menemukan yang anda suka dan sesuai dengan environment anda. Dan yang pasti WM lebih ringan dibandingkan DE, jadi coba juga menggunakan WM.

    Ketika anda menyadari betapa banyaknya pilihan untuk mengatur hal seperti ini di Linux sesuai keinginan dan kondisi mesin anda, pertanyaan diatas akan terjawab dengan sendirinya berdasarkan selera anda.

    Kata kunci yang paling penting adalah “sadar diri“.

    Catatan :

    Window Manager adalah managemen window yang mana window disini dapat diartikan sebagai aplikasi yang di tampilkan dilayar.

    Desktop Environment adalah sebuah sebuah environment lengkap sebuah desktop. Dalam Desktop Manager terdapat Window Manager, panel, menu, icon, dll yang kesemuanya terintegrasi.

  • Tunnel Dinamis Dengan SSH

    Belum lama ini saya berdiskusi dengan kawan saya yang kebetulan di terminalnya terpasang sangat banyak ssh tunnel ke banyak mesin yang di kerjakannya.
    Saking banyaknya port yang di mapping sampai-sampai dia membuat table untuk mencari tahu port berapa yang di mapping ke port berapa.

    Teknik yang digunakan oleh kawan saya ini bisa di padankan dengan perintah ssh sebagai berikut

    ssh -f user@jumphost -L 2021:192.168.100.1:22 -N

    Yang artinya, ssh ke jumphost dengan username user, buat port 2021 di localhost yang kalau port 2021 tersebut dipanggil maka akan membuka koneksi ke ip 1982.168.100.1 port 22. Dengan cara ini kawan saya bisa melakukan ssh ke ip 192.168.100.1 pada port standar ssh yaitu port 22 dengan menggunakan perintah

    ssh -p 2021 user@localhost

    Bila perintah pertama dilakukan untuk banyak mesin dengan port berbeda-beda maka hasilnya seperti nampak pada ilustrasi dibawah ini

     

    ssh tunnel ilustration

    Tentu kalau jumlah mesin dan port yang akan di mapping sedikit tidak masalah. Tapi bagaimana kalau jumlahnya mencapai ratusan ?

    Mari kita coba cara yang lebih mudah.

    Saya  memilih menggunakan fitur untuk sock proxy yang tersedia pada ssh

    ssh -D 9054 user@jumphost

    Artinya, ssh ke jumphost dan buat sock proxy di localhost pada port 9054

    Kemudian saya menggunakan ssh dengan bantuan tools nc seperti ini

    ssh -o ProxyCommand=’nc -x localhost:9054 %h %p’ user@192.168.100.1

    Arti perintah diatas adalah ssh yang diantarkan oleh tools nc ke alamat proxy localhost dan port 9054, dengan username user dan ip yang akan di ssh adalah 192.168.100.1. Sedangkan %h berarti host dan %p adalah port (dapat dilihat referensinya pada manual ssh dibagian proxycommand).

    Untuk browser dapat dengan mengaktifkan sock proxy ke localhost port 9054 atau menggunakan command line

    chromium –proxy-server=”socks5://127.0.0.1:9054″

    selanjutnya jelas akan lebih mudah, saya tidak perlu menghafalkan port mana untuk menghubungkan ke mesin mana dan port yang mana.

     

  • [TIPS] Cluster SSH

    Pernah kebayang gak harus nge update banyak mesin sekaligus ?

    Login 1 per 1 lalu jalanin apt-get satu per satu di tiap mesin ? OK kalo mesinnya cuma 2, tapi gimana kalau mesinnya ada 100 ? Apa gak pegel tuh jari.
    Cluster SSH bisa jadi salah satu solusinya.
    https://github.com/duncs/clusterssh
    clusterssh
  • Membuat Dokumentasi Cepat Dengan KeepNote

    Saya seringkali bekerja dengan banyak konsole terminal dan seringkali harus mengambil berbagai bukti atau catatan atas apa yang saya lakukan ataupun data-data keluaran. Untuk itu di linux sudah tersedia sebuah aplikasi untuk melakukan screenshot.

    Tapi menggunakan aplikasi standar artinya saya harus menyimpan 1 per 1 hasil screenshot dalam bentuk file, atau pun bisa juga langsung saya paste kan ke dalam file document yang terdang cukup sulit mengorganisasikannya ketika kita masih dalam proses pengerjaan. Belum lagi bila pekerjaan tersebut mebutuhkan cukup banyak catatan. Mencarinya kembali terkadang membutuhkan waktu sendiri.

    Untuk itu saya biasanya menggunakan sebuah aplikasi khusus untuk mengorganisasikan file-file catatan berikut screenshot yang saya perlukan langsung dari dalam aplikasi dokumentasi tersebut. Nama aplikasi tersebut adalah KeepNote.

    KeepNote adalah sebuah aplikasi dokumentasi yang sederhana dan simple dengan fitur yang cukup lengkap untuk sebuah “text editor” dengan fitur yang sangat sering saya gunakan adalah build-in screenshot dan organisasi judul2x catatan.

     

     

  • [Tips] Rekam Terminal

    konsole-script[Sharing] bagi yang sering bekerja dengan console tentu bisa merasakan bagaimana rasa hati ini ketika harus menyimpan semua atau seluruh proses kerja, baik command yang di issue-kan maupun keluarannya. Belum lagi kalau udah command-nya panjang-panjang dengan parameter menjelimet udah gitu outputnya cakep banget seperti tampilan xml yang ramai sekali.

    cara tradisional, select lalu copy tentu saja adalah hal biasa, memanfaatkan menu select all lalu copy juga sudah biasa.

    tapi bagaimana bila kita menggunakan sebuah utility buatan Joey Hess bernama “script”.

    mau coba yang simple ?

    ketik script lalu enter
    lalu coba ketik2x, ls, ps atau lainnya

    sudah ?

    ketik exit

    sekarang ada sebuah file dengan nama typescript ada di directory dimana menjalankan perintah script tadi.

    sekarang coba liat isi dari file typescript itu

    script bertemen dengan sebuah utility lain bernama scriptreplay. dari namanya sudah jelas kan ?

    dalam ubuntu utility ini ada dalam paket util-linux

    *belum kelar nulis

  • Misteri Free Memory Yang Tersisa

    Beberapa waktu lalu saya berada dalam sebuah pembicaraan tentang grafik memory terpakai dari sevuah mesin yang mendadak melonjak sebanyak 10% dan tidak juga turun. Kemana dan siapa pengguna dari 10% tambahan ini.

    Beginilah ceritanya
    Di mesin linux ketika kita menjalankan perintah free akan didapat beberapa informasi diantaranya memory used, free dan cache.
    Kebanyakan orang hanya memperhatikan bagian free dan used. Padahal free disini bukanlah free sebenarnya bila kita memandang dari sudut aplikasi. Karena free yang sebenarnya adalah menggunakan formula
    Real Free = Free+Cache

    Mengapa demikian, karena cache sebetulnya adalah bagian memory yang diambil oleh system dan dipersiapkan untuk digunakan oleh aplikasi. Baru dipersiapkan dan belum digunakan. Karena begitulah cara system bekerja. Dia aoan mengambil bagian memory untuk dipersiapkan ketika ada permintaan penggunaan memory oleh aplikasi.

    Sehingga jangan takut ketika melihat free memory menciut banyak.

  • Migrasi Server MySQL

    Belum lama ini saya melakukan migrasi database mysql dari 1 mesin ke mesin yang lain yang mana lokasi mesin tersebut berjauhan bahkan sudah beda negara. Migrasi ini dilakukan melalui jaringan internet.

    Karena kondisinya sedang non aktif pekerjaan ini menjadi lebih sederhana. Berikut urutan yang dilakukan.

    Mari kita asumsinya sebagai berikut

    • ip mesin sumber  12.34.56.78 kita sebut sebagai mesin A
    • ip address mesin barunya  87.65.43.21 kita sebut sebagai mesin B
    • Nama database adalah DATAGUA

     

     

    Pastikan mysql di mesin A dapat di buka menggunakan akses internet.

    Pada konfigurasi mysql

    bind-address    = 12.34.56.78

    Lalu buatlah sebuah user yang memberikan ijin user misalnya user “asalnya” boleh mengakses accountnya dari ip tertentu. Kita lakukan query berikut menggunakan mysql shell

    GRANT ALL ON *.* TO asalnya@'87.65.43.21' IDENTIFIED BY 'passwordnya';

    Untuk memberikan akses terbatas dapat mengganti *.* pada perintah mysql dengan database.*

    lalu dari mesin B kita mengakses database  menggunakan mysqldump melalu perintah shell seperti contoh berikut

    mprasodjo@gauli.com:~$ mysqldump -u asalnya -p -h 12.34.56.78 DATAGUA > DATAGUA_dump.sql

    Kemudian kita bisa duduk tenang dulu ngopi ngopi karena berapa lama selesainya mysqldump ini bekerja tergantung pada berapa besar data dan juga seberapa cepat koneksi yang dimiliki ke-2 mesin.

    Setelah selesai mysqldump akan langsung kembali ke prompt.

    Berikutnya yang kita lakukan adalah

    buatlah database terlebih dahulu

    mprasodjo@gauli.com:~$ mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor. Commands end with ; or g.
    Your MySQL connection id is 366
    Server version: 5.5.28-0ubuntu0.12.04.3 (Ubuntu)
    
    Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql>
    mysql>create database DATAGUA;
    
    

    Kemudian dari shell

    mprasodjo@gauli.com:~$ mysql -u root -p DATAGUA < DATAGUA_dump.sql

    Dan datapun telah berpindah dan siap digunakan.

    *nyeruput kopi dulu

     

     

  • Transparent Terminal di Gnome

    Saya suka menggunakan transparent terminal di gnome. Alasannya adalah saya bisa melihat apa yang harus saya ketik kalo perlu mengerjakan sesuatu di terminal sambil nyontek.

    Tapi kadang ketika baru di install, terminal transparent ini tembusnya sampai ke wallpaper sementara yang saya inginkan adalah bisa melihat windows aplikasi di belakangnya.

    Kalau hal itu terjadi, gunakan perintah ini dari terminal untuk mengubahnya agar transparentnya tidak hanya menampilkan wallpaper kita.

    gconftool-2 -s ‘/apps/metacity/general/compositing_manager’ –type bool true

     

  • Freeradius – Memfilter Username dengan Regex

    Freeradius – Memfilter Username dengan Regex

    Kemarin ini saya membutuhkan untuk menggunakan Freeradius dengan kondisi yang khusus. Salah satunya adalah user dengan pola mac address harus di accept walaupun usernya tidak terdapat dalam daftar user.

    Berikut ini konfigurasi yang saya lakukan

    Pada file default section authorize, saya  menambahkan

     

    if (User-Name =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})/i) {
    update control {

    Auth-Type := Accept
    Reply-Message = “Hello MacUser”

    }

    }

    kemudian pada file users, saya tambahkan

    DEFAULT Reply-Message := “Hello MacUser”
    Attribut1 = “%{User-Name}”,
    Attribut2 = “indonesia”

     

    Contoh diatas akan menghasilkan, bila User-Name berbentuk mac address, maka user tersebut di anggap user valid, walaupun user tersebut tidak terdapat dalam daftar user.

    Kemudian penggunaan Reply-Message = “Hello MacUser” saya gunakan untuk membuat handler pada file user bila terdapat Reply-Message seperti itu maka akan dikembalikan attribut-attribut yang terdaftar di dalamnya.