惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
Recorded Future
Recorded Future
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The GitHub Blog
The GitHub Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Microsoft Azure Blog
Microsoft Azure Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
M
MIT News - Artificial intelligence
云风的 BLOG
云风的 BLOG
Y
Y Combinator Blog
N
News | PayPal Newsroom
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Help Net Security
Help Net Security
博客园 - Franky
SecWiki News
SecWiki News
Recent Announcements
Recent Announcements
T
Troy Hunt's Blog
The Register - Security
The Register - Security
The Last Watchdog
The Last Watchdog
Webroot Blog
Webroot Blog
S
Security Affairs
博客园 - 司徒正美
S
Schneier on Security
I
InfoQ
博客园_首页
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Threat Research - Cisco Blogs
Forbes - Security
Forbes - Security
腾讯CDC
N
Netflix TechBlog - Medium
N
News and Events Feed by Topic
Cloudbric
Cloudbric
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
Recent Commits to openclaw:main
Recent Commits to openclaw:main
B
Blog
V
Vulnerabilities – Threatpost
C
Check Point Blog
Google DeepMind News
Google DeepMind News
Google Online Security Blog
Google Online Security Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
Cisco Blogs
Schneier on Security
Schneier on Security
O
OpenAI News
K
Kaspersky official blog

mephisto.cc

修复rime-ice无法弹出候选框的问题 开机滚动字体显示优化 个人网站安全防护 树莓派上部署Vaultwarden 使用goaccess实时分析Caddy日志 个人网站监控 Hugo全站AVIF记 Linux下尝试使用Godot开发小游戏 Arch linux dae 透明代理 Airflow接管galler-dl下载任务 如何使用gallery-dl批量下载图像 Arch核显下如何愉快玩Dota2和CS2 Arch/labwc 环境网络相关设置 Rime添加dota2词库 Arch 重装记录 Supertuxkart iOS版终于发布了 打造自己的流媒体音乐服务 剪切板管理工具clipcat推荐 MangoHud性能监控 微信小程序开发记 Rofi试用 解决Arch下VSCode无法输入中文的问题 独立窗口管理器下无法录屏问题处理 上海市二手房成交数据监控 OpenLDAP监控 Arch linux如何顺畅连接蓝牙设备 使用Git和Ansible管理配置文件 Arch Linux SSL VPN 客户端配置 简单获取celery任务实时结果 Arch linux下iNode客户端的安装和使用方法 券商费率调整记 迷你主机组装记 Labwc更换定制皮肤 树莓派跑分流代理 实用自动代理配置示例 九年老鼠标复活记 Openvpn示例 Mac下如何旋转webp图片 如何隐藏Vscode中Markdown PDF插件的头部内容 解决Linux下网络配置无法变更保存的问题 labwc环境启用wlogout Ubuntu下新官方微信尝鲜 简单检测用户是否开启广告屏蔽 Atuin ZFS下卡顿问题解决 Wine安装64位微信 Fish 和 Atuin使用记 Fastapi简单实现临时下载链接 Fastapi微信公众号开发简要 Hugo根据语种展示不同内容 如何修复Waybar微信图标错误 信封加密简要 Linux环境下维护公众号记录 快速隐藏和呼出终端 Wayland环境自动切换壁纸 SuperTuxKart 试玩 简单抓取雪球股票快讯 为什么你的kill命令不能列出信号表 Wine安装微信保姆教程 Hysteria科学上网简要 Ubuntu 23.10 钉钉无法启动解决方法 网站导航栏防止插入Adsense自动广告 Linux环境按键检测 Hugo文末添加最后修改时间 Wayland环境ksnip无法复制问题解决 我眼中的股票市场 Caddy简单图片防盗链 greetd和regreet使用教程 Wayland环境下截图加后期修改 Wayland 环境下gif录屏 Firefox的一些有趣功能 Ubuntu 切换系统语言 Firefox 标题栏高度调整 网站添加回到顶部功能 Hugo自定义字体 Labwc 便捷配置 Wofi使用教程 窗口管理器labwc使用记 文件共享软件Dufs推荐 Hugo静态站点接入Adsense广告 Fcitx5配置详解 Ubuntu安装chrome的方法总结 一种Xterm.js的全屏方案 Google网址收录api Python示例 手机听离线音乐 Snipe it资产导入 应用启动器yofi使用配置 Snipe it资产管理系统安装使用 Vue3 vite TypeScript跨域等相关设置 Ubuntu手动升级Libreoffice Ubuntu设置alacritty为默认终端 简体文章批量转换为繁体 使用Inkscape调整svg图片大小 实用命令 使用mitmproxy给手机app抓包 Python中rstrip方法细解 Github同主机多仓库部署deploy key问题处理 Linux安装最新版本Python KeePassXC使用教程 Ubuntu 22.10连接蓝牙耳机报错br-connection-profile-unavailable解决方法 Caddy日志配置轮转和格式化
Ubuntu开机启动加速
2023-03-09 · via mephisto.cc

