sata硬盘读写问题

[RK3568 Android11] 开发之SATA硬盘 目录 前言 一、设备树配置 二、开机kernel识别不到sata硬盘 三、系统没有自动挂载SATA 四、格式化硬盘 五、文件管理器可读写操作硬盘 前言 RK3568支持SATA/PCIE外围接口,可搭乘固态或者机械硬盘;可用于物联网网关、NVR存储、监控摄像头等行业使用,此篇文章讲解SATA硬盘的调试; 一、设备树配置 由于RK3568的SATA接口与Type-C USB3.0复用,需要先把Type-C配置成USB2.0 OTG; &sat... 阅读详情
最近碰到sata类型的多家厂商硬盘读写问题,大概是在128G的地方读写失败,问题查了很久,不过最终还是解决了。问题大概是是ata协议的部分漏洞吧,针对于lba28模式和lba48模式的区分太模糊,例如对于DMA方式的写命令有两种:WRITE DMA、WRITE DMA EXT,前者基于lba28、后者基于lba48;命令格式如下:
lba28:
lba48:
两种命令在sata规范里面并没有确切的区分,在linux2.4.17内核里面,libata判断如果硬盘支持lba48模式,那么优先使用lba48模式的命令;但是在linux2.6.24内核里面,libata在将scsi命令转换为ata命令时并没有这么优先考虑,而是使用了
 

static inline int lba_28_ok(u64 block, u32 n_block)
{
         /* check the ending block number */
         return ((block + n_block - 1) < ((u64)1 << 28))

                && (n_block <= 256);
}
 
static inline int lba_48_ok(u64 block, u32 n_block)
{
       /* check the ending block number */
        return ((block + n_block - 1) < ((u64)1 << 48))

               && (n_block <= 65536);
}

这两个内联函数来区分lba28和lba48模式,问题也就出在这里,((block + n_block - 1) < ((u64)1 << 28)) && (n_block <= 256)并没有严格的区分两种类型命令的临界状态,去掉-1问题就能够解决;在linux2.6.30里面已经做了这样的修改,所以如果你依旧使用2.6.30以前的内核,需要修改这个地方。

顺便记录下来,希望对看我博客的朋友有帮助。


http://blog.chinaunix.net/uid-14113486-id-81452.html

MBR-LBA48位资料 操作系统基础,可以编译成bin文件,直接写入MBR,也可以作为写入MBR的工具 立即下载

相关推荐

LinuxMint 22.1(Ubuntu24.04)下通过Wine完美运行同花顺远航版的实战指南

本文详细介绍了在LinuxMint 22.1(Ubuntu24.04)系统下通过Wine完美运行同花顺远航版的实战指南。从基础环境准备到深度优化,包括Wine环境配置、同花顺远航版安装、字体显示调优、任务栏兼容性修复等关键步骤,帮助Linux用户高效使用同花顺远航版进行股票交易和行情分析。

weixin_30919429的博客 570

DMA直接存储访问概述

DMA Direct Memory Access 几乎存在所有先进的处理器中。它允许读写速度不同的外设和内存进行数据交互,而不需要占用CPU太多的时间。如果不用DMA机制,CPU需要将数据搬到暂存地,再搬到新地址上去。在这个时间中,CPU无法进行其他工作。 DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成。典型

Dio980的博客 1236

从静态到动态:如何用Deformable 3DGS和4DGS实现高效动态场景建模

本文深入探讨了Deformable 3DGS和4DGS在动态场景建模中的技术突破,详细解析了这两种方法如何高效处理动态内容。Deformable 3DGS通过引入时间维度的变形场扩展传统3DGS,而4DGS则采用四维时空体素分解方法,两者均显著提升了动态场景建模的效率和质量,适用于虚拟现实、增强现实等应用场景。

weixin_29063035的博客 433

linux磁盘读写错误,linux – 硬盘读取错误……停止?

