Câu trả lời:
Bạn có thể chạy cat /proc/cmdline
.
Thí dụ:
[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
tr ' ' '\n' < /proc/cmdline
để có được ngắt dòng giữa các tham số.
Một cách khác là kiểm tra đầu ra của dmesg
(dòng 5 ở đây):
$ 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
Nhưng lưu ý rằng điều này có thể không hoạt động nếu nhiều thứ đã được ghi lại (ví dụ: nếu máy đã chạy trong một thời gian dài) vì các dòng khởi động ban đầu có thể đã bị đẩy ra khỏi ringbuffer.
Trên thực tế, tham số nằm giữa __setup_start
và __setup_end
trong kernel. Trong đoạn mã sau, p->str
tên tham số là
Mã hạt nhân sau có thể được tìm thấy tại 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;
}