Mencegah konsol menghapus layar?

11

Saat mem-boot ke Linux, terkadang ada satu atau dua baris yang bisa dihapus dengan cepat. Saya pikir beberapa dari mereka bahkan tidak muncul di dmesg. Jika tidak ada yang lain, saya ingin menekan yang jelas sebelum prompt "login:". Apakah ada perintah kernel atau sysctl yang dapat saya atur untuk mencegah hal ini sehingga saya dapat membacanya di layar konsol setelah boot?

Paul Hoffman
sumber
Tidak /var/log/kern.log membantu? Atau Anda tidak memilikinya?
HUB

Jawaban:

13

Sebagian besar informasi yang Anda inginkan ada di /var/log/dmesgdan /var/log/messagessetelah sistem melakukan boot, Anda harus memeriksa file-file itu terlebih dahulu.

Umumnya mesin linux menjalankan mingetty untuk terminal virtual. Jika Anda memiliki sistem init sysv tradisional, itu dikontrol oleh /etc/inittab. Anda dapat menambahkan --noclearopsi ke mingetty untuk mencegah pengosongan layar. Untuk melakukan ini, edit /etc/inittabdan ubah baris ini:

1:2345:respawn:/sbin/mingetty tty1

untuk

1:2345:respawn:/sbin/mingetty --noclear tty1

lalu reboot mesin.

Beberapa distro linux yang lebih baru menggunakan pengganti init seperti Upstart (misalnya, Ubuntu). Ini biasanya tidak menggunakan / etc / inittab dan sebaliknya menggunakan beberapa file konfigurasi lainnya. Berikut adalah diskusi tentang cara kerja mingetty di Ubuntu .

Phil Hollenback
sumber
Yah, saya lupa menyebutkan bahwa saya memang peduli tentang Ubuntu. Tautan di atas menunjukkan beberapa informasi yang ketinggalan zaman, dan upaya pertama saya (cukup edit /etc/init/tty1.conf sama sekali tidak berhasil.
Paul Hoffman
Mereka menggunakan gettydari util-linux, bukan mingetty, tetapi ini bekerja dengan Debian juga. Terima kasih!
mirabilos
4

Jika tidak ada yang membantu, Anda dapat mengambil laptop Anda dan mengambil semua log kernel melalui konsol serial dengan menambahkan sesuatu seperti ini ke parameter kernel:

console=tty0 console=ttyS0,9600n8 console=tty0

Ini akan menyebabkan output untuk ditampilkan pada konsol serial (dalam program terminal Anda) dan pada tty standar. Terkadang SOL (Serial Over LAN) tersedia.

PUSAT
sumber
3

Setelah berjam-jam googling, saya menemukan solusi di utas ini dan pertanyaan ini . Prosedur ini berfungsi Ubuntu 12.04.1 LTSsebagaimana juga dijelaskan di sini , tetapi seharusnya tidak terlalu berbeda untuk distribusi lainnya.

Pertama, tambahkan console=tty1ke Anda GRUB_CMDLINE_LINUX(saya juga menyarankan untuk menambah noplymouthmenghambat plymouthdan splashscreen yang tidak berguna).

#> sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX="console=tty1 noplymouth"

Ini memaksa log kernel untuk dicetak tty1alih-alih tty7dan menghindari ttysakelar sebelum prompt login.

Kemudian hanya pergi ke /etc/initdan mengedit satu atau lebih dari tty1.conf, tty2.conf, tty3.conf, tty4.conf, tty5.conf, tty6.confatau console.conf. Saya mengedit mereka semua menambahkan --noclearopsi ke gettyperintah. Misalnya, mengedit tty1.conf:

#> sudo vi /etc/init/tty1.conf

Anda harus mengganti:

respawn
exec /sbin/getty -8 38400 tty1

dengan:

respawn
exec /sbin/getty -8 38400 --noclear tty1

Itu saja, sekarang sistem Anda harus boot dalam satu ttytanpa membersihkannya.

Avio
sumber
1

dmesg di sini kembali ke bagian paling awal dari kernel, dimulai dengan

[    0.000000] Initializing cgroup subsys cpuset

Mungkin ini beberapa pesan bios atau bagian dari boot loader Anda? Apa pun itu, ada begitu banyak hal berbeda yang dapat mengosongkan layar, tanpa mengetahui di mana tepatnya dalam proses itu terjadi, sulit untuk mengatakan apa yang harus dilakukan. Apakah satu-satunya yang tersisa di layar "Login:"? atau ada beberapa hal boot-up lain di atasnya? Jika itu segera sebelum prompt login dan tidak ada lagi yang ada di layar, maka mungkin /etc/issueada perintah screen-blanking di dalamnya? Jika tidak, Anda bisa menggunakan semacam penyangga bingkai konsol yang mengganti mode video. Di komputer saya, layar kosong ketika font konsol dimuat.

DerfK
sumber
TL; DR juga /etc/issuebisa menjadi pelakunya. Petunjuk yang bagus.
Tino