我的故事很简单.我有一台轻型服务器,运行ArchLinux,它将大部分数据存储在由两个SATA驱动器组成的RAID-1上.它大约4个月没有任何问题.然后,我突然开始在其中一个驱动器上读取错误.总是,消息看起来很像这样:Apr 18 00:20:15 hope kernel: [307085.582035] ata5.01: exception Emask 0x0 SAct 0x0 SErr 0x0...

weixin_35286137的博客 2012

Pinocchio 结合 CasADi 进行 IK 逆运动学及 Mujoco 仿真

摘要:本视频演示了如何利用Pinocchio和CasADi实现机械臂逆运动学(IK)求解,并在Mujoco中进行仿真。通过构建优化问题(最小化位姿误差),结合IPOPT求解器对机械臂关节角度进行优化。代码支持导入URDF/MJCF模型,并以so100机械臂为例,实现了末端执行器位置跟踪的仿真测试。关键步骤包括:建立平移/旋转误差函数、设置约束条件、调用CasADi求解,最终在Mujoco中实时更新关节状态完成运动控制。

darcsdn 1002

Visual C++与WPF混合开发:C++/CLI桥接技术实现现代化桌面应用

在桌面应用开发领域,混合编程技术是连接不同技术栈、复用核心资产的关键手段。其核心原理在于通过特定的桥接层,实现托管代码与非托管代码之间的互操作,从而打破语言和运行时环境的壁垒。这项技术的核心价值在于,它允许开发者将高性能、高稳定性的原生C++业务逻辑库,与现代化、高表现力的WPF用户界面无缝结合,避免了重写核心代码的巨大成本和风险。在工业控制、数据可视化、上位机软件等对性能和界面均有高要求的应用场景中,这种架构尤为适用。本文以C++/CLI作为桥接技术,详细演示了如何构建一个包含原生C++核心层、C++/C

weixin_33146151的博客 278

自己动手提高ubuntu系统的性能(EXT3)

