我一直在尝试在Linux上读取和写入文件的性能,特别是O_DIRECT,我想知道,无论是在硬盘级别还是在posix / Linux API级别,都可以只编写一些字节到扇区,而不破坏扇区的其余部分,而不先读取它?
答案 0 :(得分:1)
我对磁盘驱动器的经验是,他们希望将数据发送到整个扇区。所以,基本上,没有办法编写少于整个扇区,如果你想改变扇区的开始而不改变结束,你必须读取整个扇区,修改和回写。这部分与磁头与磁盘的交互方式有关(无论如何,对于物理磁盘。在闪存驱动器的情况下,它更可能是一次擦除闪存的一小部分)。
答案 1 :(得分:0)
以便携方式?可能不是。
在Linux和其他一些类Unix系统中,您可以打开驱动器的块设备,寻找一个位置(可能与扇区大小对齐)并向其写入一些数据,但我不知道是什么它会对该区块的剩余部分产生影响。
您最好的选择是在虚拟机上试用它,看看会发生什么。 (显然,你必须有权写入块设备。)