日常使用Linux工作,随着时间增长,开机启动速度逐渐下降,Ubuntu这个发行版包含Snap,更是拖慢了启动速度。虽然开机启动速度大部分由硬件配置决定,但后天的软件环境配置优化,保持好的使用习惯也很重要。

下面是我搜查出来的常用加快开机速度的方法:

1. GRUB_TIMEOUT 设置

意思为多少秒后grub菜单消失,默认5s,为了兼顾可配置性和速度,我选择2s,0就是直接跳过走到下一步了。英文解释如下:

‘GRUB_TIMEOUT’

Boot the default entry this many seconds after the menu is displayed, unless a key is pressed. The default is ‘5’. Set to ‘0’ to boot immediately without displaying the menu, or to ‘-1’ to wait indefinitely.

 1➜  ~ egrep -v '^#|^$' /etc/default/grub
 2GRUB_DEFAULT="0"
 3GRUB_TIMEOUT_STYLE="menu"
 4GRUB_TIMEOUT=2
 5GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
 6GRUB_CMDLINE_LINUX_DEFAULT=""
 7GRUB_CMDLINE_LINUX=""
 8GRUB_GFXMODE="1920x1440x32"
 9export GRUB_COLOR_NORMAL="light-gray/black"
10export GRUB_COLOR_HIGHLIGHT="magenta/black"
11GRUB_THEME="/boot/grub/themes/ubuntu-/theme.txt"

每次修改grub后要运行 sudo update-grub 使其生效。

请注意,任何时候改动grub都要十分小心,不了解的更要谨慎,因为有可能进入了不了系统,修复较为麻烦,高手除外。

2. systemd-analyze 分析系统服务启动

根据下面的命令判定哪个程序导致的启动慢,无用的sudo systemctl disable xxx.service停用掉。

  • systemd-analyze 打印启动时间信息
  • systemd-analyze blame 服务启动耗时从大到小排序(参考)
  • systemd-analyze critical-chain 拖累启动速度的致命链(真正需要关心的)
  • systemd-analyze plot > ~/boot.svg 生成一张启动详细信息矢量图(彩图关注红色的部分)
 1➜  ~ systemd-analyze
 2Startup finished in 7.103s (firmware) + 4.614s (loader) + 19.164s (kernel) + 8.308s (userspace) = 39.191s
 3graphical.target reached after 7.992s in userspace.
 4➜  ~ systemd-analyze blame | head -n 10
 51.860s systemd-udev-settle.service
 61.686s zfs-volume-wait.service
 71.683s zfs-mount.service
 8 680ms lm-sensors.service
 9 605ms accounts-daemon.service
