自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在 GNU/Linux 啟用 Intel Rapid Start?

運維 系統(tǒng)運維
Intel Rapid Start 是 Intel 公司研發(fā)的一種幫助筆記本電腦節(jié)省電源和快速恢復的技術,這技術首先要主板支持,其次要有 SSD,最后要有 Windows。本文中作者成功地在GNU/Linux 啟用 Intel Rapid Start,下面將方法分享給大家。

Intel Rapid Start 是 Intel 公司研發(fā)的一種幫助筆記本電腦節(jié)省電源和快速恢復的技術,與傳統(tǒng)的睡眠(Sleep)和休眠(Hibernate)有一定的區(qū)別,相較而言,與混合睡眠(Hybrid Sleep)倒是有一些相似的地方。Intel 說,這技術首先要主板支持,其次要有 SSD,***要有 Windows。但其實 SSD 和 Windows 都不是必須的。昨天,我就在 HDD + Linux 的組合里成功地使用了 Intel Rapid Start。

[[109648]]

一、Intel Rapid Start 原理

其實 Intel Rapid Start 的原理很簡單,就是讓計算機在傳統(tǒng)的睡眠(Sleep)的基礎上有機會進入更深層的睡眠(Deep Sleep),用戶可以通過 BIOS 設置一個超時,比如一分鐘、十分鐘、半個小時等(也可以設置「立即」),當計算機進入睡眠狀態(tài)之后,計時開始,如果用戶在計時到達之前喚醒了計算機,那就啥也沒發(fā)生,如果預定時間達到,則計算機會被淺喚醒(wake up briefly),將內存中的數(shù)據(jù)寫入硬盤(官方文檔指 SSD)中的一個特定分區(qū),然后徹底斷電。在這之后,用戶只能通過按電源鍵的方式開機,主板固件會把特定分區(qū)中的內容讀回內存,然后計算機就可以繼續(xù)使用了。

總結一下,Intel Rapid Start 技術(IRST)的前半段與普通的睡眠是一樣的,而后半段則與休眠(Hibernate)類似,但是休眠是由操作系統(tǒng)完成的,而 IRST 則是由主板固件(BIOS 或 UEFI)去完成這一操作,也就是說,在加電自檢(POST)之后,直接就是從硬盤中讀取內容的過程了,根本沒有引導器(Boot loader)和操作系統(tǒng)的加載過程,因此比操作系統(tǒng)級別的休眠要快不少,再加上 SSD 的應用,就更加快了,這就是 Intel 所宣稱的「六秒恢復」。按照我的理解,就是恢復速度和睡眠一樣快,但是耗電和休眠一樣低(零耗電)。

Intel 的官方文檔提到該技術需要 SSD + Windows,可是我沒看出其中的必要性:SSD 是為了加速,如果用 HDD 代替的話除了慢點也沒啥問題,而 Windows 呢?令人興奮的是,2013年6月的時候,Linux 開發(fā)者 Matthew Garrett 就提交了一個內核補丁,實現(xiàn)了 Linux 內核對此的支持。該補丁已在 Linux 3.11 中得到了應用,而截至我寫這篇文章時,***的 Linux 內核版本已經(jīng)是 3.12.6 了,顯然可以使用。

二、調整分區(qū)

我的計算機是 ThinkPad X240s,該型號內部有一個 SATA 和兩個 NGFF 接口,后者是 Intel 推的新接口,可以用來接藍牙、3G 等模塊,也可以用來接 NGFF 接口的 SSD。最理想的配置應該是 SATA 接口用來接 HDD 而 NGFF 用來接 SSD,這樣的版本是已經(jīng)配置好 Intel Rapid Start 的。我的這個版本 SATA 接口上接了一塊 500GB 7200 轉的機械硬盤,一個 NGFF 接了 WiFi + 藍牙,另一個 NGFF 是空的。也就是說,沒有 SSD,自然默認也沒得用 Intel Rapid Start。但除了淘寶一塊小而貴的 NGFF SSD 之外沒有別的方法了嗎?當然不是。仔細閱讀 Intel Rapid Start 的用戶手冊就會發(fā)現(xiàn),它提到主板固件是通過分區(qū)標識符來找尋 IRST 分區(qū)的,對于 GPT,是 D3BFE2DE-3DAF-11DF-BA-40-E3A556D89593,對于 MBR 則是 0x84。

