如何查看当前引导系统的Linux内核参数

时间:2020-01-09 14:16:19  来源:igfitidea点击:

如何显示或查看当前正在运行/启动的内核的Linux内核参数?
如何查看Linux内核命令行参数?
要显示为当前引导的系统提供的Linux内核命令行参数,请使用以下任何Linux命令:

sysctl -a
sysctl -a | more
## use the grep command/egrep command to filter out data ##
sysctl -a | grep 'something'
cat /proc/cmdline

如何使用/proc/cmdline查看Linux内核参数

在Linux上,可以使用引导管理器,例如lilo或grub。
可以在启动时将参数或参数传递给Linux内核。
通常,您需要配置grub。
所有此类参数都存储在/proc/cmdline文件中。
要显示/查看当前内核参数,请使用cat命令:

cat /proc/cmdline

输出示例:

BOOT_IMAGE=/boot/vmlinuz-4.15.0-42-generic root=/dev/sda ro console=tty0 console=ttyS0,19200n8 splash

/proc/cmdline文件中的上述条目显示了启动时传递给内核的参数。
我使用/boot/vmlinuz-4.15.0-42-generic内核镜像启动了Linux服务器。
我名为/dev/sda的硬盘充当查找/boot/vmlinuz-4.15.0-42-generic的根设备。
此外,我通过tty0/ttyS0配置了串行控制台访问,并将速度设置为19200n8。

查看Linux内核参数

刚启动的Linux系统可以出于相同目的使用以下命令:

dmesg | grep "Command line"

输出示例:

[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.19.8 root=UUID=2381eff1-9677-4a04-9faa-323247ec2f83 ro quiet splash vt.handoff=1

如何使用sysctl显示Linux内核参数或参数

有时您需要设置或更新Linux内核参数。

Linux上特定内核参数的默认值可能不足以运行软件。
通常使用sysctl命令调整Linux内核。

如何查看所有内核参数

运行以下sysctl命令:

sudo sysctl -a

使用grep命令或更多命令作为sysctl的寻呼机/过滤器:

sudo sysctl -a | more
sudo sysctl -a | less
sudo sysctl -a | grep 'foo'
sudo sysctl -a | grep net.ipv4.ip_forward

如何修改Linux内核参数

编辑/etc/sysctl.conf文件或/etc/sysctl.d/目录中的其他文件。
例如,使用文本编辑器,例如nano命令/vim命令:

$ sudo vi /etc/sysctl.d/my-security.conf

追加以下设置:

## Reboot the machine soon after a kernel panic
kernel.panic=10
 
## Addresses of mmap base, heap, stack and VDSO page are randomized
kernel.randomize_va_space=2
 
## Ignore bad ICMP errors
net.ipv4.icmp_ignore_bogus_error_responses=1

保存并关闭vim中的文件。
最后,在sysctl设置中运行以下命令加载:

$ sudo sysctl -p