V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
Donahue
V2EX  ›  OpenWrt

openwrt 逻辑扇区大小识别错误

  •  
  •   Donahue · Jul 14, 2022 · 2204 views
    This topic created in 1388 days ago, the information mentioned may be changed or developed.
    在 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)
    Supplement 1  ·  Jul 14, 2022
    求求别沉了呀
    Supplement 2  ·  Jul 14, 2022
    修正:
    在 openwrt 下(我家云 arm)显示的扇区大小为:

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

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


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

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

    这个打错了!
    cxtrinityy
        3
    cxtrinityy  
       Jul 14, 2022   ❤️ 1
    在 openwrt 用 fdisk 重新创建分区表试过么?
    eason1874
        4
    eason1874  
       Jul 14, 2022   ❤️ 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
       Jul 14, 2022
    @cxtrinityy 重新创建分区表要格式化原有数据吧? 这样 openwrt 上是能识别,但是换到台式机又不行了
    cxtrinityy
        6
    cxtrinityy  
       Jul 14, 2022   ❤️ 1
    @Donahue 感觉像你的 openwrt 改过, 带的 fdisk 读写问题估计也是和他匹配的? 分区表, mke2fs 这两个个应该都通用的, 我官网的 openwrt 写分区表和创建 file system 没碰到过这种问题
    Donahue
        7
    Donahue  
    OP
       Jul 14, 2022
    @eason1874 成功访问了,使用 loop 设备能够指定块大小为 512 ,感谢!!

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

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

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