![“不存在缓存页面模式”和“假设驱动器缓存”之间有什么区别。写通。”](https://linux22.com/image/20637/%E2%80%9C%E4%B8%8D%E5%AD%98%E5%9C%A8%E7%BC%93%E5%AD%98%E9%A1%B5%E9%9D%A2%E6%A8%A1%E5%BC%8F%E2%80%9D%E5%92%8C%E2%80%9C%E5%81%87%E8%AE%BE%E9%A9%B1%E5%8A%A8%E5%99%A8%E7%BC%93%E5%AD%98%E2%80%9D%E4%B9%8B%E9%97%B4%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%E3%80%82%E5%86%99%E9%80%9A%E3%80%82%E2%80%9D.png)
POST 后、BIOS 屏幕后、GRUB 后;当我插入 SD 卡或 USB 记忆棒启动 Debian 时,其中之一第一的屏幕上弹出的内容(速度太快,我通常都没有注意到)看起来有点像:
[sdX] no caching page mode present
text, text, X 在那一长串内容的中间开始,文本明显变小,就在窗口管理器启动之前,我看到了非常熟悉的设备消息(这不是dmesg
代表的吗?)
[sdX] assuming drive cache. write through
那么,从技术上来说,这两种状态有什么区别呢?正在缓存什么?页面是什么?什么叫‘写透’?是什么排除了驱动器缓存的假设,以便在启动后立即进行写入?
答案1
“sd”代表 SCSI 磁盘。当第一次检测到磁盘设备时,内核(除其他外)请求设备的缓存模式页面,这将指示设备是否具有位于介质(磁盘、闪存等)前面的板载内存缓冲区。在您的情况下,设备没有缓存模式页面,因此内核假设没有读取缓存或写入缓冲,因此对设备的写入将是“直写”,即将直接进入介质。
内核关心写入缓冲,因为文件系统一致性检查和恢复部分取决于数据写入存储的顺序。如果有设备板载缓存,文件系统模块可能需要发送 SCSI 命令来禁用写入缓存,以便 fsck 继续正常工作。