Kegagalan booting Ubuntu yang memunculkan emergency mode merupakan indikasi kuat atas terjadinya kesalahan sistem yang siginfikan. Beberapa kondisi yang dapat menyebabkan kesalahan signifikan ini di antaranya yaitu perubahan struktur partisi disk, perubahan pengidetifikasi (idetifier) partisi, data penting sistem yang rusak (corrupted), dsb.
Penyelesaian persoalan kegagalan booting Ubuntu (emergency mode) terbagai ke dalam dua metode berdasarkan situasi yang di hadapi: pertama, jika root password diketahui; kedua, jika root password tidak diketahui. Dalam artikel ini, penyelesaian dilakukan menggunakan metode pertama.
Daftar Isi:
Ada kalanya pembaharuan hardware dilakukan guna mendapatkan sokongan resource yang lebih baik demi menigkatkan kinerja kamputer dalam sisi tertentu. Sebagaimana yang saya lakukan beberapa bulan lalu, menambahkan solite-state drive (SSD) pada komputer (laptop) pribadi yang sebelumnya hanya mengandalakan hard disk drive (HDD) untuk menjalankan dua sistem operasi (dual-boot): Windows 10 dan Ubuntu 22.04.
Persoalan kemudian hadir pasca pembaharuan storage ini. Bahwa upaya cloning atas kedua sistem operasi dari HDD ke SSD nyatanya hanya berhasil dilakukan untuk Windows. Saya pun membiarkan begitu saja persoalan ini karena desakan untuk segera memakai komputer. Alhasil, saya kehilangan akses atas Ubuntu. SSD telah menjadi disk primer, sedangkan HDD digeser menjadi disk sekunder yang terhubung melalui optical slot (dengan bangun caddy case).
Singkat cerita, kemudian saya menemukan cara untuk dapat mengembalikan Ubuntu dalam HDD (yang telah berpindah posisi) seperti sedia kala, bahkan tanpa cloning. Cara ini berawal dari pengetahuan bahwa dual-booting dimungkinkan dalam skema disk terpisah. Jadi, saya hanya perlu mengkofigurasi ulang UEFI untuk menentukan prirotitas boot, kemudian booting Ubuntu. Dan, ya emergency mode menjumpai saya.
1. Munculnya Emergency Mode
Emergency mode adalah suatu mode yang dimasuki Ubuntu ketika mengalami kesalahan sistem yang berkaitan dengan sistem file selama proses booting. Mode ini menyediakan fungsionalitas minimalis yang memungkinkan pengguna melakukan debugging (mendeteksi dan mendiagnosis permasalahan) dan memperbaiki sistem.
2. Pemahaman Permasalahan
Jika root password diketahui, perbaikan sistem dapat dilakukan secara langsung melalui command line pada mode emergency.
1.1 Debugging untuk Mendeteksi Permasalahan
Debugging dalam emergency mode ini dilakukan untuk mencari tahu letak kesalahan yang mengakibatkan kegagalan booting. Informasi atas kesalahan menjadi kebutuhan untuk mendasari upaya perbarbaikan sistem nantinya. Kita dapat memasukan command berikut
$ journalctl -xb
Command `journalctl` memungkinkan pengguna melihat dan mengubah log
(catatan) dari systemd (pengelola inisialisai dan layanan sistem untuk Linux).
Tulisan berwarna merah, “Time out waiting for device /dev/disk/by-uuid/68CA-78AO”, pada tampak log sistem di atas merupakan pesan error yang berkenaan langsung demgam permasalahan utama penyebab kegagalan booting. Pesan error ini dapat diartikan bahwa sebuah disk yang memiliki UUID=68CA-78AO tidak dapat segera terdeteksi sistem sebagaimana mestinya.
Bagai efek domino, tidak
terdeteksinya disk itu dalam suatu langakah inisialisasi tertentu berdampak negatif
terhadap langkah insialisasi lain yang bergantung kepadanya, /boot/efi dan kemudian local file sistem (kesatuan sistem file dasar Linux) pun mengalami kerusakan sebagai konsekuensinya.
Kita cukupkan melihat log sistem, tekan Q untuk keluar dari sana. Untuk dapat mempertegas permasalahan, mari kita beralih ke langkah selanjutnya.
1.2 Periksa Konfigurasi Filesystem Table
Filesystem table (FSTAB) adalah konfigurasi seluruh partisi dasar dalam perangkat penyimpanan yang dibutuhkan untuk menjalankan Ubuntu, file konfigurasi tersebut terletak di /etc/fstab. Lebih jelasnya, coba masukkan dua command berikut. Command `mount -a` untuk mounting (memasang) seluruh partisi dasar yang dimaksud, serta command `cat /etc/fstab` untuk menampilkan isi file konfigurasi FSTAB di atas konsol.
$ mount -a
$ cat /etc/fstab
Command pertama mengembalikan pesan error, "mount: /boot/efi: can't find UUID=68CA-7BAO". Informasi kesalahan ini sesuai dengan bug yang ditemukan dalam log sistem sebelumnya.
1.3 Periksa Struktur dan Identifikasi UUID Setiap Partisi Disk
Masukkan
command berikut untuk mengetahui struktur partisi disk yang tersedia.
$ lablk
Jelas terlihat bahwa tidak ada partisi yang terdeteksi sebagai /boot/efi.
Kemudian masukkan salah satu command berikut untuk menelusuri UUID dari setiap partisi.
$ blkid
$ blkid -o list
Mari kita sedikit perbesar output di atas

