标签: linux-kernel

无法在 VPS 上更新 linux 内核

我最近开始使用来自 OVH 的 VPS:http ://www.ovh.co.uk/vps/vps-classic.xml 这可能是这个提供商特有的问题。

我的目标是在其上安装和运行 Docker,为此我需要内核支持模块。默认情况下,OVH 的 VPS 机器使用自定义内核,不会导致 Docker 崩溃。我尝试使用可用于 VPS 的各种版本的 Debian(6、7)和 Ubuntu(12.04、13.10)重新安装机器几次,每次 uname -r 显示我

uname -r
2.6.32-042stab084.14
Run Code Online (Sandbox Code Playgroud)

... /boot 目录是空的,没有安装 grub 和 lilo,没有安装 linux-image 包,尽管它们可用。

从存储库、grub 安装 linux 内核、更新 grub(这是我在谷歌搜索出来的广泛传播的建议)和重启机器几乎没有效果。Grub 找到一个系统映像,新安装的一个,/boot 被填充,但系统仍然运行上面提到的内核。这个和上面的症状让我非常困惑:这台机器最初是如何启动的?也许是网络启动?如何检查它,如何改变这种行为?

遵循网络引导的想法,我再次检查了谷歌,这告诉我 OVH 网络管理器版本 3 中有一个选项可以更改网络引导设置。我使用 manager v.6 修改我的 VPS(他们说功能移到那里),我在那里找不到这样的选项,以前的 manager 版本甚至看不到我的 VPS。

这就是我到现在为止走了多远。我想在这个 VPS 上运行标准的存储库内核,也欢迎任何关于这个设置如何工作以及为什么它这么有问题的解释,因为现在我感到很困惑:)

hosting vps debian linux-kernel docker

11
推荐指数
1
解决办法
2万
查看次数

内核崩溃挂起后如何查看服务器中的日志?

我正在运行一台生产 gentoo Linux 机器,最近有一种情况,服务器挂在我共同定位的地方,当我到达那里时,我注意到服务器挂在了似乎是内核崩溃挂起的地方。我通过硬重启重新启动了机器,但很失望地发现我无法在任何地方找到有关机器挂起原因的任何证据。

当我进行硬重启时,消息本身是否会丢失,或者是否有设置我可以在 syslog-ng 或 sysctl 中的某处进行设置以至少保留错误日志,以便我可以防止发生此类事故在将来 ?顺便说一下,我正在运行 2.6.x 内核。

提前致谢。

linux kernel-panic linux-kernel

10
推荐指数
2
解决办法
1万
查看次数

/dev/dm-1 是分区还是整个块设备?

有没有办法确定/dev/dm-1是块设备分区还是整个块设备?如果/dev/dm-1是分区,有没有办法找出对应的整个块设备的路径?

linux-kernel devices device-mapper

10
推荐指数
3
解决办法
4万
查看次数

刷新进程消耗过多 CPU

Server 是 EC2 Instance,它代表从 HTTPD 将文件保存到 NAS (NFS)。

像flush-0:32 这样的进程消耗了超过%90 的CPU 和平均负载:65.50、64.02、66.59。

根据图表,它每天都在增加,而 4 个内核的初始负载平均约为 1.01、2.02、1.80。我在负载均衡器下添加了另一个类似的实例,其 CPU 利用率仅为 %6 ATM。

这些冲洗过程究竟做了什么?

如果客户端只需要写入数据,也许我们应该关闭 NFS 属性缓存?

可能是因为数据包碎片?

以下是一些统计数据nfsstat -s -4

=================================================================
Server 0:

Server rpc stats:
calls      badcalls   badauth    badclnt    xdrcall
715054137   0          0          0          0       

Server nfs v4:
null         compound     
993       0% 715053143 99% 

