V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
huangya
V2EX  ›  NAS

群晖分区设计和启动的原理

  •  
  •   huangya · 17 天前 · 615 次点击
    最近在研究群晖的内部工作原理,研究对象是 ds214play 。这个产品有个 nor flash 。根据启动 log 我们可以看到 nor flash 的分区表:
    [ 9.756626] m25p80 spi1.0: found n25q064, expected m25p80
    [ 9.762133] m25p80 spi1.0: n25q064 (8192 Kbytes)
    [ 9.766993] Creating 6 MTD partitions on "spi1.0":
    [ 9.771814] 0x000000000000-0x0000000d0000 : "RedBoot"
    [ 9.781681] 0x0000000d0000-0x0000003d0000 : "zImage"
    [ 9.797184] 0x0000003d0000-0x0000007d0000 : "rd.gz"
    [ 9.823147] 0x0000007d0000-0x0000007e0000 : "vendor"
    [ 9.828372] vender Mac0 address : 00:11:32:42:cb:4f
    [ 9.834018] vender Mac1 doesn't set ucSum:0x00 Buf:0x00 Sum:0.
    [ 9.841107] vender Mac2 doesn't set ucSum:0x00 Buf:0x00 Sum:0.
    [ 9.847013] vender Mac3 doesn't set ucSum:0x00 Buf:0x00 Sum:0.
    [ 9.852842] serial number='1520LTN597904'
    [ 9.860050] 0x0000007e0000-0x0000007f0000 : "RedBoot Config"
    [ 9.876496] 0x0000007f0000-0x000000800000 : "FIS directory"

    里面有存放 kernel ( zImage)和 ramdisk(rd.gz)。我解压了群晖的官方的 pat 文件,发现结构如图。
    checksum.syno
    diskaction.tgz
    DiskCompatibilityDB.tar
    DSM_DS214play_25556.pat
    FileStation-i686-1.2.8-0293.spk
    hda1.tgz
    indexdb.txz
    LogCenter-i686-1.1.5-0129.spk
    OAuthService-i686-1.0.4-0031.spk
    rd.bin
    RedBoot.msys
    smartctl
    strings
    synofwupgrade
    synohdpack_img.txz
    Synology.sig
    SynologyUniversalSearch-i686-1.5.1-0316.spk
    updater
    USBCopy-i686-2.1.1-0081.spk
    VERSION
    zImage

    我的问题是:
    1.pat 文件里面的 zImage 和 rd.bin 应该就是对应的 nor flash 分区中的 zImage 和 rd.gz 吧?
    2.hda1.tgz 就是安装到硬盘中的第一个分区中 rootfs ,是吧?
    3.ds214play 升级的时候,kernel ( nor flash 分区表中的 zImage ) ,ramdisk ( nor flash 分区表中的 rd.gz )也会升级吗?如果中途断电,会怎样?会不会升级 kernel 的时候,断电导致变砖?我似乎也没有看到群晖有什么双分区保险机制。还是群晖在 load kernel 之前的 bootloader 里面做了类似能够进制恢复模式的设计?
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3716 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 116ms · UTC 10:36 · PVG 18:36 · LAX 02:36 · JFK 05:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.