Bagaimana cara mem-boot Linux ke mode command-line alih-alih GUI?

26

Saya menggunakan Red Hat Linux 32-bit di VM saya. Saya ingin mem-bootnya ke mode baris perintah, bukan ke mode GUI. Saya tahu bahwa dari sana saya dapat beralih ke mode GUI menggunakan startxperintah. Bagaimana cara saya kembali ke mode baris perintah?

Jangan Khawatir Anak
sumber

Jawaban:

23

Pembaruan: Jawaban di bawah sekarang sudah usang

Untuk banyak distro sekarang, standarnya adalah systemd daripada sysvinit. Jawaban di bawah ini ditulis dengan sysvinit dalam pikiran. Jawaban yang lebih terkini (dan yang harus Anda gunakan jika Anda memiliki systemd sebagai sistem init Anda) adalah jawaban golem .

jawaban sysvinit (usang pada kebanyakan distro terkini):

Anda ingin menjadikan runlevel 3 sebagai runlevel default Anda. Dari terminal, beralih ke root dan lakukan hal berikut:

[user@host]$ su
Password:
[root@host]# cp /etc/inittab /etc/inittab.bak #Make a backup copy of /etc/inittab
[root@host]# sed -i 's/id:5:initdefault:/id:3:initdefault:/' /etc/inittab #Make runlevel 3 your default runlevel

Apa pun setelah (dan termasuk) yang kedua #pada setiap baris adalah komentar untuk Anda, Anda tidak perlu mengetiknya di terminal.

Lihat halaman Wikipedia di runlevel untuk informasi lebih lanjut.

Penjelasan sedperintah

  • The sedperintah editor aliran (maka nama), Anda menggunakannya untuk memanipulasi aliran data, biasanya melalui ekspresi reguler .
  • Di sini, kami menyarankan seduntuk mengganti pola id:5:initdefault:dengan pola id:3:initdefault:dalam file /etc/inittab, yang merupakan file yang mengontrol runlevles Anda. Sintaks umum untuk sedpencarian dan penggantian adalah s/pattern/replacement_pattern/.
  • The -ipilihan memberitahu sedmenerapkan modifikasi di tempat. Jika ini tidak ada, sedakan menghasilkan file yang dihasilkan (setelah substitusi) ke terminal (lebih umum ke output standar).

Memperbarui

Untuk beralih kembali ke mode teks, cukup tekan CTRL+ ALT+ F1. Ini tidak akan menghentikan sesi grafis Anda, itu hanya akan mengalihkan Anda kembali ke terminal tempat Anda masuk. Anda dapat beralih kembali ke sesi grafis dengan CTRL+ ALT+ F7.

Joseph R.
sumber
Terima kasih atas jawabannya. Juga, ketika saya beralih ke GUI menggunakan startxbagaimana saya bisa beralih kembali ke baris perintah?
Don't You Worry Child
1
@ 0xF1 Menambahkan penjelasan untuk sedperintah.
Joseph R.
1
Saya biasanya menyarankan untuk tidak menggunakan sedfile konfigurasi, kecuali jika Anda tahu persis apa yang Anda lakukan. Baris yang dimaksud mungkin juga berupa komentar dan masih akan diubah. Oleh karena itu ekspresi reguler harus lebih tepat, setidaknya memerlukan string id:...di awal baris. Karena halaman manual tidak mengatakan apa-apa tentang bagaimana ruang putih diperlakukan, Anda mungkin ingin menggunakan s/^ *id:5:initdefault:(yang tidak termasuk Tabkarakter, omong-omong).
peterph
1
Jawaban ini tidak lagi valid, setidaknya pada OS saya saat ini. Lihatlah jawaban @ golem di bawah ini. Itu berhasil bagi saya. Saya menggunakan fedora 27.
Lance
1
@ Lance Poin yang sangat bagus. Terima kasih atas pemberitahuannya. Saya telah memperbarui jawaban saya untuk mencerminkan hal itu.
Joseph R.
25

Pembaruan untuk RedHat / CentOS 7 yang telah beralih dari sysvinit ke systemd.

Untuk beralih dari GUI ke CLI: systemctl isolate multi-user.target

Untuk beralih dari CLI ke GUI: systemctl isolate graphical.target

Untuk mengatur CLI sebagai default runlevel ( sasaran dalam terminologi systemd): systemctl set-default multi-user.target. Secara analog untuk GUI:systemctl set-default graphical.target

* CLI = Antarmuka Baris Perintah = mode baris perintah

golem
sumber
Lihat juga: Dokumentasi Terkait .
Mark Edington
2
Terima kasih .. Setiap forum masih membuang pengetahuan lama tentang / etc / inittab meskipun sudah usang.
Shashank Vyas
11

Pertama-tama, ubah pengguna ke root.

su -
Password:

Masukkan kata sandi root.

Gunakan editor favorit Anda untuk memodifikasi baris ini di /etc/inittab:

id:5:initdefault:

Ubah 5 menjadi 3. Saat Anda mem-boot komputer, Anda akan dibawa ke baris perintah daripada ke GUI.