Server nfs v4 operations:
op0-unused   op1-unused   op2-future   access       close        commit       
0         0% 0         0% 0         0% 143229323  6% 78092765  3% 36693816  1% 
create       delegpurge   delegreturn …
Run Code Online (Sandbox Code Playgroud)

linux amazon-ec2 linux-kernel

9
推荐指数
1
解决办法
1万
查看次数

Linux 内核版本控制:Debian Sid 与 Ubuntu Precise

我设置了两台机器:

在一台机器上,我安装了 Ubuntu Precise 12.04 beta 并升级到最新的软件包。

在另一台机器上,我安装了 Debian Sid Unstable 并升级到最新的软件包。

在 Ubuntu 机器上 uname -a 显示:

Linux 3.2.0-20-generic #32-Ubuntu SMP Thu Mar 22 02:22:46 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

在 Debian 机器上 uname -a 显示:

Linux 3.2.0-2-amd64 #1 SMP Wed Mar 28 13:28:04 UTC 2012 x86_64 GNU/Linux

我的问题是关于内核版本:

Ubuntu: 3.2.0-20-generic
Debian: 3.2.0-2-amd64
Run Code Online (Sandbox Code Playgroud)

Linux 3.2 版发布于:

linux-3.2.tar.gz         05-Jan-2012 00:40   94M
Run Code Online (Sandbox Code Playgroud)

从那时起,已经发布了 13 个点,3.2.1 .. 3.2.13 来自 kernel.org,以及 3.3 发布。

我的问题是关于我的两台机器上的两个内核的源代码树的历史:

这两个版本的内核是从官方 kernel.org 内核的哪个版本派生而来的?

Debian Sid 内核的来源与 Ubuntu Precise …

linux ubuntu debian kernel linux-kernel

9
推荐指数
1
解决办法
1789
查看次数

如何在 CentOS 中为所有现有和未来内核设置默认内核参数?

我想删除在 CentOS 6 中启动内核时默认使用的rhgbquiet内核参数,但我希望这适用于所有当前安装的内核以及将来安装的任何内核。我需要从脚本中执行此操作,因此无法手动编辑文件,并且应尽可能干净地完成任何文件更改。

在是Debian / Ubuntu的我会改变GRUB_CMDLINE_LINUX_DEFAULT/etc/default/grub,然后运行update-grub。我在/etc/sysconfig/grubor 中找不到这样的设置/etc/sysconfig/kernel,也没有update-grub脚本。

linux redhat centos grub linux-kernel

9
推荐指数
1
解决办法
3万
查看次数

/proc/sys/fs/file-max 的默认值

我知道 /proc/sys/fs/file-max 定义了打开文件描述符的最大数量,可以在运行时或启动期间设置。

但是:它的默认值是多少?检查我公司的 10 台服务器给了我 7 个不同的值,这些值似乎都是随机的。

内核文档只是不断提到可以更改该值 - 但没有提到如何计算默认值。

你们中有人知道如何确定默认值吗?

max-file-descriptors linux-kernel

9
推荐指数
1
解决办法
6909
查看次数

如何使用 systemd 在 Linux 中正确永久启用 ip 转发?

我尝试启用IP转发(间enp0s3tun0接口),并写net.ipv4.ip_forward = 1/etc/sysctl.conf。重启后我有

$ cat /proc/sys/net/ipv4/ip_forward
1
Run Code Online (Sandbox Code Playgroud)

但是转发还是不行。我尝试添加net.ipv4.conf.default.forwarding=1/etc/sysctl.conf。现在重启后我有

$ cat /proc/sys/net/ipv4/ip_forward
1
$ cat /proc/sys/net/ipv4/conf/default/forwarding
1
$ cat /proc/sys/net/ipv4/conf/all/forwarding
1
$ cat /proc/sys/net/ipv4/conf/enp0s3/forwarding
0
$ cat /proc/sys/net/ipv4/conf/tun0/forwarding
0
Run Code Online (Sandbox Code Playgroud)

