Apakah ada cara untuk mengambil daftar judul "menuentries" dari GRUB?
Saya membutuhkan hasil dalam format yang grub-set-default
akan menerima. misalnya.
"Ubuntu"
"Memory test (memtest86+)"
etc.
command-line
grub2
Madneon
sumber
sumber
Jawaban:
Menggunakan
awk
memberi Anda daftar lengkap semua entri menu di
grub.cfg
.sumber
awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg
awk
. : \awk -F\' '/menuentry / { print i++, $2}' /boot/grub/grub.cfg
untuk digunakan untukgrub-set-default
Tangkapan layar berwarna (versi singkat)
Roda menggunakan mouse scroll, Home, End, PgUp, PgDn, ↑dan ↓tombol untuk menavigasi menu.
Tangkapan layar Teks (versi panjang)
Skrip bash menggunakan
whiptail
alih-alihdialog
untuk menampilkan menu. Salah satu keuntungannya adalah Anda dapat menyalin gambar terminal ke clipboard sebagai teks dan menempelkannya ke situs web ini sebagai teks. Keuntungan lain termasuk:dialog
tidak diinstal secara default di Ubuntu Server atau Lubuntu.whiptail
disertakan secara default.Berikut cuplikan layar teks:
Sorot entri dan tekan Enter
Gunakan tombol navigasi untuk menyorot opsi dan tekan Enteruntuk melihat driver pra-kernel dimuat oleh
grub
dan parameter boot yang dilewatkangrub
ke kernel saat mem -bootnya :grub-menu.sh
skrip bashgrub-menu.sh
hanya memiliki satu opsi untuk mengubah:Tetapkan nilai ke
true
(sembunyikan entri tambahan) ataufalse
(daftarkan semua entri).Format default dapat diganti ketika memanggil skrip menggunakan:
atau:
Kode:
sumber
Tepatnya ini telah mengganggu saya selama lebih dari setahun - jadi saya melakukan script cepat dan kotor untuk melakukannya. Semoga ini bisa membantu orang lain?
Ini menumpuk nama-nama dalam antrian push / pop, tetapi tidak menu pengindeksan jadi itu bisa lebih baik tapi saya sudah sejauh yang saya bisa terganggu.
Di sini Anda dapat melihat ambil layar dari kotak saya yang menunjukkan itu berjalan
Seperti yang telah diminta dalam komentar dari 2019/8 yang saya sebutkan di atas melakukan "temp boot". Ide ini adalah apa yang awalnya dimulai skrip saya, dan metode boot temp berasal dari posting lain dan berjalan seperti ini
# vi /etc/default/grub
# sudo update-grub
# sudo grub-set-default 0
# sudo grub-reboot 4
Ref: https://ubuntuforums.org/showthread.php?t=1310463
sumber
push
danpop
perintah dalam jawaban Anda. Seandainya saya tahu mereka sebelum saya menulis jawaban saya.test
1. Set GRUB_DEFAULT ke GRUB_DEFAULT = disimpan (/ etc / default / grub) 2. Perbarui konfigurasi grub di / boot #sudo update-grub 3. Tetapkan OS default untuk dimuat (ini akan memuat setiap kali Anda menyalakan ulang mesin) # sudo grub -set-default 0 4. Ketika perlu memuat OS lain (nomor adalah nomor menu OS seperti di /boot/grub/grub.cfg, ini akan memuat OS lain hanya sekali selama reboot berikutnya - reboot akan dimulai secara manual): sudo grub-reboot 4Ini harus menjadi "string" yang tepat ...
Pipa terakhir menghapus spasi putih di awal setiap baris dan memperbaiki urutan nomor sesuai dengan entri nomor grub. Output sampel:
Jika Anda ingin melihat semua entri, juga entri tingkat lanjut, Anda dapat menggunakannya
tetapi urutan angka tidak cocok untuk digunakan dengan grub-set-default.
sumber
Saya baru tahu bahwa Anda bisa menggunakan pelengkapan otomatis (menekan
tab
dua kali) pada perintah sepertigrub-reboot
ataugrub-set-default
dan itu akan memberi Anda daftar entri menu boot yang tersedia. Anda kemudian dapat menyalin judul yang Anda inginkan secara harfiah, Anda tidak perlu menggunakan nomor.Sayangnya, karena alasan tertentu instalasi Windows 7 saya tidak muncul seperti itu.
sumber
Satu liner awk lainnya yang menangani submenu:
Ini mungkin pemikiran yang keliru, karena \ t digunakan untuk mengidentifikasi entri submenu.
sumber
Di OpenSuSE, grub2-once menyediakan id menu yang dapat Anda gunakan di perintah lain. Tidak banyak membantu bagi pengguna Ubuntu.
sumber