Jumat, 23 Desember 2016

Mengatasi “a start job is running for dev-disk-by” Saat Booting OpenSUSE

Ilustrasi: unix.stackexchange.com

Beberapa hari yang lalu saya membangunkan kembali komputer jadul, Pentium dual-core dengan 2GiB memory RAM dan 2x 500GiB hdd, yang telah lama tertidur. Saya mengisinya dengan berbagai distro Linux seperti Slackware 14.2, CentOS 7.2, OpenSUSE 42.2, Debian 8.6.0 dan ClearOS 7.0.


Setelah proses instalasi semua distro selesai, saya melakukan konfigurasi satu-per-satu dan mendapati booting yang sangat lambat pada distro OpenSUSE dan CentOS. Beberapa kali saya melakukan reboot antara dua distro tersebut sampai akhirnya saya tekan tombol [ESC] pada saat boot-screen ditampilkan untuk melihat apa yang sebenarnya terjadi. Dan inilah yang saya dapatkan:

( *** ) A start job is running for dev-disk-by …

Sebuah pesan yang menyatakan jika sistem operasi sedang menyiapkan sesuatu yang sesuatu tersebut diambilnya dari dalam partisi. Namun karena proses seperti ini sangat jarang dan bahkan baru kali saya alami, maka saya menganggapnya sebagai kejadian luar biasa yang perlu diselidiki.

Beberapa lama menunggu, akhirnya sistem operasi siap digunakan. Saya login dan mulai mencari masalahnya dari file fstab (/etc/fstab) kemudian pada file grub.cfg (/boot/grub2/grub.cfg).

Info:
Informasi ini saya ketahui dari beberapa forum

File fstab (/etc/fstab)
File ini berisi informasi partisi yang akan dimuat (mount) saat sistem operasi dijalankan seperti nomor partisi, mount point, format file system, hak akses dan sebagainya.

Disini OpenSUSE menggunakan nilai UUID untuk meng-identifikasi-kan partisi daripada menggunakan nomor partisi. Kemudian saya melakukan pemeriksaan nilai UUID dengan perintah blkid lalu mengganti nilai UUID yang lama dengan yang baru.

linux-7143:~ # blkid /dev/sda1
/dev/sda1: UUID="c10be45c-1363-418a-8bcb-3da6c963ebe4" TYPE="swap" PARTUUID="0005a089-01"
linux-7143:~ # blkid /dev/sda7
/dev/sda7: UUID="e743c506-beb9-4951-b415-6d28e47cfb66" TYPE="xfs" PARTUUID="0005a089-07"
linux-7143:~ #

Namun hasilnya sama saja. Booting masih berjalan cukup lama dengan pesan yang sama (A start job is running for dev-disk-by …). Akhirnya saya mengganti nilai UUID dengan nomor partisi seperti gambar berikut:


Dan masih tetap juga sama.

File grub.cfg (/boot/grub2/grub.cfg)
Kemudia saya beralih ke file grub.cfg (/boot/grub2/grub.cfg). File ini adalah file konfigurasi GRUB(2) bootloader. Disini saya mencari perintah yang digunakan untuk memuat kernel yang terlihat seperti berikut:


Perhatikan pada baris yang di blok dengan warna merah. Baris tersebut adalah perintah yang digunakan untuk memuat kernel beserta parameternya.

Terlihat juga disitu terdapat parameter resume yang lengkapnya tertulis seperti berikut:

 resume=/dev/disk/by-uuid/c10be45c-1363-418a-8bcb-3da6c963ebe4

Parameter resume adalah parameter yang digunakan untuk memuat session terakhir saat fitur suspend dijalankan. Session tersebut diambil dari partisi swap.

Kemudian saya ganti nilai UUID sebelumnya dengan nilai UUID yang baru dari partisi swap saya (/dev/sda1) kemudian restart. Dan, oh,… ternyata berhasil. Kini OpenSUSE yang saya gunakan dapat booting dengan normal kembali.

** Hore

Catatan
Mungkin karena partisi swap saya hanya satu dan proses pemartisian yang terjadi beberapa kali membuat nilai UUIDnya berubah-ubah (selama proses instalasi sampai Linux terakhir terinstall).

Pada file grub.cfg, parameter resume dapat dihapus jika fitur suspend tidak diperlukan.