我无法启用/proc/sys/net/ipv4/conf/enp0s3/forwarding和输入/proc/sys/net/ipv4/conf/tun0/forwardingsysctl.conf因为这些文件在这么早的启动时间不存在:

systemd-sysctl[85]: Couldn't write '1' to 'net/ipv4/conf/enp0s3/forwarding', ignoring: No such file or directory
systemd-sysctl[85]: Couldn't write '1' to 'net/ipv4/conf/tun0/forwarding', ignoring: No such file or directory)
Run Code Online (Sandbox Code Playgroud)

,更多的tun0是动态接口(可以随时添加和删除)。

如果我手动启用转发enp0s3tun0然后转发按预期工作。

那么,如何正确开启接口转发呢? …

linux-networking linux-kernel systemd

9
推荐指数
1
解决办法
2万
查看次数

为什么 Linux 在不正确的接口上应答 ARP?

我有以下 Linux 网络设置:有一个 eth10 网络接口,分配的地址为 10.11.0.1/24。然后有一个分配了虚拟地址 0.0.0.1/32 的 tap0 网络接口(我分配了一个虚拟地址来启动接口),并且来自/到它的流量由最初创建 tap0 接口的用户空间程序控制。在 tap0 接口的另一侧,有一个用户空间程序通过原始套接字使用它,该程序查找 ARP 请求并构建响应。

现在,当用户空间程序构造一个请求 10.11.0.1 的 ARP 请求时,我希望另一个原始套接字用户空间程序回复它。但是,我得到了两个回复:一个来自原始套接字程序,另一个来自 Linux 内核。

显然,Linux 内核推断 10.11.0.1 是属于它的地址,因此做出了答复。但是10.11.0.1并不是tap0接口的地址。它是 eth10 接口的地址。

我的问题是:为什么 Linux 内核会这样做?有什么办法可以禁用错误接口上的 ARP 回复?

我对这个问题的临时解决方案是使用 10.11.0.1 以外的其他地址用于原始套接字/tap0 目的。但是,因为这个系统应该是一个可以在任何开发机器上运行的应用程序的系统级测试,所以我不能保证与其他接口没有 IP 地址冲突。因此,最好在错误的接口上禁用 ARP 回复。

这个问题的另一个解决方案是使用 netmap 为用户空间应用程序保留整个接口,防止内核在用户空间应用程序运行时使用它。但我希望我的测试在没有 netmap 的情况下运行。

linux arp linux-networking linux-kernel

9
推荐指数
1
解决办法
1万
查看次数

nic:邪恶的事情发生了!噗

我正在使用 Debian Stretch (9.7) 配置 GNU/Linux 路由器,在重新启动服务器之前,从一个接口到另一个接口的所有流量都正常,但在那之后,我收到了这样的消息 (tty):

enp1s6: Something Wicked happened! ffff.
Run Code Online (Sandbox Code Playgroud)

我在同一交换机和同一网络上有一台主机,用于测试目的,基本上,路由器的 LAN 不响应回显请求。

这里有一些关于服务器的信息。

内核日志

Jan 25 08:58:02 server001 kernel: [25060.494127] enp1s6: Link changed: 
Jan 25 08:58:02 server001 kernel: [25060.494127] 100Mbps, half duplex
Jan 25 08:58:02 server001 kernel: [25060.494254] enp1s6: Something Wicked happened! ffff.
Jan 25 08:58:02 server001 kernel: [25060.497338] enp1s6: Link up
Jan 25 08:58:02 server001 kernel: [25060.497557] enp1s6: Link changed: 
Jan 25 08:58:02 server001 kernel: [25060.497557] 100Mbps, full duplex
Jan 25 08:58:02 server001 kernel: [25060.499986] …
Run Code Online (Sandbox Code Playgroud)

debian icmp ethtool linux-networking linux-kernel

9
推荐指数
1
解决办法
710
查看次数