10 553ms dnsmasq.service
11 490ms systemd-logind.service
12 480ms udisks2.service
13 427ms ModemManager.service
14 341ms systemd-udev-trigger.service
15➜  ~ systemd-analyze critical-chain
16The time when unit became active or started is printed after the "@" character.
17The time the unit took to start is printed after the "+" character.
18
19graphical.target @7.992s
20└─multi-user.target @7.989s
21  └─kerneloops.service @7.952s +33ms
22    └─nss-lookup.target @7.948s
23      └─dnsmasq.service @7.392s +553ms
24        └─network.target @7.339s
25          └─NetworkManager.service @7.146s +191ms
26            └─dbus.service @6.989s +103ms
27              └─basic.target @6.956s
28                └─sockets.target @6.955s
29                  └─virtlogd-admin.socket @6.954s
30                    └─virtlogd.socket @6.953s
31                      └─sysinit.target @6.926s
32                        └─systemd-timesyncd.service @6.809s +116ms
33                          └─systemd-tmpfiles-setup.service @6.753s +46ms
34                            └─local-fs.target @6.743s
35                              └─zfs-mount.service @5.059s +1.683s
36                                └─boot.mount @5.034s +17ms
37                                  └─local-fs-pre.target @2.816s
38                                    └─systemd-tmpfiles-setup-dev.service @2.794s +20ms
39                                      └─systemd-sysusers.service @2.773s +19ms
40                                        └─systemd-remount-fs.service @2.641s +111ms
41                                          └─systemd-journald.socket @2.523s
42                                            └─system.slice @2.485s
43                                              └─-.slice @2.485s

值得一提的是snap的软件通常会启动很多loopxx.device的服务,特别拖累启动速度,我反正不用snap的软件,直接删除。

1sudo apt-get purge snapd

3. 开机启动软件核对

按键盘的'win'键(左下角ctrl和alt之间),搜索启动'Startup Applications'软件,删除掉不必要的开启启动软件,只保留必须的,轻装上路跑得快啊。

Startup Applications

4. 去掉非必要enabled的开机启动服务

列出系统中enabled的,挨个查看,根据自身状况,明确不要的去掉

1systemctl list-unit-files --state=enabled

比如这个打印机相关的,我的工作电脑不需要(公司是云打印的)可关掉 sudo systemctl disable cups-browsed.service

这样一通操作下来后,一般能够优化不少启动时间,有人可能要说,我是做嵌入式相关,可以自己裁剪内核,各种优化启动,这个不在本文的讨论范围内(此文受众是普通Linux桌面用户)。

另外,谈到Linux的启动不得不说下 plymouth-quit-wait.serviceapt-daily.service, 其实这两个服务都不影响启动速度,分别参考这2个链接 plymouthapt-daily

验证方法:

1systemctl list-dependencies plymouth-quit-wait.service
2systemctl list-dependencies --reverse apt-daily

接着,来说下这个plymouth,很多次看到这个名字的时都很迷惑,直到深入挖掘才知这背后的故事非常有趣。一开始我以为是 ply + mouth偶尔疑惑(ply是什么的缩写 + 嘴),其实它是英国的海港城市Plymouth(普利茅斯) ^_^.

为什么Plymouth和Linux的启动有关系呢?维基百科的解释:

Plymouth is a free application which provide bootsplash for Linux, The program is named after Plymouth Rock, a name which symbolizes the program's role as a first point of entry for users to interact with a computer system.

意思说,Plymouth就是Linux的启动动画程序(类比Windows、Mac等品牌Logo闪耀登场的那段动画效果),Plymouth的典故来自Plymouth Rock叫普利茅斯岩,又叫移民石,现在是美国的一个人文景点,新大陆的第一快落脚石类比第一个给用户交互的计算机程序。

移民石背景故事:

了解美国历史的人都知道,美国历史是由一群英国来的清教徒开始的,普利茅斯就是他们落脚的第一块土地。普利茅斯位于美国马萨诸塞州,距离波士顿约一小时车程。

1620年9月,一些英国清教徒因不堪忍受当时欧洲大陆的宗教压迫,从英国普利茅斯乘坐渔船离开英国前往美洲殖民地,为的是追求更自由的信仰。这些清教徒只凭借有限的航海知识横渡大西洋,长时间的漂泊加上捉摸不定的天气因素,其他船都沉了,只有“五月花号”成功登陆了新英格兰的土地。他们把这块土地命名为他们离开的地方——普利茅斯,美国的历史从此被写下。第一个寒冬,尚未开垦的土地上资源十分有限,这批清教徒很多都死于疾病和饥饿。危急关头印第安人送来了火鸡等食物,让剩下的人勉强撑了下来,幸运的是第二年他们就获得了大丰收。为了感谢上帝赐予的丰收和印第安人的馈赠,举行了狂欢活动,这也正是感恩节的雏形。

