Hard Disk Baru


Bismillahirrahmanirrahim.

Copyright © 2016 Ade Malsasa Akbar <teknoloid@gmail.com>

Tulisan ini tersedia dalam versi PDF dan ODT.

Alhamdulillah. Pada 19 Maret 2016 saya memperoleh satu buah hard disk drive baru pemberian dari Kang Juang Nakarani. Hard disk ini adalah sebuah hard disk internal laptop, yang diberi enclosure dan kabel USB 3.0, portabel dan siap pakai. Tidak hanya hard disk, Kang Juang juga memberi saya satu keping RAM 2 GB. Semoga pemberian Kang Juang dihitung oleh Allah sebagai amal shalih yang tidak putus pahalanya hingga hari kiamat. Saya mengucapkan jazakallahu khayran.

Tentu saja saya akan menggunakan hard disk ini untuk penelitian yang selama ini saya tidak bisa lakukan. Saya akan menginstal sejumlah distribusi GNU/Linux ke dalam hard disk ini. Saya ingin mempraktikkan begitu banyak teori teknis seputar sistem operasi yang tidak dapat saya praktikkan di sistem yang saya punya sebelumnya. Saya ingin benar-benar melakukan banyak percobaan yang telah lama saya rencanakan. Dan sejak tanggal 20 sampai 21 Maret ini saya telah menginstal 3 sistem GNU/Linux yang berbeda ke dalamnya. Dalam waktu dua hari belajar menginstal, saya memperoleh jawaban atas pertanyaan lama saya: bagaimana menggunakan grub prompt.

Slackware

Sistem operasi yang saya instal paling pertama adalah Slackware®. Rasa ingin tahu saya yang terbesar sejak dahulu saya pertama kenal GNU/Linux, ada pada sistem yang dijuluki sistem operasinya lelaki sejati ini. Tentu, sebagaimana orang awam lainnya, saya mengalami kendala yang banyak ketika menginstal Slackware. Hingga 21 Maret 2016 Slackware 14.1 yang saya instal masih gagal booting dengan kernel panic diduga karena tidak ditemukannya root filesystem. Namun sebagaimana pula orang awam lainnya, dengan menginstal Slackware, saya mendapatkan pengetahuan-pengetahuan fundamental yang penting mengenai sistem operasi yang tidak akan didapatkan di sistem operasi lain. Itulah yang mahal. Di antaranya, seperti yang saya sebutkan, saya sekarang mengerti cara menggunakan grub prompt untuk booting sistem operasi secara manual. Selain itu, sekarang saya mengenal salah satu anggota vital sistem operasi GNU/Linux yang bernama initrd yang tugasnya membantu kernel untuk booting. Kata kunci yang saya peroleh di antaranya alamat partisi, alamat hard disk, alamat vmlinuz, alamat initrd, UUID, generic kernel, lilo, dan beberapa lainnya. Saya juga dengan adanya hard disk ini bisa mempraktikkan langsung perintah chroot yang selama ini saya anggap misteri. Ini pengetahuan yang mahal karena ternyata setiap sistem operasi GNU/Linux bisa di-booting manual dengan grub prompt semata. Setidaknya masih demikian kesimpulan sementara saya. Kendati hari ini belum berhasil menjalankan Slackware, saya sudah senang mendapat pengetahuan penting ini.

gNewSense

Kegagalan menjalankan Slackware sudah saya perkirakan. Di dalam perjalanan, sebetulnya keinginan saya sempat beralih ke menginstal distribusi GNU/Linux yang disetujui sebagai 100% free oleh Free Software Foundation. Di antara mereka sudah saya coba sebelumnya dengan live session, yaitu gNewSense dan Trisquel GNU/Linux. Adapun distribusi yang saya instal adalah gNewSense. Terdapat sejumlah kegagalan instalasi, prainstalasi pun terdapat kegagalan. Singkat cerita, instalasi gNewSense selesai tetapi saya harus booting secara manual sistem operasi tersebut dari grub prompt di dalam hard disk eksternal. Kalau tidak, gNewSense tidak akan menyala. Saya justru senang sekali karena saya bisa berlatih menulis perintah grub untuk booting. Kesan visual paling menarik dari gNewSense adalah ternyata ia menggunakan GNOME 2. Kernelnya saja masih 2.6. Hal ini tentu sangat menarik buat saya yang dahulu menyukai GNOME 2.

Kubuntu