修改个人用户设置   在内核设置层面之上,还有很多个人用户配置的参数,ulimit命令就是bash下提供的,查看对指定应用的限制值的工具。你可以通过ulimit –a命令显示当前设置: core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (...

weixin_33670713的博客 211

【Qt笔记】1.VSCode搭建Qt运行环境

Qt6之后已经抛弃qmake,使用cmake。cmake相对qmake来说只有优点没有缺点。使用VSCode搭建完Qt的运行环境就能开开心心debug了.vscode需要使用的插件:2.Qt tools3.CMakec++插件可以不关注,缺啥都会提醒你.正常安装即可。

没有手牌的博客 2万+

linux sg io,sgio.c · feibob/hdparm - Gitee.com

/* sgio.c - by Mark Lord (C) 2007 -- freely distributable */#include #include #include #include #include #include #include #include #include #include #include "scsi/sg.h"#include "sgio.h"#include "hdp...

weixin_35042833的博客 829

【AI产品与商业航图】Flux.1 完全开源 AI 绘图模型:本地部署与 ComfyUI 实战指南

Flux.1是一个开源项目,用户可以自由使用和修改,完全免除使用费用。🖥️本地部署支持:与一些依赖云端计算的工具不同,Flux.1支持本地部署,确保用户可以离线使用并自主控制数据隐私。🔄兼容ComfyUI框架:Flux.1可以无缝集成到ComfyUI中,用户可以享受更加简便和直观的操作界面。🎨卓越的图像生成能力:Flux.1能够生成高质量、细腻的图像,支持多种风格与创作主题的切换。💾低硬件要求。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1736

把 ABAP ALE Change Pointers 讲透:从 CDHDR/CDPOS 到 BDCP2,再到 RBDMIDOC 的自动分发链路

摘要:SAP ALE Change Pointers机制在系统集成中实现业务变更与数据分发的解耦。它记录业务对象变更(如SAP主数据修改),但不立即发送,而是由后续分发逻辑决定发送时机和方式。该机制包含两层:Change Documents记录审计级变更明细,Change Pointers标记需分发的关键变更。配置核心包括全局开关、消息类型激活和字段选择。典型应用如零售价格条件变更自动推送至POS系统,通过BDCP2表存储待处理队列,由RBDMIDOC程序定时评估生成IDoc。运维需关注定期清理和性能优化,

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 209

Debian救命命令fsck -y /dev/sda1 和error: { UNC }报错,/bin/sh: can t access tty: job control turned off

一直用一个旧笔记本作为Debian测试服务器,最近出了点状况,在3个月内两次无法进入系统,停在(initramfs)_,这让非专业人士有点束手无策,但靠着一句: fsck -y /dev/sda1 让人马上走出困境。感觉真好! 出错信息一: [ 65.924910] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0 [ 65.924922] ata1.00: BMDMA stat 0x65 [ 65.924930] ata1.

OKailon的博客 4551

爬虫面试:关于爬虫破解验证码的13个经典面试题

​解释:验证码是一种用于区分人类用户和自动化程序(如爬虫)的技术,通常通过显示图形、文字或音频等方式,要求用户完成特定任务(如识别扭曲的字母、点击特定区域等)。​作用:防止恶意爬虫滥用网站资源、进行批量注册、登录破解等行为,保护网站的安全性和数据的完整性。

数据知道的博客 1万+

WIN10笔记本新增SATA硬盘读写卡顿问题的解决

个人使用的ACER笔记本,使用的win10 64位操作系统,由于原厂的500G硬盘满足不了各种资源的存储要求,最近在TB上买了块1T的HGST硬盘,在复制原盘的文件时就感觉硬盘I/O经常没有响应,开始以为是windows的DEFENDER导致的,后来关了DEFENDER之后花了一晚上时间把原盘的文件复制回来。早晨上班的时候打开了几个网页,顺手开了个迅雷下载,接了个电话打开xshell准备干活,这时整

运维记录 3660

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

2021-10-20基于TMS320C6748的SATA硬盘读写应用

标题基于DSP的SATA硬盘读写应用 TMS320C6748/OMPL138是一款性价比很高的DSP,拥有丰富的外设,SATA、UPP、MCBSP、MCASP、EMAC、UART、EMIF等等,测试使用创龙提供的开发板TL6748系列。测试HDD类型:有机械硬盘、三星SSD,IntelSSD等; 测试方法:同步扇区读/写;异步扇区读/写;文件系统读/写; 支持容量:128GT; 测试平台:CCS3/CCS4/CCS5/…/CCS9 BIOS: dsp/bios和sys/bios 在OMP138平台上,Li

zhang12er的博客 627

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

硬盘的静音功能 AAM

有些硬盘出厂默认是开了AAM(Automatic acoustics-management)的,有些硬盘没有开。我们可以通过软件设置硬盘的AAM功能,达到噪音和性能的折中。开启AAM功能会增大硬盘的寻道时间,但是对平均读写速度的影响并不显著。 可以设置硬盘AAM的软件:HD Tune、CrystalDiskInfo、HDD Scan、MHDD等。 有些硬盘的AAM设置只有两档:128(静音)...

数据库天地 751

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

计算机能不能升级固态硬盘,老电脑升级固态硬盘真的能变快吗?

怎样去 DIY 一台主机呢?它可以满足自己的工作、游戏需求,还要颜值高、噪音小、最重要的是价格要便宜,质量要好。本系列为让装机零基础的朋友可以轻松了解,所以尽量避免专业参数。(每周二更新)老电脑升级固态硬盘是第一选择,然而很多同学购买了固态硬盘,却发现没有想象的那么快,用测速工具测试后发现读写速度不能达到标称,是买到假货了吗?其实不然,固态硬盘读写速度受很多因素影响,本期《装机不求人》就和大家讲解...

weixin_36166558的博客 5501

华为V5服务器SAS/SATA硬盘常亮黄灯及解决方案

SAS/SATA硬盘指示灯 图2-43SAS/SATA硬盘指示灯 表2-14SAS/SATA硬盘指示灯说明 硬盘Active指示灯(绿色) 硬盘Fault指示灯(黄色) 状态说明 常亮 熄灭 硬盘在位。 闪烁(4Hz) 熄灭 硬盘处于正常读写状态或重构主盘状态。 常亮 ...

weixin_42928781的博客 1万+

XP CPU经常莫名其妙60%-70%,HDTune检测无坏块,System Interrupts进程异常问题解决

家里的机器09年底买的,平时都不怎么用,其实早就出现了标题中所述问题,但是懒得动,最近决定查一查究竟是什么问题, 用 关于SysinternalsSuite全部工具【详解】 中介绍的procexp.exe 加强型进程管理器查看,发现在涉及到硬盘文件操作的时候(HDTune硬盘检测硬盘传输速率) system interrupts 中断管理进程经常在40%-50%徘徊,HDTune硬盘检

shuzui1985的专栏 5758

SATA I, SATA II, SATA III区别

1.简介 SATA即Serial ATA,为串行接口。 SATA I为版本为1.x接口,即第一代SATA接口,总线最大传输带宽为1.5Gb/S; SATA II为版本为2.x接口,即第二代SATA接口,总线最大传输带宽为3.0Gb/S; SATA III为版本为3.x接口,即第三代SATA接口,总线最大传输带宽为6.0Gb/S。 2. 兼容性 Seria

刘兵马俑的博客 7484

CentOS5 在HP Proliant DL140 G2上sata硬盘识别为hda问题的解决方法[转]

http://hi.baidu.com/uroot/blog/item/54b2b101910329051d95835f%2EhtmlCentOS5 在HP Proliant DL140 G2上sata硬盘识别为hda问题的解决方法-2007.10.42007-10-04 13:58 问题现象: ...

weixin_33717298的博客 128

安卓下格式化U盘、SATA硬盘为exFAT格式工具

安卓下格式化U盘、SATA硬盘为exFAT格式工具 【下载地址】安卓下格式化U盘SATA硬盘为exFAT格式工具 这款工具专为Android设备设计,能够轻松将U盘或SATA硬盘格式化为exFAT格式,解决FAT32无法支持2T以上硬盘的限制。exFAT格式不仅兼容Android系统,还能在Windows平台上无缝读写,...

gitblog_06755的博客 3729

470p 更换固态硬盘_电脑加装固态硬盘后出现黑屏或蓝屏解决方案

以下内容以本人遇到的真实问题为例,从找到加装固态硬盘后出现黑屏及蓝屏的原因,到成功解决问题,请各位看官听我娓娓道来,也希望为遇到同样问题的广大网友拨云见日,废话不多说,走起……一、问题描述:1. 背景:十月底为自己的一台用了九年左右的笔记本电脑更换了一个固态硬盘,原机械硬盘装到了光驱位置,硬盘的更换网上有很多教程,就,就不赘述,此处省略一万字……因为电脑里装了很多数据处理软件,重装系统后各种软件自...

weixin_42353187的博客 7659

关于硬盘的介绍

硬盘可以根据多种不同的方式进行分类,包括机械硬盘和固态硬盘、内置硬盘和外置硬盘、SATA和NVMe硬盘等。磁盘碎片是指当硬盘上的文件被删除或移动时,文件的碎片会分散在硬盘的不同区域。为了解决磁盘碎片问题,操作系统通常会提供一个磁盘碎片整理工具,将碎片整理到一起,使硬盘的空间得到优化,读写速度也会提高。相比于其他存储设备,硬盘有着更高的容量和更快的读写速度。内置硬盘是安装在计算机内部的硬盘,而外置硬盘则是通过USB等接口连接到计算机上的硬盘。机械硬盘是传统的硬盘类型,它使用旋转的盘片和机械读写头来读写数据。

ONEYAC唯样的博客 803

LSI SAS 6G+SATA盘的问题

最近在做的磁盘稳定性工作中有个问题:LSI SAS 6G的卡接插SATA盘的JBOD,用dd测试读写磁盘,一段时间后出现有些命令被abort,而用SAS盘就没有这个问题,很奇怪。

fyfhust的专栏 1240
上一篇: 我理解的逻辑地址、线性地址、物理地址和虚拟地址(补充完整了)
下一篇: ARM微处理器的指令系统
linuxcc2011
博客等级 码龄16年 2粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值