gpt4 book ai didi

在Linux系统中启用Intel Rapid Start的方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 36 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章在Linux系统中启用Intel Rapid Start的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

Intel Rapid Start 是 Intel 公司研发的一种帮助笔记本电脑节省电源和快速恢复的技术,与传统的睡眠(Sleep)和休眠(Hibernate)有一定的区别,相较而言,与混合睡眠(Hybrid Sleep)倒是有一些相似的地方。Intel 说,这技术首先要主板支持,其次要有 SSD,最后要有 Windows。但其实 SSD 和 Windows 都不是必须的。昨天,我就在 HDD + Linux 的组合里成功地使用了 Intel Rapid Start.

1、Intel Rapid Start 原理 。

其实 Intel Rapid Start 的原理很简单,就是让计算机在传统的睡眠(Sleep)的基础上有机会进入更深层的睡眠(Deep Sleep),用户可以通过 BIOS 设置一个超时,比如一分钟、十分钟、半个小时等(也可以设置「立即」),当计算机进入睡眠状态之后,计时开始,如果用户在计时到达之前唤醒了计算机,那就啥也没发生,如果预定时间达到,则计算机会被浅唤醒(wake up briefly),将内存中的数据写入硬盘(官方文档指 SSD)中的一个特定分区,然后彻底断电。在这之后,用户只能通过按电源键的方式开机,主板固件会把特定分区中的内容读回内存,然后计算机就可以继续使用了.

总结一下,Intel Rapid Start 技术(IRST)的前半段与普通的睡眠是一样的,而后半段则与休眠(Hibernate)类似,但是休眠是由操作系统完成的,而 IRST 则是由主板固件(BIOS 或 UEFI)去完成这一操作,也就是说,在加电自检(POST)之后,直接就是从硬盘中读取内容的过程了,根本没有引导器(Boot loader)和操作系统的加载过程,因此比操作系统级别的休眠要快不少,再加上 SSD 的应用,就更加快了,这就是 Intel 所宣称的「六秒恢复」。按照我的理解,就是恢复速度和睡眠一样快,但是耗电和休眠一样低(零耗电).

Intel 的官方文档提到该技术需要 SSD + Windows,可是我没看出其中的必要性:SSD 是为了加速,如果用 HDD 代替的话除了慢点也没啥问题,而 Windows 呢?令人兴奋的是,2013年6月的时候,Linux 开发者 Matthew Garrett 就提交了一个内核补丁,实现了 Linux 内核对此的支持。该补丁已在 Linux 3.11 中得到了应用,而截至我写这篇文章时,最新的 Linux 内核版本已经是 3.12.6 了,显然可以使用。 2、调整分区 。

我的计算机是 ThinkPad X240s,该型号内部有一个 SATA 和两个 NGFF 接口,后者是 Intel 推的新接口,可以用来接蓝牙、3G 等模块,也可以用来接 NGFF 接口的 SSD。最理想的配置应该是 SATA 接口用来接 HDD 而 NGFF 用来接 SSD,这样的版本是已经配置好 Intel Rapid Start 的。我的这个版本 SATA 接口上接了一块 500GB 7200 转的机械硬盘,一个 NGFF 接了 WiFi + 蓝牙,另一个 NGFF 是空的。也就是说,没有 SSD,自然默认也没得用 Intel Rapid Start。但除了淘宝一块小而贵的 NGFF SSD 之外没有别的方法了吗?当然不是。仔细阅读 Intel Rapid Start 的用户手册就会发现,它提到主板固件是通过分区标识符来找寻 IRST 分区的,对于 GPT,是 D3BFE2DE-3DAF-11DF-BA-40-E3A556D89593,对于 MBR 则是 0x84.

调整前我的分区结构是这样的:

    。

复制代码

代码如下

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465,8G 0 disk 
├─sda1 8:1 0 2M 0 part 
├─sda2 8:2 0 200M 0 part /boot
├─sda3 8:3 0 50G 0 part 
│ └─crypt-sda3 254:0 0 50G 0 crypt /
└──sda4 8:4 0 415,6G 0 part 
└─crypt-sda4 254:1 0 415,6G 0 crypt /home

  。

