V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
Donahue
V2EX  ›  OpenWrt

openwrt 逻辑扇区大小识别错误

  •  
  •   Donahue · 2022-07-14 16:13:12 +08:00 · 1492 次点击
    这是一个创建于 864 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在 ubuntu20.04 下使用 ext4 格式,格式化好硬盘后,无法在我家云的 openwrt 下识别。
    使用 fdisk -l /dev/sda 显示,应该是逻辑扇区识别错误的问题。

    在 ubuntu 下(x86 电脑)显示的扇区大小为:

    Sector size (logical/physical): 512 bytes / 4096 bytes, 此时能正常识别分区信息。


    在 openwrt 下(我家云 arm)显示的扇区大小为:

    Sector size (logical/physical): 512 bytes / 4096 bytes, 此时无法识别分区信息。

    在 openwrt 下使用: fdisk -b 512 /dev/sda 进行操作,然后 p 打印分区信息可以显示正常的信息。

    应该就是逻辑分区大小的问题了, 这个应该怎么整呢,试过在我家云上格式化硬盘,插回 pc, pc 又识别不了(此时逻辑扇区和物理扇区大小为 4096/4096)
    第 1 条附言  ·  2022-07-14 17:59:02 +08:00
    求求别沉了呀
    第 2 条附言  ·  2022-07-14 18:31:35 +08:00
    修正:
    在 openwrt 下(我家云 arm)显示的扇区大小为:

    Sector size (logical/physical): 4096 bytes / 4096 bytes, 此时无法识别分区信息。

    也就是说 openwrt 下的逻辑块大小被识别成了 4096 ,这个我不知道怎么弄了
    eason1874
        1
    eason1874  
       2022-07-14 18:20:33 +08:00
    fdisk -l /dev/sda 显示啥?图片没看到
    Donahue
        2
    Donahue  
    OP
       2022-07-14 18:30:14 +08:00
    @eason1874 没有图片,不会用图床:(


    在 openwrt 下(我家云 arm)显示的扇区大小为:

    Sector size (logical/physical): 4096 bytes / 4096 bytes, 此时无法识别分区信息。

    这个打错了!
    cxtrinityy
        3
    cxtrinityy  
       2022-07-14 19:00:12 +08:00   ❤️ 1
    在 openwrt 用 fdisk 重新创建分区表试过么?
    eason1874
        4
    eason1874  
       2022-07-14 19:28:38 +08:00   ❤️ 1
    搜到相似的帖子《我家云挂载 4T 硬盘时扇区识别出错!》 https://www.right.com.cn/forum/thread-4106556-1-1.html

    他们两个都说外接硬盘盒没事,内置就这样,如果你也是内置这样,那估计是内置硬件只支持 4096 的,或者是硬件坏掉了,不能正确识别硬盘,给系统提供了错误的块信息

    要是这样,比较好的处理方式就是换硬件,其次是修改系统配置,感觉软件方式比较麻烦,资料很少,只搜到这个: https://unix.stackexchange.com/questions/542284/how-can-you-force-the-linux-kernel-to-use-a-specific-block-size-for-a-disk
    Donahue
        5
    Donahue  
    OP
       2022-07-14 19:38:59 +08:00
    @cxtrinityy 重新创建分区表要格式化原有数据吧? 这样 openwrt 上是能识别,但是换到台式机又不行了
    cxtrinityy
        6
    cxtrinityy  
       2022-07-14 19:45:07 +08:00   ❤️ 1
    @Donahue 感觉像你的 openwrt 改过, 带的 fdisk 读写问题估计也是和他匹配的? 分区表, mke2fs 这两个个应该都通用的, 我官网的 openwrt 写分区表和创建 file system 没碰到过这种问题
    Donahue
        7
    Donahue  
    OP
       2022-07-14 20:01:56 +08:00
    @eason1874 成功访问了,使用 loop 设备能够指定块大小为 512 ,感谢!!

    看来是我家云上面 sata 控制器的 bug ,给系统提供了错误的块信息
    Donahue
        8
    Donahue  
    OP
       2022-07-14 20:03:15 +08:00
    @cxtrinityy 我是在 ubuntu 上格式化之后再拿去给 openwrt 用的~

    openwrt 下格式化再使用也没问题,但是我硬盘里已经有数据了,不想再格式化一遍然后再复制数据了
    Donahue
        9
    Donahue  
    OP
       2022-07-14 20:23:21 +08:00
    @eason1874 但是这样子性能好差,原本读写能到 110MB/s 以上的,用 loop 设备之后最高只有 25MB/s 了
    eason1874
        10
    eason1874  
       2022-07-14 20:33:43 +08:00
    @Donahue 你可以研究下 /etc/fstab 挂载参数,我看有个参数是 blksize ,貌似是硬件的,不知道有没有逻辑的

    要是经常插拔的话,可能整个硬盘盒比较方便。要是长期在 openwrt 使用,偶尔拔下来插 ubuntu ,那你可以反向操作,就按 4096 格式化,插 ubuntu 的时候用 loop 指定为 4096
    frostnotfall
        11
    frostnotfall  
       2022-07-15 18:54:56 +08:00
    这会不会是高级格式化的问题,早先的盘扇区都是 512 ,现在的都是 4096 ,但一般为了兼容,硬盘厂商一般会将 4096 模拟为 512 ,但现在的最新盘还会不会模拟就不知道了。
    然后 fdisk 命令也有了相应的支持。
    所以
    1. 两个系统 Ubuntu 和 openwrt 有一个 fdisk 工具版本太老或者没有集成这类支持?
    2. 硬盘固件模拟扇区有问题,看看能不能升级固件?
    Donahue
        12
    Donahue  
    OP
       2022-07-15 19:11:52 +08:00
    @frostnotfall 放弃了,而且 4T 硬盘放在上面好像异常发热,不瞎搞了,直接装台式上面用着,以后有需要再组台 x86 的 nas 了,折腾下去没意义
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5629 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 01:37 · PVG 09:37 · LAX 17:37 · JFK 20:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.