poweroff
mengeluh bahwa itu tidak dapat terhubung ke systemd melalui DBus (tentu saja, itu tidak hidup). Saya memang sync
mengikuti kill $$
, berpikir bahwa pid 1 sekarat akan memberi tanda kernel untuk poweroff, tetapi itu menyebabkan panik kernel. Saya kemudian menahan tombol power untuk memaksa poweroff.
Apa cara paling tepat untuk mematikan dalam skenario ini?
init=/bin/bash
petunjuk / implikasi, itu ambigu jika systemd diinstal atau tidak. Maksud saya, tidak ada systemd yang berjalan . Bagaimanapun, tanpa menjalankan systemd, saya pikir toold systemd akan sia-sia dan bahwa jawaban akan menggunakan cara lain seperti yang tentang sysrq.Jawaban:
Lepaskan sistem file yang telah Anda pasang. Sistem file root adalah kasus khusus; untuk ini kamu bisa menggunakan
mount / -o remount,ro
. Di Linux,umount /
kebetulan juga bekerja, karena secara efektif dikonversi ke perintah sebelumnya.Yang mengatakan, Anda tidak perlu khawatir tentang melepas terlalu banyak, kecuali
sync
seharusnya sudah cukup, dan sistem file akan memperbaiki dirinya dengan sangat cepat pada boot berikutnya.Di atas adalah bagian penting. Setelah itu, Anda juga dapat dengan mudah mematikan perangkat keras menggunakan
poweroff -f
. Atau reboot denganreboot -f
.Ada
systemd
setara -specific daripoweroff -f
:systemctl poweroff -f -f
. Namunpoweroff -f
melakukan hal yang sama, dansystemd
mendukung perintah ini meskipun telah dibangun tanpa kompatibilitas SysV.Secara teknis, saya ingat hard drive USB saya didokumentasikan sebagai membutuhkan Windows "hapus aman" atau setara. Tetapi persyaratan ini bukan powerfail aman, dan Linux tidak melakukan ini selama shutdown normal. Lebih baik diartikan sebagai makna bahwa Anda tidak boleh joging hard drive saat sedang berputar - termasuk dengan mencoba mencabutnya. Matikan penuh harus menghentikan drive berputar. Anda mungkin dapat mendengar, merasakan, atau melihat apakah itu tidak berhenti :-).
sumber
sync()
cukup untuk ext2. Ini akan mengeluh tentang menjadi kotor tetapi tidak akan benar-benar rusak kecuali untuk informasi ringkasan. Saya biasanya menganggap init = / bin / bash atau setara lokal sebagai situasi darurat.fsck.mode=skip
kan?fsck.mode=skip
untuk boot secara normal setelah unmount yang tidak bersih!Saya hanya akan menjalankan dua perintah di bawah ini:
Dengan asumsi kunci ajaib diaktifkan di kernel
sumber
Ok, jadi terpikir olehku bahwa aku punya pilihan
exec init
. Dari sana, saya mungkin akan bisa nantipoweroff
. Saya bertanya-tanya apakah ada alternatif yang lebih baik.sumber
exec init 0
. Itu tidak akan bekerja dengan semua sistem init, tetapi yang sama akan melalui urutan shutdown.Secara efektif, tou ingin memanggil reboot (2) syscall.
Dua cara Anda bisa melakukan ini:
Jalankan
reboot -f
ataupoweroff -f
, ini harus memanggilreboot(2)
langsung.Jika Anda berada di terminal virtual Linux nyata (bukan emulator terminal GUI), dengan menekan Ctrl+ Alt+ Delete.
Perhatikan bahwa pintasan keyboard dapat dinonaktifkan oleh beberapa program ruang pengguna (biasanya init), ketika dinonaktifkan pintasan akan mengirim sinyal ke init sebagai gantinya.
Semua perintah di atas harus dilakukan setelah umount-ing semua disk atau remounting sebagai hanya baca, dan menjalankan sinkronisasi, jika tidak, Anda dapat kehilangan data tidak tertulis. Jika shell Anda adalah satu-satunya proses yang berjalan, sinkronisasi mungkin cukup.
sumber
Anda bisa menggunakan kunci Magic SysRq ( https://en.wikipedia.org/wiki/Magic_SysRq_key ) untuk mematikan komputer Anda.
Untuk mematikan dengan benar, Anda dapat menggunakan yang berikut ini (bentuk kutipan Wikipedia):
Tetapi mengganti B terakhir dengan O (untuk azerty / qwerty) untuk "power O ff"
sumber