磁盘100%

VirtualBox磁盘快照(备份)需要删除

1.显示系统全部内核
1 | sudo dpkg --get-selections | grep linux |
2.完全删除系统内核
1 | sudo apt-get remove --purge linux-modules-5.4.0-42-generic |
1 | sudo apt update |
1 | sudo apt install -y \ |
1 | sudo apt-mark hold linux-image-5.4.0-150-generic |
1 | --------------------------------------------------------------------------------------- |
1 | sudo apt-mark hold linux-headers-5.4.0-150-generic |
1 | #查看已安装的内核 |
1 | sudo apt-mark hold linux-image-5.4.0-150-generic |
1 | grep 'menuentry' /boot/grub/grub.cfg |
找到您想要设置为默认启动的内核条目,然后修改 /etc/default/grub 文件中的 GRUB_DEFAULT
配置项,将其设置为对应的内核启动项。例如,如果您想要设置 Ubuntu, with Linux 5.4.0-150-generic 为默认启动项,您可以这样设置:
1 | sudo sed -i 's/GRUB_DEFAULT=0/GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-150-generic"/g' /etc/default/grub |
然后再次更新 GRUB 并重启:
1 | sudo update-grub |
1 | uname -ra |

5.4.0-150-generic,你需要做以下几步:1 | sudo dpkg --get-selections | grep linux-image |
你现在的系统中已经安装了 linux-image-5.4.0-150-generic,并且它的状态是 hold,这意味着它被“锁定”了,不会被自动更新或卸载。
要将系统内核切换到 5.4.0-150-generic,你需要做以下几步:
先确认 GRUB 启动菜单中已经有 5.4.0-150-generic 的启动项:
1 | grep -i "5.4.0-150" /boot/grub/grub.cfg |
如果输出中有类似 linux-5.4.0-150-generic 的条目,说明 GRUB 已经识别到它。
重启系统,在 GRUB 菜单中手动选择 Advanced options for Ubuntu,然后选择 5.4.0-150-generic 启动。
如果你想永久使用 5.4.0-150-generic,可以设置 GRUB 默认启动项:
1 | awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub/grub.cfg |
找到 5.4.0-150-generic 对应的编号(比如是 2>4 这样的格式)。
1 | sudo nano /etc/default/grub |
找到这一行:
1 | GRUB_DEFAULT=0 |
改为:
1 | GRUB_DEFAULT="2>4" |
(注意:这里的 2>4 是示例,你要根据你实际的编号替换)
1 | sudo update-grub |
1 | sudo reboot |
hold 状态的内核不会被自动更新,这是好事,如果你需要它长期稳定。
如果你之后想取消 hold,可以用:
1 | sudo apt-mark unhold linux-image-5.4.0-150-generic |
完成后你可以用 uname -r 确认当前正在运行的内核版本是否为 5.4.0-150-generic。
vmstat 1 输出中,cs 列 表示每秒上下文切换次数,结合 4 核 8GB Ubuntu 20.04 系统,判断方法如下:
1 | vmstat 1 |
输出示例:
plaintext
1 | procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- |
cs:每秒上下文切换次数| 系统负载状态 | 正常 cs 值范围 |
|---|---|
| 轻负载(无高并发进程) | 几百~几千 |
| 中负载(常规服务运行) | 几千~几万 |
| 高负载(高并发 / 多线程程序) | 几万~几十万(需结合其他指标) |
4 核 8GB Ubuntu 20.04:无高并发服务时,
cs稳定在 1000 以内 属正常;运行 Web / 数据库等服务,cs几万内且无性能卡顿也可接受。
cs 数值 突然飙升(如从几千涨到几十万)%us(用户 CPU)/ %sy(内核 CPU)升高、r(等待运行进程数)持续大于核数1 | # 1. 查看进程上下文切换详情(cswch自愿,nvcswch非自愿) |
cs 无绝对 “正常值”,核心看 是否稳定 + 是否伴随性能问题(卡顿、延迟高)。4 核 8GB 系统,无高并发时 cs
过高(如几十万)大概率异常,需排查多线程程序或系统瓶颈~
1 | procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- |
WinCC 从V7.5 版本之后,对于所有的通信连接,可以自动创建通信连接的状态变量,用于显示通信连接的状态或者控制通信的断/开。
在变量管理器中选择所要组态的通信连接,点击鼠标右键(①),在菜单中选择“创建启用/禁用变量”(②)。可以看到在内部变量“ConnectionStates”变量组下,相应连接的2个状态变量已经被创建(③)。变量名的格式为“@Connectionname@ConnectionStateEx”
和 “@Connectionname@ForceConnectionStateEx”,数据类型都是“无符号32位值”。