为了纪念登陆,他们用一块刻著1620的礁石在当年登陆的土地上。如今这片土地已经被美国作为国家公园保护起来,工作人员全都穿著17世纪的衣服,以逼真的中世纪方言与腔调和你交谈。在这里看到的所有事物,几乎都是17世纪风格的完整翻版

Plymouth的作者是Ray Strode,是一个在RedHat工作的美国工程师,美国工程师用美国典故,没毛病。

移民石图片:

Plymouth rock

最后,有人喜欢开机动画,有人不喜欢,怎么设置不显示开机动画呢?不显示开机动画的话,就是命令行显示开机启动过程,我个人喜欢,每天看几眼或许能发现潜在问题。

变动grub配置文件/etc/default/grub

修改前:

1GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

修改后:

1GRUB_CMDLINE_LINUX_DEFAULT=""

文件示例:

 1➜  ~ egrep -v '^#|^$' /etc/default/grub
 2GRUB_DEFAULT="0"
 3GRUB_TIMEOUT_STYLE="menu"
 4GRUB_TIMEOUT=2
 5GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
 6GRUB_CMDLINE_LINUX_DEFAULT=""
 7GRUB_CMDLINE_LINUX=""
 8GRUB_GFXMODE="1920x1440x32"
 9export GRUB_COLOR_NORMAL="light-gray/black"
10export GRUB_COLOR_HIGHLIGHT="magenta/black"
11GRUB_THEME="/boot/grub/themes/ubuntu-/theme.txt"

GRUB_GFXMODE="1920x1440x32" 这个控制启动终端分辨率,后面的参数来自(每个人的情况不同):

 1➜  ~ sudo hwinfo --framebuffer
 2[sudo] password for mephisto:
 302: None 00.0: 11001 VESA Framebuffer
 4  [Created at bios.459]
 5  Unique ID: rdCR.jB2oURqGEo2
 6  Hardware Class: framebuffer
 7  Model: "Intel(R) SKL Mobile/Desktop Graphics Controller"
 8  Vendor: "Intel Corporation"
 9  Device: "Intel(R) SKL Mobile/Desktop Graphics Controller"
10  SubVendor: "Intel(R) SKL Mobile/Desktop Graphics Chipset Accelerated VGA BIOS"
11  SubDevice:
12  Revision: "Hardware Version 0.0"
13  Memory Size: 31 MB + 960 kB
14  Memory Range: 0x00000000-0x01feffff (rw)
15  Mode 0x033c: 1920x1440 (+1920), 8 bits
16  Mode 0x034d: 1920x1440 (+3840), 16 bits
17  Mode 0x035c: 1920x1440 (+7680), 24 bits
18  Mode 0x033a: 1600x1200 (+1600), 8 bits
19  Mode 0x034b: 1600x1200 (+3200), 16 bits
20  Mode 0x035a: 1600x1200 (+6400), 24 bits
21  Mode 0x0307: 1280x1024 (+1280), 8 bits
22  Mode 0x031a: 1280x1024 (+2560), 16 bits
23  Mode 0x031b: 1280x1024 (+5120), 24 bits
24  Mode 0x0305: 1024x768 (+1024), 8 bits
25  Mode 0x0317: 1024x768 (+2048), 16 bits
26  Mode 0x0318: 1024x768 (+4096), 24 bits
27  Mode 0x0312: 640x480 (+2560), 24 bits
28  Mode 0x0314: 800x600 (+1600), 16 bits
29  Mode 0x0315: 800x600 (+3200), 24 bits
30  Mode 0x0301: 640x480 (+640), 8 bits
31  Mode 0x0303: 800x600 (+832), 8 bits
32  Mode 0x0311: 640x480 (+1280), 16 bits
33  Mode 0x037d: 0x0 (+0), 8 bits
34  Mode 0x037e: 0x0 (+0), 16 bits
35  Mode 0x037f: 0x0 (+0), 24 bits
36  Config Status: cfg=new, avail=yes, need=no, active=unknown

再次提醒,修改grub配置要小心,改动后要运行 sudo update-grub