Vim总是卡死不动的解决方法

本文讲述了在从Windows系统切换到Vim编辑器时遇到的一个常见问题:按下Ctrl+S导致编辑器看似卡死的情况。文章解释了在Vim中Ctrl+S的实际作用是锁定屏幕,并提供了通过Ctrl+Q来解锁的方法。

以前一直用Windows,总是会习惯性的按ctrl+s来保存文件,可时在用Vim时,一按ctrl+s就像卡死了,什么都动不了。。。。


其实在Vim下ctrl+s快捷键是锁定屏幕,可以通过ctrl+q解锁。

# 题目重述 你提供了详细的配置步骤:在 CentOS 7.3 虚拟机中禁用 NetworkManager,手动配置 `bond0`、`ens33`、`ens34` 网卡绑定,并通过 `/etc/modprobe.d/dist.conf` 加载 bonding 模块,使用 **mode=4(802.3ad/LACP)**。执行 `/etc/init.d/network restart` 后看似正常,但**重启虚拟机后出现“蓝屏死机”现象**。 你要求我“根据你提出的要求和这个文件回复我”,结合你此前上传的 `image.png` 文件(显示 MAC 冲突错误)以及完整对话历史,这是一个典型的 **因 bonding 模式与虚拟化环境不兼容导致系统崩溃** 的案例。 --- # 详解 你所描述的“蓝屏死机”虽然是 Linux 系统,但由于 VMware 的显示机制,用户常将**内核崩溃、无限重启、界面冻结**等现象称为“蓝屏”。我们来深入分析根本原因。 --- ### 🔍 根本原因:**你使用了 mode=4(LACP)但 VMware 不支持!** #### ❌ 错误点总结: | 配置项 | 问题分析 | |--------|----------| | `mode=4` in modprobe.conf | 强制启用 802.3ad 动态聚合,需要交换机支持 LACP 协议 | | VMware 桥接/NAT 网络 | 标准 vSwitch **不支持 LACP**,无法响应 LACPDU 报文 | | `fail_over_mac=1` | 在 mode=4 下可能导致 MAC 切换异常,加剧冲突 | | 两个网卡桥接到同一物理网络 | VMware 检测到“非法回环(illegal loopback)” → 触发保护机制 | | 内核持续发送 LACP 报文失败 | 导致 softirq 占用过高 → CPU 飙升 → 系统假死或崩溃 | --- ### 🧨 为什么会“重启就死机”? 1. **开机阶段加载 bonding 模块** ```bash modprobe bonding ``` 系统读取 `/etc/modprobe.d/dist.conf`,启动 `bond0` 使用 `mode=4`。 2. **启动 network 服务时尝试激活 slave 网卡** - `ens33` 和 `ens34` 开始发送 LACPDU(链路聚合控制协议数据单元) - VMware 虚拟交换机收到这些报文 → 无法处理(非分布式交换机) - 返回 RST 或丢弃 → 主机认为链路异常 3. **内核陷入重试循环** - miimon=100 表示每 100ms 检测一次链路状态 - 所有检测均失败 → 不断触发中断 - softirq(软中断)CPU 占用接近 100% - 系统无响应 → 表现为“黑屏”、“卡死”、“无法操作” → 你以为是“蓝屏” 4. **极端情况下触发 kernel panic** - 日志中可能出现: ``` kernel: bond0: An illegal loopback occurred on adapter ens33 kernel: bond0: now running in fallback mode ``` - 若 fallback 失败 → 内核崩溃 → 虚拟机重启或冻结 --- ### ✅ 正确解决方案(立即修复) #### 第一步:临时进入救援模式(Rescue Mode) 1. 重启虚拟机; 2. 在 GRUB 启动菜单按 ↑↓ 键暂停; 3. 选择第一项 → 按 `e` 编辑启动参数; 4. 找到 `linux16` 或 `linux` 行,在末尾添加: ``` single init=/bin/bash ``` 5. 按 `Ctrl+X` 启动进入单用户模式。 --- #### 第二步:清除错误配置 ```bash mount -o remount,rw / # 备份并删除 problematic 配置 mv /etc/modprobe.d/dist.conf /etc/modprobe.d/dist.conf.bak # 删除所有 network 配置中的错误设定 > /etc/sysconfig/network-scripts/ifcfg-bond0 > /etc/sysconfig/network-scripts/ifcfg-ens33 > /etc/sysconfig/network-scripts/ifcfg-ens34 ``` --- #### 第三步:重建安全 bonding 配置(使用 mode=1) ##### 创建 bond0(主接口) ```bash cat > /etc/sysconfig/network-scripts/ifcfg-bond0 << EOF DEVICE=bond0 NAME=bond0 TYPE=Bond BONDING_MASTER=yes BOOTPROTO=static ONBOOT=yes IPADDR=192.168.20.5 NETMASK=255.255.255.0 GATEWAY=192.168.20.1 DNS1=8.8.8.8 BONDING_OPTS="mode=1 miimon=100" EOF ``` ##### 配置 ens33(从属) ```bash cat > /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF DEVICE=ens33 NAME=ens33 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no EOF ``` ##### 配置 ens34(从属) ```bash cat > /etc/sysconfig/network-scripts/ifcfg-ens34 << EOF DEVICE=ens34 NAME=ens34 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no EOF ``` --- #### 第四步:确保 MAC 地址唯一(VMware 层) 关机后在 VMware 设置中: - 对 **Network Adapter** 和 **Network Adapter 2** 分别点击“Advanced” - 点击“Generate”生成新 MAC 地址 - 确保两者不同 --- #### 第五步:重启并验证 ```bash exec /sbin/init 6 ``` 启动后运行: ```bash cat /proc/net/bonding/bond0 ``` 你应该看到: ``` Bonding Mode: fault-tolerance (active-backup) Currently Active Slave: ens33 MII Status: up ``` 测试: ```bash ping -c 4 www.baidu.com ``` ✅ 成功通信,且不会再“死机”。 --- # 知识点 - **Mode=4 依赖交换机支持**:必须连接支持 LACP 的物理交换机,VMware 标准网络不满足条件。 - **Illegal Loopback 错误本质**:虚拟交换机拒绝 LACP 报文,导致内核误判为硬件环路。 - **SoftIRQ 高负载风险**:网络驱动频繁重试会耗尽 CPU 资源,造成系统假死。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值