Sampai setelah bisa menjalankan gNewSense dengan booting manual, hard disk eksternal ini masih belum memiliki bootloader yang normal. Hanya di dalamnya terinstal sebuah grub prompt. Sebenarnya saya memiliki beberapa calon sistem operasi seperti openSUSE, Debian, Fedora, dan beberapa lainnya di hard disk internal. Namun kendalanya saya tidak mau mencoba Debian & Fedora, dan untuk openSUSE berkas iso dia perlu perlakuan khusus untuk dibuat live usb. Maka jalan pintas untuk memberikan bootloader yang normal untuk hard disk eksternal ini adalah menginstal Ubuntu. Varian yang saya pilih adalah Kubuntu 15.10, karena akhir-akhir ini saya hanya live session OS satu ini untuk kerja sehari-hari. Saya menginstal Kubuntu pada pagi hari ini. Seperti biasanya, instalasi Ubuntu selalu mudah dilakukan. Begitu pun Kubuntu. Tidak ada halangan apa-apa ketika instalasi berlangsung. Hal yang berkesan di sini adalah saya untuk pertama kali bisa memilih bootloader diinstal di hard disk lain selain sda. Hal ini karena ada hard disk eksternal dari Kang Juang. Akhirnya, hard disk eksternal ini pun memiliki bootloader yang normal. Inti dari pemilihan Kubuntu sebagai sistem operasi ketiga hanyalah memberikan bootloader semata. Dengan harapan Slackware nantinya bisa berjalan normal.

Penyimpanan

Setelah instalasi Kubuntu sukses, saya pun menetap di Kubuntu dahulu sesiang ini (21 Maret 2016). Sebelum beraktivitas, saya ingin tahu apakah dengan bootloader GRUB2, Slackware di /dev/sdb1 bisa berjalan normal. Ternyata tidak. Kernel masih panic. Root filesystem dilaporkan ma­sih tidak juga ditemukan. Akhirnya saya beristirahat sejenak dengan kembali ke Kubuntu. Di sana, saya mengunduh ISO GNU/Linux yang di hard disk internal sudah lama saya hapus. Mereka adalah Mageia dan openSUSE Leap. Bisa ditebak, saya dahulu pernah jadi pengguna Mandriva. Adapun openSUSE saya sudah lama tertarik karena konsistensinya dengan KDE. Ukuran totalnya sekitar 8 GB selesai dalam 2 jam. Ini masih ditambah unduhan Raspbian sebesar 1 GB dan Fedora Workstation ARM 1 GB. Keduanya selesai dalam waktu sekitar 15 menit. Semua itu saya simpan ke hard disk eksternal.

Perintah GRUB

Adapun perintah grub prompt yang saya pelajari pada dasarnya hanya empat jenis:

Perintah pertama:

set root=(hd0,3)

Perintah kedua:

linux /boot/vmlinuz-xyz-xyz root=/dev/sdb3

Perintah ketiga:

initrd /boot/initrd-xyz-xyz

Perintah keempat:

boot

Adapun perintah pertama fungsinya adalah menetapkan environment variable, dalam hal ini partisi root, mengarah kepada alamat hard disk (hd0,3). Makna dari kode ini adalah alamat partisi Kubuntu yakni /dev/sdb3. Adapun partisi Slackware adalah (hd0,1) yang berarti /dev/sdb1 dan partisi gNewSense adalah (hd0,5) yang berarti /dev/sdb5. Semua alamat ini berlaku di mesin saya. Adapun cara melihat daftar alamat atau peta hard disk keseluruhan (baik internal maupun eksternal) adalah dengan perintah ls.

Adapun perintah kedua fungsinya adalah memanggil kernel sistem operasi yang dipilih untuk dipersiapkan booting. Aturannya adalah <nama_kernel> <path_kepada_berkas_kernel> <parameter_istimewa>. Alamat tertera di atas yakni /boot/ memang betul-betul menunjukkan kernel Linux saya ada di dalam direktori /boot di dalam alamat hard disk yang sudah dimasuki sebelumnya (hd0,3). Adapun nama berkas kernel Linux sudah diketahui umum yaitu vmlinuz. Semua OS GNU/Linux kernelnya bernama vmlinuz ini. Tinggal mencarinya di direktori /boot saja. Adapun parameter root=/dev/sdb3 adalah sebuah penanda vital bagi grub supaya setelah menemukan kernel dia menemukan pula root partition dia ada di mana. Jika tidak diberikan, OS akan mengalami kernel panic. Setidaknya itu yang terjadi di mesin saya.

Adapun perintah ketiga adalah memanggil berkas initrd (initial ram disk) di dalam satu partisi root yang sama dengan partisi kernel. Intinya, initrd bertugas membantu kernel untuk booting (seringkali lebih cepat). Adapun posisi berkas initrd ada di direktori /boot, sama dengan kernel vmlinuz. Di Slackware saya, berkas initrd tidak ada, karena harus dibuat dahulu secara manual. Di gNewSense dan Kubuntu ada secara bawaan. Setidaknya ini yang saya dapatkan untuk sekarang. Adapun initrd sendiri masih terlalu banyak fungsinya yang saya tidak pahami untuk saat ini. Hal yang berkesan di sini adalah kini saya mulai memahami baris-baris kode di dalam berkas grub.cfg yang sebelumnya saya cuma baca asal lewat saja.

Adapun perintah keempat bertugas melakukan booting setelah kedua perintah sebelumnya dipanggil. Jadi baik GRUB, GParted, dan Synaptic itu mirip. Mereka bekerja dengan menampung dahulu pilihan pengguna, baru kemudian melaksanakan semua pilihan setelah ditekan tombol Apply. Atau, dalam kasus GRUB, dijalankan perintah boot.

