Ini mungkin pertanyaan duplikat, tapi saya tidak cukup akrab dengan proses login / boot CentOS (terutama pada VM) untuk mengetahui apa yang harus dicari.
Saya menjalankan CentOS 7 di VirtualBox. Saya tidak sengaja menambahkan gnome-terminal
ke akhir ~/.bashrc
file saya . Jadi sekarang jendela terminal muncul ketika saya masuk. Sesi terminal itu dijalankan .bashrc
, yang membuka jendela lain, dll., Dan saya dibanjiri dengan banyak gnome-terminal
jendela terminal.
Saya mencoba masuk ke sesi terminal tanpa login GUI (jadi gnome-terminal
gagal), tapi saya tidak bisa mem-boot tanpa GUI. Saya sudah mencoba menggunakan jawaban untuk pertanyaan ini, tetapi tidak berhasil. Saya mendapatkan login GUI setiap kali: Bagaimana Cara Boot CentOS di CLI? . Apakah ada cara lain untuk mengedit konfigurasi grub saat boot, atau cara untuk mendapatkan instance terminal baru dari login GUI, seperti Ctrl + Alt + F1 di Ubuntu? (Ya, saya mencobanya. Entah itu tidak bekerja di CentOS 7, atau tidak bekerja di VM VirtualBox.) Atau apakah ada cara lain saya bisa mendapatkan sesi terminal tanpa GUI, jadi saya dapat mengedit saya .bashrc
dan memperbaiki kekacauan ini?
sshd
terserah VM itu? Banyak jalan. 1) Mulai sebagai mode Pengguna tunggal (mis. Masuk saat boot, pilih kernel, tekan a, tambahkan satu , masukkan ...) 2) jika dalam sistem VM Anda jalankan sshd Anda dapat mencoba menyalin.bashrc
modifikasi Anda dan menyalin kembali ( scp, sftp rsync ...). 3) Anda dapat login sebagai pengguna lain dan melakukansu -
... 4) dari komputer lain (bahkan virtual) yang dapat Anda lakukanssh user@host mv .bashrc bashrcToModify
kemudian login, modifikasi ... 0) Sebelum semuanyaCTRL ALT F1
berhasil dari VM?.bashrc
. Saya pikir itu dijalankan sekali saat login, tetapi dijalankan setiap kali sesi shell dimulai. Saya ingin jendela terminal muncul setiap kali saya masuk, jadi saya melakukannyaecho 'gnome-terminal' >> ~/.bashrc
. Ide buruk. Saya kira saya harus dimasukkan kegnome-terminal
dalam/etc/init.d
atau di suatu tempat? Saya masih mencoba memahami proses boot.Jawaban:
CtrlAltF1mungkin ditangkap oleh tuan rumah, atau VirtualBox mungkin tidak meneruskannya dengan benar. Beberapa tes cepat memberi tahu saya bahwa Anda dapat menggunakan kunci Host yang ditentukan dalam VirtualBox alih-alih CtrlAlt(bisa menjadi kiri Ctrl, atau kiri ⌘pada Mac). Jadi, menekan ⌘F1beralih ke TTY1 di VirtualBox untuk saya (dan juga untuk ⌘F7kembali ke GUI).
sumber
Anda bisa boot dengan CD Linux langsung dan kemudian me-mount sistem file CentOS, dan mengedit file .bashrc dari sana.
sumber
Init / bin / sh dari konfigurasi grub
Anda dapat mengedit konfigurasi grub Anda untuk memuat shell root alih-alih pergi ke GUI.
e
untuk mengedit. Jika tidak muncul, mulai ulang dan tahan Shift saat bootTemukan baris yang dimulai dengan
linux16
ataulinux
. Milik saya terlihat seperti ini. Milik Anda mungkin sedikit berbedaUbah
ro
torw
( flag hanya baca menjadi readwrite sehingga Anda dapat menulis perubahan) dan tambahkaninit=/bin/sh
ke baris. Ini memberitahu linux untuk menjalankan/bin/sh
alih-alihinit
pada saat startup. Contoh untuk entri sayaTekan Ctrl-X untuk menjalankan konfigurasi. Itu tidak akan disimpan.
Shell root akan muncul. Gunakan untuk mengedit Anda
.bashrc
dan menghapus baris yang menyinggung.Perhatikan bahwa Anda tidak boleh terus menggunakan OS dalam keadaan ini karena shell akan berjalan sebagai PID 1, biasanya disediakan untuk
init
proses. Anda dapat secara manual melanjutkan init denganexec /sbin/init
tetapi saya sarankan hanya me-rebootReboot seperti biasa. Perubahan Anda sebelumnya akan dilupakan.
Kami pada dasarnya mengedit opsi boot yang diteruskan ke Linux dari GRUB, yang memberi tahu Linux untuk me-mount filesystem root baca-tulis dan mulai
/bin/sh
untuk proses initIni berfungsi untuk saya menggunakan Centos 7 dan VirtualBox 4.3.12
sumber
ro
danrw
? Atau lebih baik lagi, apakah ada halaman manual untuk linux16? Apa yang saya lakukan disini?exec /sbin/init
atau apa pun yang sebenarnyainit
. Thero
danrw
pilihan me-mount akar read-only atau read-write. Pada dasarnya Anda sedang mengedit menu GRUB untuk memerintahkannya mem-boot Linux dengan opsi-opsi ini, yang memberi tahu Linux untuk me-mount filesystem root baca-tulis dan mulai sh untuk init.scp salinan diperbaiki
.bashrc
ke tempatnyaJika Anda memiliki mesin lain untuk bekerja, ambil salinan file yang rusak dan perbaiki masalahnya, lalu kembalikan ke tempat asalnya. Ini menghindari masuk dan memohon salah satu perintah login.
Tambahan: Sebagaimana ditunjukkan oleh OP di bawah ini, ini memerlukan akses SSH ke
homehost
. Jika itu bukan suatu pilihan tetapi FTP / SFTP tersedia sebagai gantinya, metode transfer file apa pun akan melakukan apa yang Anda butuhkan, yaitu hanya menginstal file login yang dikoreksi.sumber
sshd
berjalan di atasnya (yang saya tidak yakin CentOS tidak secara default), dan jika jaringan dikonfigurasi dengan benar dengan VirtualBox dan di host dan di VM.