Timothy Martin
sumber
Harap sertakan instruksi tentang bagaimana OP harus melakukan ini sebagai root dan ke file mana. Jawaban ini, sebagaimana adanya, tidak cocok untuk membantu seseorang yang baru mengenal Linux.
Joseph R.
1
Terima kasih telah menunjukkan pengawasan saya. Saya telah mengedit jawaban sesuai dengan itu.
Timothy Martin
Apakah ini berarti bahwa GUI tidak berjalan, atau disembunyikan?
Aaron Franke
@ AaronFranke Untuk sistem Redhat di level 3 run, GUI tidak diaktifkan (atau dimatikan dalam kasus sistem yang beralih dari runlevel 5 ke 3 tanpa reboot).
Timothy Martin
3

Selain mengubah /etc/inittab, Anda juga dapat memberi tahu kernel pada baris perintah apa target runlevel yang harus dilewati initbegitu dimulai. Ini dilakukan dengan hanya menambahkan runlevel yang diinginkan ke baris perintah (itu harus menjadi argumen terakhir yang saya percayai).

Anda dapat melakukan ini sebagai satu hal selama boot, asalkan bootloader Anda memungkinkan Anda untuk mengubah baris perintah kernel, atau Anda dapat menduplikasi entri dalam konfigurasi bootloader dan memilih yang tepat saat boot (berguna ketika Anda boot ke berbagai runlevel sering).

Untuk sistem yang menggunakan systemdprosesnya serupa, tetapi berarti lebih banyak mengetik karena string ajaib ditambahkan ke baris perintah kernel dalam bentuk systemd.unit=desired.target.

Adapun startx, itu juga dapat memulai sesi tambahan dengan memberikan nomor tampilan X yang tidak digunakan (penomoran dimulai dari 0): startx -- :1akan mulai X server pada layar: 1, menempatkannya di VT pertama yang tidak digunakan (sering VT8, karena 6 pertama biasanya Linux konsol dan 7 digunakan oleh sesi X pertama yang berjalan). Perhatikan bahwa server X biasanya membutuhkan hak akses root sehingga Anda harus melakukan ini sebagai root(yang bukan ide yang baik), atau biner harus setuid root (kebutuhan untuk ini biasanya dihapus dengan menggunakan manajer tampilan).

peterph
sumber
+1 Jawaban bagus. Tapi tidak ramah pemula.
Joseph R.
Ya, perubahan inittabjauh lebih masuk akal, karena seseorang biasanya ingin membawa sistem ke status yang sama setiap saat.
peterph
2

Di samping catatan, jika Anda sudah boot ke mode grafis dan ingin beralih ke mode teks, Anda bisa menekan Ctrl+ Alt+ F1dan kembali lagi ke mode grafis oleh Ctrl+ Alt+ F7.

Linux secara default memiliki 6 terminal teks dan 1 terminal grafis. Anda dapat beralih di antara terminal-terminal ini dengan menekan Ctrl+ Alt+ Fn. Ganti ndengan 1-7. F7akan membawa Anda ke mode grafis hanya jika boot ke run level 5 atau Anda sudah mulai X menggunakan startxperintah; jika tidak, itu hanya akan menampilkan layar kosong F7.

Punit Arya
sumber
tunjukkan pekerjaan ini di RHEL 7?
javapowered
1

Bahkan menjadi utas yang cukup lama, semoga bermanfaat. Pada sistem yang menggunakan systemd, / etc / inittab tidak lagi digunakan. Metode ini cukup sederhana:

Mode terminal

ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

Mode Grafis

ln -sf /lib/systemd/system/graphical.target  /etc/systemd/system/default.target
fcm
sumber
0

Setelah mengganti runlevel default untuk id:3:initdefault:di /etc/inittabmenggunakan editor teks pilihan Anda (seperti dikatakan sebelumnya), itu cek sangat penting jika ada beberapa plymouth (splash screen) terinstal di sistem anda. Dalam hal ini, akan perlu menghapus instalasi itu, atau hanya menghapus kata kunci splash dari Anda / boot / grub / grub.cfg menggunakan editor teks pilihan Anda (vim, pico, atau yang lain). Untuk menghapus plymouth:

sudo apt-get remove --purge plymouth

Edit grub.cfg Anda:

sudo vim /boot/grub/grub.cfg

Terakhir, perbarui konfigurasi grub:

sudo update-initramfs -u

Pada boot berikutnya, Anda hanya akan memiliki layar login mode teks. Itu dia.

Nikmati kotak Linux!

S4nD3r
sumber
-1

Instalasi oracle-linux 7 secara default membutuhkan opsi instalasi minimal. Anda harus mengubahnya ke instalasi dengan mode GUI pada saat instalasi. Ini telah menyelesaikan masalah saya karena tidak dapat menggunakan mode pengguna grafis.

Guhan
sumber
Tampaknya Anda memiliki permintaan OP mundur. OP tampaknya berjuang untuk mencapai CLI, bukan ke GUI.
HalosGhost
-1

Saya sudah mencoba systemctl, update-rc.d dan bahkan mengedit konfigurasi GRUB, tetapi tidak ada yang berhasil. Kemudian saya berkomentar manajer tampilan default di / etc / X11 / default-display-manager, reboot dan akhirnya: terminal !!!! Sesederhana itu!

Hehe
sumber
-1

Menggunakan

systemctl set-default multi-user.target

dan reboot VM. VM akan masuk ke mode CLI.

Santhosh Kumar
sumber