如何避免硬盘在系统启动时启动? (来自SSD的Ubuntu)

感谢hdparm -B1 /dev/sdb我的硬盘在启动时打开电源时不再旋转。 但在完成BIOS POST消息并启动Ubuntu后,硬盘驱动器通过SATA数据线获取信号并旋转。

离开数据线(但仍然使用插入的SATA电源线)让系统完全从我的SSD启动而不会旋转硬盘。

什么原因导致硬盘旋转? 也许Grub2?


编辑:不,似乎不是Grub2旋转驱动器。 我只是设置Grub来显示没有计时器的菜单。 在我点击Ubuntu标准启动选项之前,没有任何事情发生,几秒钟之后驱动器就会旋转。


编辑: dmesg | grep sdb dmesg | grep sdb

 [ 7.080043] ata2.00: qc timeout (cmd 0xef) [ 7.080057] ata2.00: failed to IDENTIFY (SPINUP failed, err_mask=0x4) [ 9.830035] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 9.836555] ata2.00: ATA-8: SAMSUNG HD105SI, 1AJ10001, max UDMA/133 [ 9.836564] ata2.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 31/32) [ 9.842364] ata2.00: configured for UDMA/133 [ 9.842644] scsi 1:0:0:0: Direct-Access ATA SAMSUNG HD105SI 1AJ1 PQ: 0 ANSI: 5 [ 9.843249] sd 1:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB) [ 9.843270] sd 1:0:0:0: Attached scsi generic sg1 type 0 [ 9.843487] sd 1:0:0:0: [sdb] Write Protect is off [ 9.843497] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00 [ 9.843590] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 9.844091] sdb: [ 9.845127] scsi 2:0:0:0: CD-ROM ATAPI iHDS118 5 RL0C PQ: 0 ANSI: 5 [ 9.851182] sr0: scsi3-mmc drive: 48x/48x cd/rw xa/form2 cdda tray [ 9.851191] Uniform CD-ROM driver Revision: 3.20 [ 9.851554] sr 2:0:0:0: Attached scsi CD-ROM sr0 [ 9.851802] sr 2:0:0:0: Attached scsi generic sg2 type 5 [ 9.942896] sdb1 [ 9.943773] sd 1:0:0:0: [sdb] Attached SCSI disk 

很确定它是控制器扫描磁盘的内核模块,导致你的高清旋转。 现在,如果我有点错误,并且它确实是您的硬盘驱动器的模块,您可以在启动过程中阻止加载该模块。 查看/etc/modprobe.d/的黑名单。

我想你的意思是说hdparm -s ,而不是-B1 ,它要求APM兼容的硬盘(这几乎只涉及笔记本电脑的硬盘)在短时间不活动后自动待机。 此外,Western Digital磁盘似乎不接受-s命令在待机状态下打开电源,但在背面有一个可用于启用它的跳线。

内核sd(scsi磁盘)驱动程序在第一次访问磁盘时启动磁盘,这在启动期间发生以扫描分区表。 默认情况下,它也会在从暂停恢复后重新启动驱动器,但您可以通过将0写入/sys/block/sda/device/scsi_disk/*/manage_start_stop来禁用它。

我通常这样做,然后手动挂起我不打算在重启后使用hdparm -y驱动器。

我的最后一个主板BIOS根本没有检测到待机时开机的驱动器,但我的新华硕沙桥显然“智能”足以注意到驱动器处于待机状态并启动它。

我会查找sdb(1)的日志,从dmesg开始:

 dmesg | grep /dev/sdb 

Linux将在启动时检查所有硬盘驱动器上的分区,从而读取所有连接的硬盘驱动器的分区表。 仅这一点就会导致你的旋转,但可能还有其他原因。

对于深入分析,AFAIK ureadahead的后端工具构建了引导期间读取的设备块列表。 您可以使用其日志来确定读取哪些硬盘块,作为确定旋转原因的第一步。