标签: block-device

“空闲块计数错误”有多危险?

fsck在只读模式下运行并收到一些如下错误:

Free blocks count wrong (5597728, counted=5231480).
Fix? no
Run Code Online (Sandbox Code Playgroud)

正如这里所述:

免费块检查

空闲块存储在柱面组块映射中。fsck 命令检查所有标记为空闲的块是否未被任何文件声明。当所有块都已计算完毕后,fsck 命令检查空闲块数加上 inode 所声明的块数是否等于文件系统中的块总数。如果块映射有任何问题,fsck 命令会重建它们,并忽略已分配的块

在这种情况下,例如当文件增长时,其他文件的某些块是否可能被覆盖?

filesystems fsck block-device corruption

5
推荐指数
0
解决办法
3192
查看次数

4K 扇区对 SSD 存储的 LUKS2 性能提高了多少?

根据cryptsetup(8) 手册页,LUKS2 卷的扇区大小可以配置为--sector-size

设置用于磁盘加密的扇区大小。它必须是 2 的幂并且范围在 512 - 4096 字节内。默认为 512 字节扇区。此选项仅在 LUKS2 模式下可用...将扇区大小从 512 字节增加到 4096 字节可以在大多数现代存储设备以及某些硬件加密加速器上提供更好的性能。

出于兼容性原因,保留了 512 字节的默认扇区大小。根据cryptsetup 2.0.0 的发行说明,扇区大小存储在元数据中,以后无法更改。因此,将我现有的 LUKS2 卷迁移到 4K 扇区将非常耗时。

4K 扇区对 SSD 存储的 LUKS2 性能提高了多少?哪种加密硬件最能利用 4K 扇区?

block-device luks cryptsetup

5
推荐指数
1
解决办法
4082
查看次数

badblock的两种无损检测的优缺点是什么?

badblocks用来测试我用来启动 RPi 的 32GB class-10 microSD 卡。我已经有一个正常运行的文件系统,所以我不想用-w选项(破坏性读写测试)扫描它。

我有两个选择:我可以使用默认的只读测试,或者我可以使用非破坏性读写测试(通过备份扇区,破坏性地测试它,然后恢复扇区的原始内容来完成)。

选择测试类型时应该考虑什么?我希望它尽可能快,但我也需要准确的结果。

performance filesystems badblocks block-device disk

4
推荐指数
1
解决办法
1894
查看次数

设备是纯粹由硬件决定的块设备还是字符设备?

来自https://unix.stackexchange.com/a/472920/674

“字符设备”和“块设备”是抽象概念,通常在 Unix 风格的系统中用于对各种设备进行分类。

设备是由硬件(设备或设备控制器)、设备驱动程序、文件系统、操作系统内核 I/O 子系统和/或其他东西决定的块设备还是字符设备?

我认为它们是纯硬件(设备或设备控制器)的概念,独立于设备驱动程序、文件系统和操作系统内核 I/O 子系统。

块/字符设备和随机/顺序访问之间是否有影响?

唯一真正可见的区别是块设备使用缓冲区缓存而字符设备不使用。(并且某些块设备驱动程序可能会提供在每个文件的基础上绕过缓冲区缓存的选项)。

块设备使用的缓冲区缓存是由设备驱动程序、文件系统还是硬件(设备或设备控制器)提供的?如果是硬件,那么这是否意味着设备是块设备还是字符设备完全由硬件(设备或设备控制器)决定?

谢谢。

io block-device character-device

4
推荐指数
1
解决办法
1242
查看次数

给定一个块设备,如何检测分区名称是否必须包含“p”?

我想用sfdisk. 这可能是 SD 卡、硬盘、SATA 或 NVME 设备。最初我认为这sfdisk需要这些名称,因此我希望正确生成它们,但显然无论如何都可以将它们排除在外。:)

与传统的 ATA 和 SATA 设备的分区名称简单地附加到设备名称(例如,/dev/sda1对于块设备的第一个分区sda)不同,对于基于闪存并使用其他驱动程序的块设备,存在另一种方案。这些p在设备和分区名称之间添加一个(例如,/dev/mmcblk0p1对于 的第一个分区mmcblk0)。不幸的是,我没有找到关于这些细节的任何内核文档。

