如何防止Linux内核从睡眠中唤醒辅助HDD


11

有没有一种方法可以指示(Linux)内核在系统睡眠/唤醒周期后不唤醒辅助硬盘?我之所以问是因为,在我的笔记本电脑中,我有一个SSD作为主驱动器,其中包含系统根目录和一个辅助HDD,其中保留着备用系统和我偶尔会访问的文件。由于笔记本电脑通常会经历许多天的每天睡眠/唤醒周期(我的意思是挂到RAM,而不是休眠),所以我想手动使辅助HDD进入睡眠状态,并指示内核在整个系统睡眠期间使其保持睡眠状态。 /唤醒周期。


1
如果您想手动发送硬盘进入睡眠状态,可以使用hdparm -Y /dev/sdb。如果系统访问磁盘,它将自动再次旋转。您也可以在/etc/hdparm.conf其中定义此方法,/dev/disk/by-label/DATA4 { spindown_time = 180 } 我建议您为磁盘使用标签,因为您永远不会依赖系统首先检测到哪个磁盘。请注意,您需要更新版本的hdparm(我的是9.43)才能将带有标签的磁盘发送到睡眠状态。
syss

Answers:


1

由于您仅使用辅助硬盘驱动器进行备份,因此建议您告诉fstab不要自动安装驱动器,并让备份脚本安装驱动器,进行备份并再次卸载驱动器。

带有noauto选项的fstab行的示例:

/dev/sdb1 /media/backup ext4 user,noauto 0 0

备份的bash脚本将以开始mount /media/backup并以结尾umount /media/backup


这不会阻止内核在引导时探测磁盘。
Marc.2377

0

我认为那是不可能的。启动时,BIOS / UEFI会检测驱动器,而不仅仅是内核。

不过,我要做的是指示系统在系统启动后立即将驱动器置于睡眠模式。检查https://wiki.archlinux.org/index.php/Hdparm#Putting_a_drive_to_sleep_direct_after_boot

就我而言:

/usr/local/lib/systemd/system/rsleephdd.service

[Unit]
Description="Ranolfi's script to sleep hard drives on boot"

[Service]
Type=oneshot
ExecStart=/usr/bin/hdparm -q -S 120 -Y /dev/sdc

[Install]
WantedBy=multi-user.target

无论驱动器或其分区是否由fstab(或crypttab挂载)都没有关系。

(edit)严格来说,似乎有可能通过修补磁盘来使内核忽略磁盘。但是,这不会阻止驱动器唤醒-相反,我链接到的补丁程序将阻止您访问驱动器,甚至无法偶发地访问文件,也无法将驱动器放入睡觉。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.