調整前我的分區(qū)結構是這樣的:

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 分為四個區(qū),開頭 2 MiB 用來存放 GRUB,之后 200 MiB 是 /boot,然后是 50 GiB 和 /,***剩下的 415.6 GiB 用作 /home。其中 sda3 和 sda4 都是 LUKS 容器。我的目的是要把 sda4 調整為 400 GiB,然后把剩下的 15.6 GiB 劃為 sda5,作為 IRST 分區(qū)。

由于 sda4 是 GPT + LUKS + ext4 三層嵌套結構,所以需要一層一層地縮小它們,然后再一層一層地撐大它們到合適的位置。

# 把 /home 卸載
umount /home
# 調整文件系統(tǒng)前必須要先檢查文件系統(tǒng)
e2fsck -f /dev/mapper/crypt-sda4
# 縮小文件系統(tǒng)至 398 GiB
resize2fs -p /dev/mapper/crypt-sda4 398G
# 縮小 LUKS 容器至 399 GiB
# 換算成 512 KiB 的區(qū)塊是 399 * 1024 * 1024 * 2 = 836763648
cryptsetup resize crypt-sda4 836763648
# 將 sda4 分區(qū)調整為 400 GiB
# 并用剩余的空間建立 sda5
# 建立的時候分區(qū)標識符輸入 8400
gdisk /dev/sda
# 重啟計算機使內核使用新的分區(qū)表
reboot
# 再次卸載 /home
umount /home
# 放大 LUKS 容器撐滿 sda4
cryptsetup resize crypt-sda4
# 檢查文件系統(tǒng)
e2fsck -f /dev/mapper/crypt-sda4
# 放大文件系統(tǒng)至撐滿 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

三、設置主板固件(BIOS/UEFI)

這一步視不同的制造商自有不同,但主旨就是找到 BIOS/UEFI 中有關 Intel Rapid Start 的設置,將之開啟。在完成以上步驟之前,這一選項是不可開啟的狀態(tài),會提示沒有找到合適的存儲設備,但是在完成了上述步驟之后,固件就會根據(jù) GUID 找到 IRST 分區(qū),從而允許開啟這一功能。至于多久后啟用,就是個人愛好了,我選擇的是「立即」,也就是相當于用 IRST 代替了睡眠(Sleep)功能。

四、測試

為了測試效果明顯,可以先用 dd_rescue 把 sda5 清空一下:dd_rescue /dev/zero /dev/sda5。可以用諸如 head -c 1G /dev/sda5 之類的命令檢驗一下。

準備完成之后開始測試:echo -n mem > /sys/power/state 將系統(tǒng)掛起至內存(S3,睡眠)→系統(tǒng)順利睡眠→系統(tǒng)被短暫喚醒并將內存中的內容寫入 IRST 分區(qū),此時如果仔細聽可以聽到機械硬盤寫入的聲音→寫入完成,系統(tǒng)斷電停機。

斷電停機之后,用戶只能通過按電源鍵把計算機喚醒。按下電源鍵后可觀察到 BIOS/UEFI 上顯示類似 Resuming from deep sleep ... 字樣,說明這一恢復過程是由固件完成的,與操作系統(tǒng)無關?;謴屯瓿珊?,直接回復到進入睡眠之前的樣子。此時使用 head /dev/sda5 可觀察到大量輸出,說明 sda5 的確被寫入了。

至此 IRST 部署成功。

五、擴展閱讀

責任編輯:黃丹 來源: wzyboy
相關推薦

2022-05-20 13:46:36

Linux激活Linux水印

2022-10-21 10:31:36

Arch LinuxSnap

2018-03-06 11:15:00

Linux命令行微碼

2019-04-22 11:50:38

LinuxFlatpak

2016-12-16 09:23:29

LinuxShell腳本

2017-04-19 22:00:40

UbuntuLinux Mint桌面共享

2024-11-26 08:09:40

2018-04-09 09:45:09

Windows 10休眠

2022-04-01 09:00:00

Linux安全SSH

2011-08-01 17:30:06

ActiveDirec組策略磁盤配額

2022-06-17 16:38:07

MozillaFirefoxcookie

2020-12-07 13:23:07

LibreOffice開源

2011-06-07 10:15:38

GNULinux

2010-01-22 11:06:03

GNUkFreeBSDLinux

2009-06-29 09:44:39

LinuxDebianGNU

2009-12-14 13:31:56

GNULinuxvmware

2022-06-14 09:33:15

LinuxGNU Emacs命令

2009-12-10 16:26:49

GNULinux

2015-11-30 14:33:36

Intel GraphLinuxUbuntu

2019-12-11 10:20:13

Windows 10鼠標指針Windows
點贊
收藏

51CTO技術棧公眾號