UUID dari partisi /dev/sdb1 yang seharusnya menjadi /boot/efi Ubuntu ternyata tidak sesuai dengan konfigurasi FSTAB. Dalam FSTAB, /dev/sdb1 berkofigurasi UUID yaitu 68CA-7BAO. Padahal, /dev/sdb1 memiliki UUID yaitu 14BCCC61BCCCE4F.
1.4 Kesimpulan Permasalahan
Dari sini penyebab kegagalan booting Ubuntu menemui titik terangnya, bahwa terjadi ketidaksesuain antara konfigurasi universal unique identifier (UUID) dari /boot/efi dalam FSTAB dan UUID aktual partisi tersebut. Perbedaan UUID /dev/sdb1 adalah konsekuensi dari diubahnya HDD yang sebelumnya merupakan drive primer kemudian menjadi drive sekunder.
2. Perbaikan Sistem
Apakah solusi dari permasalahan ini adalah memperbaharui FSTAB? Ya, tentu. Apakah pembaharuan yang dimaksud yaitu mengganti konfigurasi UUID /boot/efi dalam FSTAB dengan UUID aktual dari /dev/sdb1? Jawabannya, tidak.
Partisi /dev/sdb1 (dahulu bernama /dev/sda1) memanglah benar merupakan partisi yang dicari sistem Ubuntu saat proses booting (karena di dalamnya menyimpan bootloader) yang ketika itu gagal ditemukan mengakibatkan kegagalan booting. Akan tetapi, partisi ini tidak lagi layak menjadi partisi yang mebangun /boot/efi. Sebab apabila kita teliti kembali konfigurasi FSTAB, di sana /boot/efi diasumsikan bertipe vfat (FAT32), sehingga mebangun kembali /boot/efi di atas /dev/sdb1 yang kini bertipe ntfs adalah tidak tepat.
Lalu apa solusinya? gunakan /dev/sda1 untuk mebangun /boot/efi. Solusi ini didasarkan bukan karena partisi tersebut bernama sama dengan nama sebelumnya dari /dev/sdb1, melainkan karena /dev/sda1 bertipe vfat.
Sebelum mengubah konfigurasi FSTAB, pastikan bahwa UUID dari /dev/sda1, yaitu B460-A28O, telah terdokumentasi (difoto atau dicatat) di luar konsol. Masukkan command berikut untuk membuka FSTAB menggunakan text editor nano.
$ nano /etc/fstab
Gunakan tombol arah untuk menggerakkan kursor ke bagian dari teks yang dituju, lalu hapus UUID untuk /boot/efi dan sebagai gantinya isikan UUID /dev/sda1.Tekan CTRL+X jika sudah.
Tekan Y untuk menyimpan perubahan, kemudian tekan Enter.
Kita dapat memastikan kembali bahwa konfigurasi FSTAB telah sesuai. Masukkan kembali dua command berikut
$ blkid
$ cat /etc/fstab
Terakhir, saatnya me-reboot sistem.
$ systemctl reboot
Namun, apabila ternyata reboot gagal menggunakan command di atas dan menghasilkan output seperti di bawah
$ systemctl --force reboot
Tuggua beberapa saat, jika booting tak tekendala lagi maka lockscreen desktop Ubuntu kemudian akan muncul.