Cara mudah untuk memperbaiki masalah seperti ini adalah sering mem-boot dari sistem langsung, pasang partisi root /mnt
dan kemudian ganti nama file.
Jika Anda tidak memiliki sistem langsung atau sarana untuk membuatnya, atau Anda tidak memiliki akses fisik ke sistem tetapi Anda dapat reboot dan mendapatkan menu GRUB, Anda dapat menggunakan editor GRUB untuk mendapatkan shell root dan mengganti nama berkas.
Nyalakan kembali atau matikan, nyalakan dan, jika Anda biasanya tidak melihat menu GRUB saat boot, tekan Shiftatau Escuntuk menuju ke menu GRUB.
Pindahkan kursor ke Opsi Lanjutan untuk Ubuntu dan tekan enter, lalu tekan euntuk mengedit opsi boot (hanya satu kali - perubahan di sini tidak akan permanen, jadi kami tidak perlu membersihkan setelah itu).
Anda akan melihat layar yang terlihat seperti ini 1 :
Pindahkan kursor ke bawah ke baris yang dimulai dengan linux
dan kemudian pindahkan kursor ke akhir baris itu, atau di mana saja di antara parameter boot kernel di sana. Pastikan Anda berada di jalur yang benar dan ketik dengan hati-hati di sini, karena sistem mungkin gagal untuk boot tanpa ada /etc
di tempat.
Tambahkan teks init=/bin/bash
dan tekan F10untuk boot.
Ini akan memulai sistem dengan Bash shell sebagai init. Anda akan mendapatkan shell root dan sistem file akan dipasang hanya baca. 2 Untuk membuat sistem file dapat ditulisi, masukkan perintah
mount -o remount,rw /
Sekarang Anda dapat mengganti nama /etc
(Anda mungkin ingin ls
terlebih dahulu)
mv /apache2 /etc
Sekarang Anda dapat reboot, atau menyelesaikan boot secara normal dari sini dengan meminta shell root mengganti sendiri dengan sistem init 3 yang normal :
exec systemd
Saya menguji prosedur ini pada Ubuntu MATE 18.04.
1 Terima kasih banyak kepada Kulfy karena memperoleh tangkapan layar berkualitas baik dari editor GRUB dari VirtualBox!
2 Meskipun PATH tidak dapat diatur dari file konfigurasi /etc
dalam skenario ini, Bash akan secara otomatis mengaturnya .
3 Jika exec systemd
tidak berhasil, exec /sbin/init
sebaiknya lakukan triknya. Jika tidak, readlink -e /sbin/init
harus memberikan path ke program init apa pun yang harus dijalankan, yang kemudian Anda dapat exec
dengan path lengkapnya. Jika Anda tidak dapat melanjutkan dengan cara ini, cukup masukkan reboot
.
/mnt
, lakukan penggantian nama, reboot.