Alkisah, kemarin ketika saya sedang menuangkan ide membandingkan kecepatan HDD, SSD, dan RAM disk ke dalam tulisan untuk blog, shit happens. Sebagai pendukung artikel, saya mengadakan pengukuran kecepatan secara sederhana dengan cara menguraikan (extracting) map
/usr
dari berkas ISO Ubuntu 17.04 ke HDD, SSD, dan RAM disk untuk kemudian dilakukan pengukuran seek time.Secara garis besar berikut urutan pengukurannya:
- Uraikan map usr dari berkas ISO ke HDD, SSD, atau RAM disk
- Pindah ke direktori di mana map usr hasil uraian berada
- Lakukan pengukuran menggunakan perintah berikut
# find usr/ -type f -printf "%s %p\n" | sort -R | awk '{ printf $2; printf "\n" }' > /sort # time cpio -o --quiet -H newc < /sort > /dev/null
- Selesai pengukuran, map
usr
pun dihapus.
/tmp
karena kebetulan ia dikaitkan ke tmpfs
yang adalah RAM disk. Pengukuran berjalan lancar dan dilanjutkan ke pengukuran kecepatan HDD dengan cara mengurai usr ke HDD external. Ini juga berjalan lancar.Yang terakhir, mengukur kecepatan SSD dengan cara mengurai map usr ke
/opt
. Pengukurannya berjalan lancar. But, have I told you that's shit happens? Yeah, the shit happens. Fast. Biang keroknya adalah ketika menghapus map usr saya bukannya menggunakan perintah rm -vr usr
melainkan rm -vr /usr
!.Lihat bagaimana beda
usr
dan /usr
? That's when the real shit happens. In pronto. Alih-alih menghapus map usr yang berada dalam direktori yang sama, saya malah menghapus map
/usr
. Prosesnya berlangsung sangat cepat, as fast as flipping state on SSD....
Shocking.
Keep calm they say.
Setelah termenung berusaha mencerna apa yang sedang terjadi, saya berusaha tetap tenang. Yang pertama terlintas tentu saja apakah data selamat. Sistem boleh raib, tapi data jangan sampai.
Untungnya, sebagai orang Indonesia yang selalu beruntung, tidak ada folder lain yang terkait dengan
/usr
jadi data yang terletak di /home
aman. Anda yang dihapus adalah /media
bisa lain cerita, soalnya HDD external dikaitkan di sana.OK, data aman. Apa langkah selanjutnya? Teringat katanya jika berkas yang dihapus sebenarnya tidak benar-benar dihilangkan dari diska, melainkan hanya diputus "penghubungnya" dan ada kemungkinan akses ke node yang dihapus ini masih ada dalam sistem dan bisa dipulihkan. Sialnya cara tersebut hanya bisa jika kita menghapus suatu berkas sementarea berkas tersebut sedang diubuka oleh suatu aplikasi, sementara isi
/usr
ini hanya biner yang tidak dibuka suatu aplikasi, malah isinya adalah aplikasi yang membuka berkas lain.Thing is getting worse.
Semua aplikasi lenyap. Desktop kosong, bahkan tulisan pun tidak tampak. Tapi Firefox dan Telegram masih bisa terhubung ke internet, mungkin karena cached.
Well, I'm A Linuxer. Tiada GUI bukanlah masalah. Mari kita coba recovery melalui
tty
.Apa yang lebih sial dari sial?
Yes, I can switch to
tty
. Tapi internet kemudian mati, hendak balik ke GUI pun tidak bisa. Yang tersisa hanya bash
dan cp
, mungkin karena mereka terletak di /bin
.Beruntung lagi, HDD external selepas pengujian tidak langsung dicabut, jadi masih bisa diakses. Kebetulan di dalamnya ada backup root system, walau sudah lama tidak synced. Rencananya saya akan salin isi
/usr
backup ke /usr
dan reinstall semua paket.Baiklah kita buat daftar seluruh paket yang terpasang dulu.
sudo dpkg --clear-selections sudo dpkg --get-selections > /installedSalin map
usr
dari backup ke root system (/
):sudo cp -a /media/iza/DATA/backup/sid/usr /usrReinstall paket-paket tersebut:
sudo dpkg --set-selection < /installedOh. My. Fukin. Shit.
Nothing happens. Well, actually, more shit happens.
OK, mari coba cara lain. Gunakan
aptitude
untuk mendaftar seluruh paket yang terpasang.sudo aptitude search -F '%p' '~i ~M' > /installedInstall ulang paket-paket tersebut.
while read IFS= read -r paket; do sudo aptitude reinstall $paket; done < <(echo $(</installed))Selesai reinstall, komputer pun rebooted.
Aaahh... In the name of lord of the shit, sistem macet selepas
GRUB
. Dari log terlihat systemd gagal menjalankan NetworManager dan ModemManager. OK, ga masalah. Mungkin sebaiknya disabled saja dulu, yang penting asal bisa login. Internet bisa menyusul.
Komputer pun rebooted. Sunting entri kernel dengan menambahkan string
single
agar bisa boot ke recovery mode. Setelah masuk recovery mode, NetworkManager dan ModemManager pun dimatikan.systemctl disable NetworkManager.service systemctl disable ModemManager.serviceKomputer rebooted. Nah, sekarang tidak ada error soal network dan modem. Tapi ujung-ujungnya macet juga. Kali ini terlihat soal policy atau apalah. I hate this shit.
Okeeeee.... Kita coba cara lain. Kali ini pindahkan isi root system kecuali
/home
dan salin semua backup untuk kemudian upgraded. Cara ini tidak bisa dari partisi yang sedang dipakai (online), jadi harus dilakukan melalui live environment. No problem. Mari kita boot LiveDVD Ubuntu 17.04 dan jalankan rencana dari sana.Live environment Ubuntu 17.04 is up and running. Saatnya memindahkan isi root partition Sid ke map sementara.
Pertama, pindahkan semua direktori kecuali
/home
ke map sementara. Karena boot ISO dari HDD, saya tidak perlu mengaitkan partisi sistem Sid karena ia telah mounted di direktori /isodevice
live Ubuntu.sudo mkdir /isodevice/OLD sudo rsync -aAXvh /isodevice/{bin,boot,dev,etc,initrd.img,initrd.img.old,lib,lib64,media,mnt,opt,proc,root,run,sbin,srv,sys,tmp,usr,var,vmlinuz,vmlinuz.old} /isodevice/OLD
/home
tidak dipindahkan karena ia berisi banyak data dan "mengkhawatirkan" jika dipindah.Saatnya menyalin isi backup.
sudo rsync -aAXvh --progress --exclude=home /media/ubuntu/DATA/backup/sid /isodeviceOK. Done. Lets reboot.
...
Alhamdulillah. Rejeki jalma sabar dibarung jembar ku panalar, akhirnya bisa login juga.
Demikian saya cukupkan sampai di sini ceritanya. Soal update, upgrade, pengaturan ulang setelan desktop dan lainnya tidak akan saya ceritakan.
Intinya, hati-hati dalam menjalankan perintah sebagai root, jangan lupa backup, backup secara rutin, dan pastikan backup bekerja dengan baik.
Semoga artikel ini ada faedahnya. Maaf jika bahasanya acakadut, maklum masih lelah. Urutan kejadian yang dikisahkan di atas juga hanya ditulis berdasar ingatan, senyatanya lebih repot daripada yang ditulis.
Permiosss...
Struggle is real.
BalasHapusMin, ginian habis berapa gelas kopi? ��
Justru kopinya ga keminum, saking lieurnya 😅
Hapus