Saya menggunakan Ubuntu 18.04.
Saya mengganti nama /etc
folder menjadi apache2
. Itu adalah kesalahan terbesar saya
Sekarang saya tidak dapat mengganti nama kembali karena saya perlu menggunakan sudo
, tetapi ketika saya mencoba saya mendapatkan kesalahan
sudo: unknown uid 1000
Bagaimana saya bisa memperbaiki masalah ini? Saya tidak memiliki sistem live untuk boot, dan dalam mode pemulihan terminal root terbuka tetapi kemudian ditutup berkata cannot open password database
.
/mnt
, lakukan penggantian nama, reboot.Jawaban:
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
Sekarang Anda dapat mengganti nama
/etc
(Anda mungkin inginls
terlebih dahulu)Sekarang Anda dapat reboot, atau menyelesaikan boot secara normal dari sini dengan meminta shell root mengganti sendiri dengan sistem init 3 yang normal :
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 dapatexec
dengan path lengkapnya. Jika Anda tidak dapat melanjutkan dengan cara ini, cukup masukkanreboot
.sumber
F10
hanya beberapa baris muncul dan berhenti di layar kosong. Bisakah Anda menyarankan sesuatu?Jika Anda memiliki USB langsung, Anda harus bisa boot ke sana dan me-mount sistem file yang ada, kemudian ganti nama Anda
/etc
dari sana. Berikut adalah tutorial tentang cara membuat USB langsung jika Anda membutuhkannya.Setelah boot ke live USB (Jika menggunakan drive Ubuntu 18.04), pilih "Coba Ubuntu tanpa menginstal" dan itu pada dasarnya akan memberi Anda contoh lengkap instalasi Ubuntu yang tidak akan bertahan setelah shutdown. Setelah di-boot, Anda memiliki beberapa opsi:
Command-Line Way
Buka terminal dan jalankan
lsblk
. Cari volume yang akan menjadi drive instalasi asli Anda dan catat nomor mana itu (/ dev / sd #)Kemudian, buat titik mount untuk drive dengan
mkdir -p /mnt/directory
, lalu pasang drive dengansudo mount /dev/sd# /mnt/directory
. Arahkan ke direktori dengancd /mnt/directory
dan Anda seharusnya sekarang berada di direktori root instalasi Anda, tetapi sekarang dengansudo
perintah yang berfungsi . jalankansudo mv apache2 etc
dan reboot ke OS yang berfungsi secara hipotetis.Cara Grafis
Buka utilitas disk dengan mencari Disk. Pilih volume yang terlihat seperti drive instalasi Anda dan pasang itu. Buka file manager dan pilih volume yang terpasang, klik kanan
/apache2
folder Anda dan ganti namanya/etc
, lalu reboot.sumber
sudo nautilus
dari terminal. (Ubuntu menggunakan "nautilus" sebagai manajer file dengan cara yang sama Windows menggunakan "explorer".)sudo -H nautilus
untuk menghindari root menjadi pemilik file konfigurasi$HOME
, berpotensi membuatnya tidak dapat diakses oleh program yang dijalankan sebagai pengguna biasa. Anda mungkin menyadari hal ini, tetapi saya menyebutkan untuk pembaca lain.Jadikan Bootable USB seperti yang ditunjukkan di sini.
Boot dari USB dengan menekan tombol seperti yang ditunjukkan di sini.
Cari tahu partisi sistem file Anda dengan menjalankan
gparted
. Misalkan itu sdxy.Jalankan di terminal
sudo mount /dev/sdxy /mnt
Jalankan di terminal
sudo mv /mnt/apache2 /mnt/etc
Periksa sistem file Anda di / mnt untuk perubahan nama.
Jalankan di terminal
sudo reboot
Saat diminta lepaskan USB dan tekan enter
sumber
mount
programnya sangat ketat dan selalu harus dijalankan sebagai root; satu-satunya pengecualian untuk ini adalah ketika sistem file dalamfstab
dan memilikiuser
opsi. Program iniudisksctl
memungkinkan pengguna normal untuk memasang perangkat, menggunakan misalnyaudisksctl mount -b /dev/sda1
(itu menciptakan titik pemasangan yang cocok di/media/$USER/
). Saya belum mencoba menggunakanudisksctl
dari sistem live, tetapi pada sistem live seseorang selalu merupakan pengguna istimewa yang dapat berjalansudo
tanpa kata sandi sehingga tidak perlu utilitas sepertiudisksctl
yang sebaliknya sangat berguna