Bagaimana cara menemukan parameter boot yang digunakan oleh kernel yang sedang berjalan?


Jawaban:


72

Anda bisa lari cat /proc/cmdline.

Contoh:

[01:31] ~ $ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-2.6.38-7-generic root=UUID=025c4231-b7bb-48bf-93e9-d20c5b5ce123 ro crashkernel=384M-2G:64M,2G-:128M quiet splash bootchart=disable acpi_enforce_resources=lax vga=792 vt.handoff=7

1
Cobalah tr ' ' '\n' < /proc/cmdlineuntuk mendapatkan garis pemisah di antara parameter.
mwfearnley

10

Cara alternatif adalah memeriksa keluaran dmesg(baris 5 di sini):

$ dmesg | grep "Command line"
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.19.0-33-generic root=UUID=81dba11f-f76e-4ed4-8120-e6da6328b1ee ro

Tetapi perhatikan bahwa ini mungkin tidak berfungsi jika banyak hal telah dicatat (mis. Jika mesin telah berjalan untuk waktu yang lama) karena garis startup awal mungkin telah didorong keluar dari ringbuffer.


1

Sebenarnya, parameternya terletak di antara __setup_startdan __setup_enddi dalam kernel. Dalam kode berikut, itu p->stradalah nama parameter

Kode kernel berikut dapat ditemukan di linux-3.4.5 / init / main.c: 388

/* Check for early params. */
static int __init do_early_param(char *param, char *val)
{
    const struct obs_kernel_param *p;
    for (p = __setup_start; p < __setup_end; p++) {
        if ((p->early && parameq(param, p->str)) ||
            (strcmp(param, "console") == 0 &&
             strcmp(p->str, "earlycon") == 0)
        ) {
            if (p->setup_func(val) != 0)
                printk(KERN_WARNING
                       "Malformed early option '%s'\n", param);
        }
    }


    /* We accept everything at this stage. */
    return 0;
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.