chroot

chroot atau change root atau nama fungsinya chroot() adalah sebuah teknik untuk mengganti direktori root dari proses yang sedang dijalankan. Di dalam implementasinya, di dalam kernel Linux terdapat system call bernama chroot() yang merupakan warisan UNIX®. Di luar kernel, di sistem GNU, terdapat perintah GNU chroot untuk mengakses system call tersebut. Yang saya pergunakan (dan kebanyakan orang pula) adalah program GNU chroot ini.

chroot sangat berguna. Saya menggunakan program chroot untuk “menyusup” dari OS yang sedang saya jalankan ke dalam OS di partisi lain yang sedang tidak berjalan. Mekanismenya secara sederhana, saya jalankan perintah chroot ke arah direktori lokal di OS yang sedang berjalan, yang direktori itu memuat mount dari partisi OS yang sedang tidak berjalan. Jadi seakan-akan saya seperti teknisi yang sedang masuk tubuh robot raksasa untuk memperbaikinya dari dalam. Shell saya (GNU bash) akan masuk ke dalam tubuh OS yang sedang tidak berjalan itu, dan karena itulah saya bisa menjalankan perintah-perintah yang ada di dalam tubuh OS yang sedang tidak berjalan tersebut (bukan perintah dari OS yang sedang berjalan). Apa manfaatnya? Banyak sekali. Di antaranya, untuk menginstal ulang bootloader dari dalam OS, tanpa menjalankan OS yang bersangkutan. Juga, saya mengganti password gNewSense dengan cara chroot ini dari OS Kubuntu saya. Tentu, saya melakukan chroot ke arah partisi lain, ke arah OS yang sedang mati, dari OS yang sedang menyala, dengan Terminal Emulator. Kelihatannya sangat ajaib, misterius, tetapi chroot dan konsekuensinya benar-benar nyata. Adapun perintah chroot saya demikian.

Perintah pertama:

sudo mount /dev/sdb5 /mnt

Perintah kedua:

sudo chroot /mnt

Perintah ketiga:

ls /boot

Semua perintah di atas saya ketikkan di OS Kubuntu yang sedang berjalan. Perintah pertama bertugas me-mounting (melekatkan) partisi gNewSense (yang sedang mati) dari luar OS ke dalam direktori lokal /mnt di Kubuntu saya. Perintah kedua adalah chroot yang sebenarnya, yakni setelah suatu OS sudah di-mount ke suatu direktori, barulah kita “menyusup” ke dalamnya dengan chroot ke direktori tersebut. Pilihan direktori /mnt sifatnya tidak wajib. Sampai sini chroot selesai dan Terminal Emulator saya telah “masuk” ke OS gNewSense yang sedang mati. Perintah ketiga adalah apa pun yang bisa dilakukan, perintah apa pun yang terdapat di dalam OS yang “dimasuki” tersebut, bukan lagi perintah pada OS yang sedang berjalan. Contohnya, perintah ls /boot karena dilakukan di dalam partisi gNewSense, maka output dia adalah berkas-berkas di dalam /boot miliknya gNew­Sense, bukan /boot milik Kubuntu. Maka dari itu, ketika perintah seperti passwd dijalankan, pass­word yang diubah adalah password di gNewSense bukan password di Kubuntu. Karena chroot membuat pengguna bisa “masuk” ke dalam OS lain. Demikian pula melakukan update-grub, melakukan lilo -v, atau perintah apa saja pada masing-masing OS lain dimungkinkan dengan chroot. Kesimpulannya, imajinasi awal saya ketika belum kenal chroot, saya buktikan cocok dengan hasil percobaan ini.

Penutup

Bagian ini hanya penutup tulisan, bukan percobaan saya. Ini masih hari kedua. Sedangkan sisa GNU/Linux yang belum saya pelajari masih banyak. Semoga apa yang saya pelajari dapat saya pergunakan untuk menerjemahkan “bahasa asing” yang bernama GNU/Linux kepada pemula nanti. Jika saya tidak mampu melakukannya sempurna, setidaknya saya berusaha. Terima kasih Kang Juang. Semoga tulisan ini bermanfaat.

9 thoughts on “Hard Disk Baru

      1. f0xy

        [quote]gagal booting dengan kernel panic diduga karena tidak ditemukannya root filesystem[/quote]
        kemungkinan terbesar adalah filesystem pada kernel “generic” dijadikan modules, bukan include dalam kernel.

  1. alunux

    Pada bagian Perintah Grub dan chroot, teks perintahnya tidak kelihatan(berwarna putih), Kang. Saya memakai Firefox versi 45.0.1. Btw, selamat atas hard disk dan ram barunya, Kang.

    Balas
  2. Ping balik: Laptop Baru | Ade Malsasa Akbar

Dilarang menggunakan emotikon

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s