其中, “@Connectionname@ForceConnectionStateEx” 用来建立/断开通信连接,设置为1:建立连接,设置为0:断开连接。此变量默认初始值设置为1。
“@Connectionname@ConnectionStateEx” 用来反馈通信连接状态, 值为1时代表连接已经建立,值为0时代表连接已经断开。
WinCC V7.3及其之后的版本中的“SIMATIC S7-1200,S7-1500 Channel”通道支持通信连接状态变量,但组态步骤和WinCC
V7.5有所不同。具体组态方法如下:
需要在连接下手动创建变量 “@Connectionname@ForceConnectionState” 和 “@Connectionname@ConnectionState”。

这两个变量用法和WinCC V7.5相同, “@Connectionname@ForceConnectionState” 用来建立/断开通信连接,设置为1:建立连接,设置为0:断开连接。此变量默认初始值设置为1。
“@Connectionname@ConnectionState” 用来反馈通信连接状态, 值为1时代表连接已经建立,值为0时代表连接已经断开。
注意,这里的系统变量使用PLC中没有用到的地址,只是占用相应的PLC地址而不会实际改变PLC地址的值。例如,设置上图中的变量“@S71500@ForceConnectionState”为1,“S71500”连接会建立,但PLC中的MD204的值不会随着变为1。
WinCC 自带“@连接名@ConnectionState”系统变量,
0=离线 1=在线;
把它做在画面上或脚本里,就能第一时间知道设备是否掉线,
比盯着过程值可靠得多。


ConnectionEstablishMode
@ConnectionEstablishMode 并不是在 WinCC 的“变量管理”里手动建出来的普通变量,
而是通道在创建时自动生成的“系统变量”。
想找到它,只要打开:
WinCC 资源管理器 → 变量管理 →
展开你正在用的那条 S7 通道(如“OMS+”或“SIMATIC S7-1200/1500”)→
再展开下面的某个“连接”→
右侧窗口里就能看到名字以“@”开头的系统变量列表,
其中就有 @ConnectionEstablishMode(数据类型 DWORD,默认值 1)[29^]。
如果列表里没看到,把列宽拉大一点或把“系统变量”筛选打开即可。
在 WinCC 里,OMS+ 通道本身没有“一键重连”按钮,想让 S7-1200/1500 的采集通道在断线后重新握手,有两种办法——“让它自己连”或“手动踢它一脚”。
自动重连(推荐)
把系统变量 @ConnectionEstablishMode 置为 1(缺省就是 1),通道会每 4 s 自动尝试重建连接,无需干预 。
手动触发重连
① 强制断开:把 @ForceConnectionState 先写 0,已建立的连接会立即断开;
② 再次建立:再把 @ForceConnectionState 写 1,通道立即按组态参数重新连接 。
如果同时想换 IP 或访问点,可先把新地址写入 @AlternateConnectionAddress,再把 @ForceConnectionAddress 切换一次
0→1,也能达到“断开-重连”的效果 。
脚本里一般用 C 动作或 VBS 给这几个内部变量赋新值即可,触发一次执行一次重连流程
谷歌浏览器如何导出书签
?众所周知谷歌浏览器是一款强大的浏览工具,这款浏览器界面简洁,可以安装各式各样好用的插件,我们还能对浏览器进行个性化设置,在这款浏览器里添加的书签可以导出来,在其他的浏览器里打开,不少用户刚开始使用这款浏览器,还不清楚如何将书签导出。本篇文章就给大家带来轻松导出谷歌浏览器书签导出详细步骤,有需要的朋友不妨来跟着我一起学习看看。

1、第一步,我们打开谷歌浏览器电脑版,然后在浏览器页面右上角点击打开三个竖点图标

2、第二步,打开三个竖点图标之后,我们在菜单列表中打开“书签和清单”选项,再在子菜单列表中打开“书签管理器
”选项

3、第三步,在书签管理器页面中,我们点击打开页面右上角的管理图标

4、第四步,打开书签管理器页面的管理图标之后,我们在菜单列表中打开“导出书签”选项

5、第五步,最后在文件夹页面中,我们选择好保存位置,再设置好书签文件名,最后点击“保存”选项即可

以上就是《谷歌浏览器如何导出书签》的详细内容啦,感谢大家的阅读,希望这篇文章可以帮助到大家。