整块硬盘 465 GiB 使用 GPT 分为四个区,开头 2 MiB 用来存放 GRUB,之后 200 MiB 是 /boot,然后是 50 GiB 和 /,最后剩下的 415.6 GiB 用作 /home。其中 sda3 和 sda4 都是 LUKS 容器。我的目的是要把 sda4 调整为 400 GiB,然后把剩下的 15.6 GiB 划为 sda5,作为 IRST 分区.

由于 sda4 是 GPT + LUKS + ext4 三层嵌套结构,所以需要一层一层地缩小它们,然后再一层一层地撑大它们到合适的位置.

    。

复制代码

代码如下

# 把 /home 卸载
umount /home
# 调整文件系统前必须要先检查文件系统
e2fsck -f /dev/mapper/crypt-sda4
# 缩小文件系统至 398 GiB
resize2fs -p /dev/mapper/crypt-sda4 398G
# 缩小 LUKS 容器至 399 GiB
# 换算成 512 KiB 的区块是 399 * 1024 * 1024 * 2 = 836763648
cryptsetup resize crypt-sda4 836763648
# 将 sda4 分区调整为 400 GiB
# 并用剩余的空间建立 sda5
# 建立的时候分区标识符输入 8400
gdisk /dev/sda
# 重启计算机使内核使用新的分区表
reboot
# 再次卸载 /home
umount /home
# 放大 LUKS 容器撑满 sda4
cryptsetup resize crypt-sda4
# 检查文件系统
e2fsck -f /dev/mapper/crypt-sda4
# 放大文件系统至撑满 LUKS 容器
resize2fs -p /dev/mapper/crypt-sda4
# 挂载测试
mount /dev/mapper/crypt-sda4 /home

  。

调整完成后,就是这样的效果了:

    。

复制代码

代码如下

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465,8G 0 disk 
├─sda1 8:1 0 2M 0 part 
├─sda2 8:2 0 200M 0 part /boot
├─sda3 8:3 0 50G 0 part 
│ └─crypt-sda3 254:0 0 50G 0 crypt /
├─sda4 8:4 0 400G 0 part 
│ └─crypt-sda4 254:1 0 400G 0 crypt /home
└─sda5 8:5 0 15,6G 0 part

Number Start (sector) End (sector) Size Code Name
1 2048 6143 2.0 MiB EF02 BIOS boot partition
2 6144 415743 200.0 MiB 8300 Linux filesystem
3 415744 105273343 50.0 GiB 8300 LUKS partition
4 105273344 944134143 400.0 GiB 8300 LUKS partition
5 944134144 976773134 15.6 GiB 8400 Intel Rapid Start

  。

3、设置主板固件(BIOS/UEFI) 。

这一步视不同的制造商自有不同,但主旨就是找到 BIOS/UEFI 中有关 Intel Rapid Start 的设置,将之开启。在完成以上步骤之前,这一选项是不可开启的状态,会提示没有找到合适的存储设备,但是在完成了上述步骤之后,固件就会根据 GUID 找到 IRST 分区,从而允许开启这一功能。至于多久后启用,就是个人爱好了,我选择的是「立即」,也就是相当于用 IRST 代替了睡眠(Sleep)功能。 4、测试 。

为了测试效果明显,可以先用 dd_rescue 把 sda5 清空一下:dd_rescue /dev/zero /dev/sda5。可以用诸如 head -c 1G /dev/sda5 之类的命令检验一下.

准备完成之后开始测试:echo -n mem > /sys/power/state 将系统挂起至内存(S3,睡眠)→系统顺利睡眠→系统被短暂唤醒并将内存中的内容写入 IRST 分区,此时如果仔细听可以听到机械硬盘写入的声音→写入完成,系统断电停机.

断电停机之后,用户只能通过按电源键把计算机唤醒。按下电源键后可观察到 BIOS/UEFI 上显示类似 Resuming from deep sleep ... 字样,说明这一恢复过程是由固件完成的,与操作系统无关。恢复完成后,直接回复到进入睡眠之前的样子。此时使用 head /dev/sda5 可观察到大量输出,说明 sda5 的确被写入了.

至此 IRST 部署成功.

最后此篇关于在Linux系统中启用Intel Rapid Start的方法的文章就讲到这里了,如果你想了解更多关于在Linux系统中启用Intel Rapid Start的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com