给定一个块设备(例如,/dev/mmcblk0),我如何决定相应的(但不存在的)分区是否将命名为p或不(例如,/dev/mmcblk0p1/dev/mmcblk01)?

这基本上是这个问题的相反问题,但有一个额外的扭曲,即分区尚不存在(为了这个问题,我不允许答案实际修改分区表,因此尝试它是无效的)。

linux partition block-device linux-kernel

4
推荐指数
1
解决办法
577
查看次数

如何获取块特殊文件的大小?

我需要能够确定块特殊文件的大小。

例如,给定/dev/sda,我需要一个命令来提供设备的大小。(我说的大小是指容量,因为这是一个存储设备。)


理由:

我可以通过以下方式在设备中存储信息:

echo "12345" >/dev/sda # 需要以 root 身份运行

(顺便说一句,不要运行该命令......除非你不关心你的数据。)

但是,我需要知道我可以在设备上存储多少数据,但我不知道该怎么做。

command-line size partition block-device

3
推荐指数
1
解决办法
7877
查看次数

从媒体重新读取分区的命令

当我插入媒体(例如 SD 卡)时,系统 (Ubuntu 12.04) 会读取分区表并创建指向每个分区的所有 /dev/*[1234] 链接。如果我重新分区媒体,我必须物理删除并重新插入它以更新这些链接。是否有命令可以强制执行此操作而无需移除并重新插入磁盘?

partition media block-device

3
推荐指数
1
解决办法
322
查看次数

在命令行上检索磁盘统计信息

我怎样才能最便携地从 bash 脚本中获取磁盘统计信息?

我已经在使用

cat /sys/block/*/stat
Run Code Online (Sandbox Code Playgroud)

按磁盘/分区计算总体带宽,但是我还试图确定磁盘的总体大小以及已使用/可用的扇区数。

我知道这些统计数据都可以使用df,但是我正在寻找一个替代(如何做DF做它的后台工作?),最好的东西,用途/sys/class//sys/block/

这可能吗?或者我是否需要使用df | awktop 来获取我正在寻找的统计数据?

编辑

用例:

这用于指标报告脚本,该脚本将从系统收集各种信息并将其报告给图形系统。

即抓取扇区读/写统计信息

for device in /sys/block/*
do

    stats=$( cat $device/stat )

    sectorsRead=$( echo $stats | awk '{print $3}' )
    sectorsWrite=$( echo $stats | awk '{print $7}' )

    doSomethingWith sectorsRead
    doSomethingWith sectorsWrite
done
Run Code Online (Sandbox Code Playgroud)

我正在做类似的事情,但要获取扇区总数,而不是已使用/空闲的扇区。

disk-usage block-device

3
推荐指数
1
解决办法
762
查看次数

有没有办法制作一个 Linux 块设备,它只是一个现有块设备的偏移量?

有没有办法制作一个 Linux 块设备,它只是一个现有块设备的偏移量?

ie/dev/sdo的块 0 是/dev/sda块 100,/dev/sdo因此比 小 100 个块/dev/sda

linux block-device

3
推荐指数
1
解决办法
395
查看次数

块设备功能标志的含义是什么?

sysfs 中的 Linux 块设备有一个capability文件,部分记录在此处。嗯,有一个记录在案。

正如它所暗示genhd.h的那样,还有其他的。有没有关于它们的任何文档,或者有人知道它们的含义吗?

为方便起见,在此列出:

  • GENHD_FL_可移除
  • GENHD_FL_CD
  • GENHD_FL_UP
  • GENHD_FL_SUPPRESS_PARTITION_INFO
  • GENHD_FL_EXT_DEVT
  • GENHD_FL_NATIVE_CAPACITY
  • GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE
  • GENHD_FL_NO_PART_SCAN
  • GENHD_FL_HIDDEN

进一步来说,

可拆卸的?喜欢可移动 USB 驱动器?与 /sys/block/*/removable 的关系?多余的?

什么是扩展开发?

抑制分区?

没有零件扫描?与抑制分区不同?

向上?

光盘?比如“这是一个 CD 驱动器”?为什么?还意味着别的什么吗?

原生能力?

linux block-device linux-kernel

3
推荐指数
1
解决办法
1096
查看次数