无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3303|回复: 47
打印 上一主题 下一主题

chainloader (hd0) 无法启动硬盘引导

[复制链接]
跳转到指定楼层
1#
发表于 2025-1-18 21:43:56 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
chainloader (hd0)   在GRUBUFEI环境下 EFI/grub/menu.lst 下   无法启动硬盘引导  求大神解答一下
48#
发表于 2025-3-26 10:54:49 | 只看该作者
不点 发表于 2025-3-26 10:38
其实这里讨论的重点是 hilsonma 的 find Windows 方案的可行性。

结论是不可行。当然了,如果对失败情 ...

引导分区和系统分区不需要在同一分区的,硬盘上可以只有系统没有引导。只用U盘引导,可以一定程度防止别人使用电脑。
回复

使用道具 举报

47#
发表于 2025-3-26 10:38:12 | 只看该作者
szwp 发表于 2025-3-26 10:29
自用和给别人用区别太大,需要考虑的东西太多了

其实这里讨论的重点是 hilsonma 的 find Windows 方案的可行性。

结论是不可行。当然了,如果对失败情况进行 “忽略”,那也算是可行。

然而,能够优化,为何不优化呢?提高成功率不好吗?提高程序代码的适应性不好吗?

即使 Windows 在主分区,ntldr 也可能是在另外一个主分区里面。

所以,不能武断地认为,只要找到了 Windows 所在的分区,就能够在同一分区下找到 ntldr 文件。

点评

引导分区和系统分区不需要在同一分区的,硬盘上可以只有系统没有引导。只用U盘引导,可以一定程度防止别人使用电脑。  详情 回复 发表于 2025-3-26 10:54
回复

使用道具 举报

46#
发表于 2025-3-26 10:37:48 | 只看该作者
这个比较难啊
回复

使用道具 举报

45#
发表于 2025-3-26 10:29:26 | 只看该作者
不点 发表于 2025-3-26 10:18
不管是哪个分区软件、引导软件,使用的规范都是同一个:是 PC 的总司令微软制定的规范。

无论 ntldr  ...

自用和给别人用区别太大,需要考虑的东西太多了

点评

其实这里讨论的重点是 hilsonma 的 find Windows 方案的可行性。 结论是不可行。当然了,如果对失败情况进行 “忽略”,那也算是可行。 然而,能够优化,为何不优化呢?提高成功率不好吗?提高程序代码的适应  详情 回复 发表于 2025-3-26 10:38
回复

使用道具 举报

44#
发表于 2025-3-26 10:18:49 | 只看该作者
szwp 发表于 2025-3-26 08:46
当年用的引导软件是spfdisk,是一个分区软件,也是一个引导器。可以做到各系统之间,其它系统分区隐藏, ...

不管是哪个分区软件、引导软件,使用的规范都是同一个:是 PC 的总司令微软制定的规范。

无论 ntldr 所在分区是否隐藏,它必须是主分区。因为这是微软的习惯。

grub4dos 会忽略隐藏标志,找到里面的 ntldr。

也就是说,如果遵从微软的规范(微软的习惯也算是规范),那么,ntldr 就是在主分区。

也就是说,即使是 Windows 系统被安装到了逻辑分区,其引导加载器 ntldr 文件也是在一个主分区里面。这个主分区可以小一点,能够放置 ntldr 相关的文件就够了。

那么,把微软的规范进行扩展,可以吗?

可以。其实,ntldr 放在逻辑分区,用 grub4dos 去加载它,是有可能成功启动它的。

然而要明白,微软自己的引导记录是不支持逻辑分区的,也就是说,无法引导逻辑分区里面的 ntldr。

如果你的启动 U 盘只需要针对你自己的电脑,你当然可以无视什么规范,只要能够启动成功,黑猫白猫,都是好猫。

然而如果你的软件、你的启动程序是想要让大众使用,你就不得不考虑各种可能性。比如,把 Windows 安装在逻辑分区里面的情况,而 ntldr 位于主分区。

点评

自用和给别人用区别太大,需要考虑的东西太多了  详情 回复 发表于 2025-3-26 10:29
回复

使用道具 举报

43#
发表于 2025-3-26 08:46:00 | 只看该作者
不点 发表于 2025-3-26 08:19
您的发言,引起我的思考。

反而觉得,find 在搜索 ntldr 时,恰恰正是应该只搜索主分区!

当年用的引导软件是spfdisk,是一个分区软件,也是一个引导器。可以做到各系统之间,其它系统分区隐藏,互不干扰。

点评

不管是哪个分区软件、引导软件,使用的规范都是同一个:是 PC 的总司令微软制定的规范。 无论 ntldr 所在分区是否隐藏,它必须是主分区。因为这是微软的习惯。 grub4dos 会忽略隐藏标志,找到里面的 ntldr。  详情 回复 发表于 2025-3-26 10:18
回复

使用道具 举报

42#
发表于 2025-3-26 08:19:54 | 只看该作者
szwp 发表于 2025-3-25 22:31
玩vhd前,曾经将系统装在逻辑分区里,想装的系统太多,主分区不够用

您的发言,引起我的思考。

反而觉得,find 在搜索 ntldr 时,恰恰正是应该只搜索主分区!

为什么呢?

因为 ntldr 只能放在主分区。在历史上,微软的扇区引导代码,向来都是只搜索和引导主分区里的 io.sys, ntldr, bootmgr,而不引导逻辑分区里的 io.sys, ntldr, bootmgr。

也就是说,把 ntldr 放在逻辑分区里是不行的。Windows 可以在逻辑分区里,但 ntldr 不可以。

所以,无论如何,ntldr 都只能在主分区。

这就得到一个推论:find Windows 文件夹是错误的!因为 Windows 能够放在逻辑分区,而 ntldr 却不在那个逻辑分区里面。

find 应该直接找到 ntldr 所在的分区。把它设为 root 之后,再执行 chainloader 命令,这就可以成功加载它了。

点评

当年用的引导软件是spfdisk,是一个分区软件,也是一个引导器。可以做到各系统之间,其它系统分区隐藏,互不干扰。  详情 回复 发表于 2025-3-26 08:46
回复

使用道具 举报

41#
发表于 2025-3-25 22:31:21 来自手机 | 只看该作者
不点 发表于 2025-3-25 13:28
我已经更新了帖子,补充了 “不可以 find Windows”的内容。

因为 Windows 所在分区,不一定是 ntldr  ...

玩vhd前,曾经将系统装在逻辑分区里,想装的系统太多,主分区不够用

点评

您的发言,引起我的思考。 反而觉得,find 在搜索 ntldr 时,恰恰正是应该只搜索主分区! 为什么呢? 因为 ntldr 只能放在主分区。在历史上,微软的扇区引导代码,向来都是只搜索和引导主分区里的 io.sys,  详情 回复 发表于 2025-3-26 08:19
回复

使用道具 举报

40#
发表于 2025-3-25 19:07:58 | 只看该作者
hilsonma 发表于 2025-3-25 13:13
非常感谢。

总结一下:

测了这个新代码,没问题。敢用真人头像的大神
回复

使用道具 举报

39#
发表于 2025-3-25 18:03:01 | 只看该作者
本帖最后由 不点 于 2025-3-25 18:19 编辑
hilsonma 发表于 2025-3-25 14:25
知道 find 后面有个参数 condition 但不懂怎么用,也没有见过这样的应用实例。

grub4dos 的 readme 文件,有一个小节,“conditional find”,里面有这样一个例子:

                find /ntldr checkrange 0x07 parttype

        This will list all partitions with ID=0x07 and existing /ntldr.

此处,checkrange 0x07 parttype 就是条件。通常,一条命令就是一个条件。命令执行成功,就是 true,失败就是 false。

parttype 命令返回 “当前”分区的类型字节值。checkrange 命令检查这个类型字节值是否位于集合 { 0x07 } 之中,如果是,就返回 true,否则,返回 false。

需要设法获取当前分区的分区号。你可以自己编写一条命令,获取当前分区的分区号,也就是 (hdx,y) 里面的 y 值。然后用 “checkrange 0:3 【你的命令】”作为条件,这样就限定 find 只对主分区进行操作,因为主分区的 分区号是 0,1,2,3。

我隐约记得 wee 里面的 find 命令支持只查找主分区。可以把代码拷贝过来,放在 grub4dos 中。不过,我的记忆力是靠不住的。开发者们可以重新写代码,强化 find 命令。或者干脆模仿 parttype 命令,增加 drivenum,partnum,partstart,partlength 等命令,方便用户自己编写菜单程序。


回复

使用道具 举报

38#
发表于 2025-3-25 17:02:16 | 只看该作者
U盘启动要UEFI引导WINDOWS,这是多年来的问题。
1.硬盘号法-缺点是无法确认在哪一盘号。
title 启动存在的硬盘(hd1)\n chainloader (hd1)
chainloader (hd1)


2.文件名法-把bootmgfwold.efi更名(任意一个文件名-gmy.efi皆可)来FIND定位,但是大众化得想办法放入此文件。这是最实在的方式-UEFI和Legacy BIOS皆可。
title 启动硬盘windows系统(find 方案2)\n find搜索到有bootmgfwold.efi的第一个硬盘启动
find --set-root --devices=h /efi/microsoft/boot/bootmgfwold.efi
chainloader /efi/microsoft/boot/bootmgfw.efi

3.BCD法
bootmgfw.efi有可能在任一多U盘或硬盘中,这是最差的方式,BCD还须设定分区定位。

回复

使用道具 举报

37#
发表于 2025-3-25 16:59:45 | 只看该作者
本帖最后由 不点 于 2025-3-25 17:13 编辑
wintoflash 发表于 2025-3-25 14:30
已知当前U盘的情况下确实可以通过CONDITION来排除u盘。
但是,假如说用户同时插入了多个U盘呢?

用户插入多个 U 盘时,只有一个 U 盘是实际的启动盘。这个 U 盘会被分配盘符 (0x80) 或 (0x00)。每个 U 盘上的 grub4dos 都可以事先知道它自己所在 U 盘的卷标、序列号、uuid。因此,find 命令总是可以跳过启动 U 盘。

那些多余的 U 盘如何跳过呢?这些 U 盘不是启动盘,它们不会被分配靠前的盘符 (0x80)。它们通常只会被分配为末端的盘符,比如 (0x82) 之类的。可以调整 find 的条件,让它不搜索 (0x82) 以后的盘符,只搜索 (0x80) 和 (0x81)。在 U 盘是启动盘 (0x80) 的情况下,第一硬盘通常就是 (0x81)。而在 U 盘是 (0x00) 的情况下,第一硬盘是 (0x80)。

find 会优先找到硬盘上的 ntldr,而不是优先找到其他那些多余的 U 盘上的 ntldr。因为那些 U 盘会被分配末端盘符。

以上说的是理论上可以实现,至于说实际中如何实现,还需要研究 grub4dos 现有的 find 的条件表达式能否做到,以及是否需要改进和加强。

【补充】以上所说,主要针对 ntldr,不可以用于 bootmgr。因为,bootmgr 能够适应 (0x80), (0x81) 等任意盘符。用户有可能拥有两个本地硬盘,而第一硬盘 (0x80) 很可能是数据盘,不含 bootmgr。真正的 Windows 是安装在 (0x81) 上;在 U 盘启动的情况下,Windows 所在的盘就可能是 (0x82) 了。

所以,ntldr 和 bootmgr 应该使用不同的菜单,不要让两者混合使用同一个菜单逻辑。

回复

使用道具 举报

36#
发表于 2025-3-25 14:30:00 | 只看该作者
不点 发表于 2025-3-25 14:12
办法总比问题多。

要查找 ntldr 的时候,设法跳过 U 盘即可。可以先确定 U 盘的特征,比如,卷标,或 ...
  "find [--set-root[=DIR]] [--devices=DEVLIST] [--ignore-floppies] [--ignore-cd] [FILENAME] [CONDITION]",
  "Search for the filename FILENAME in all of partitions and print the list of"
  " the devices which contain the file and suffice CONDITION. CONDITION is a"
  " normal grub command, which return non-zero for TRUE and zero for FALSE."
  " DEVLIST specify the search devices and order,the default DEVLIST is upnhcf."
  " DEVLIST must be a combination of these letters (u, p, n, h, c, f)."
  " If the option --set-root is used and FILENAME is found on a device, then"
  " stop the find immediately and set the device as new root."
  " If the option --ignore-floppies is present, the search will bypass all"
  " floppies. And --ignore-cd will skip (cd)."

已知当前U盘的情况下确实可以通过CONDITION来排除u盘。
但是,假如说用户同时插入了多个U盘呢?
回复

使用道具 举报

35#
发表于 2025-3-25 14:25:37 | 只看该作者
不点 发表于 2025-3-25 14:12
办法总比问题多。

要查找 ntldr 的时候,设法跳过 U 盘即可。可以先确定 U 盘的特征,比如,卷标,或 ...

知道 find 后面有个参数 condition 但不懂怎么用,也没有见过这样的应用实例。
回复

使用道具 举报

34#
发表于 2025-3-25 14:12:18 | 只看该作者
hilsonma 发表于 2025-3-25 14:01
这部分内容我已经看了,但是暂时是无解的。

gmy 想做通用的pe引导盘,但现在没有找到一个通用的确定wi ...

办法总比问题多。

要查找 ntldr 的时候,设法跳过 U 盘即可。可以先确定 U 盘的特征,比如,卷标,或者序列号,或者 uuid 之类的。可以修改一下 find 命令,让它按照某个条件去查找 ntldr。目前 find 命令支持按照某个条件查找文件。
回复

使用道具 举报

33#
发表于 2025-3-25 14:11:51 | 只看该作者
不点 发表于 2025-3-25 13:28
我已经更新了帖子,补充了 “不可以 find Windows”的内容。

因为 Windows 所在分区,不一定是 ntldr  ...
只让 find 命令搜索主分区

这个怎么去操作?我不懂
回复

使用道具 举报

32#
发表于 2025-3-25 14:01:48 | 只看该作者
不点 发表于 2025-3-25 13:28
我已经更新了帖子,补充了 “不可以 find Windows”的内容。

因为 Windows 所在分区,不一定是 ntldr  ...

这部分内容我已经看了,但是暂时是无解的。

gmy 想做通用的pe引导盘,但现在没有找到一个通用的确定win分区的做法,所以只能找最常用的 /Windows 了,bootmgr/ntldr 多数情况也是放在这个分区的,如果出现你说的例外那就只能失败了,暂时没有更好的办法。
回复

使用道具 举报

31#
发表于 2025-3-25 13:28:00 | 只看该作者
本帖最后由 不点 于 2025-3-25 14:05 编辑
hilsonma 发表于 2025-3-25 13:13
非常感谢。

总结一下:

我已经更新了帖子,补充了 “不可以 find Windows”的内容。

因为 Windows 所在分区,不一定是 ntldr 所在分区。

有这样的可能性:ntldr 位于一个较小的分区上,而 Windows 位于一个较大的分区上。两者不在同一分区。

因此您这个菜单,还需要继续锤炼。

【补充】关于 Fatal!Inconsistent data read from ... 的问题。这当然是属于 buggy BIOS 的问题。但这问题出现的频率比较高。只要用户触碰了 BIOS 的读盘极限,什么情况都会发生,包括死机!

因此,最科学的办法是,尽量不让 grub4dos 去触碰靠后的分区。

比如说,只让 find 命令搜索主分区,不去搜索逻辑分区。这样通常就可以避免搜索靠后的分区了。

由于搜索的分区数目变少了,因此这样也可以加快 find 的执行速度。


回复

使用道具 举报

30#
发表于 2025-3-25 13:13:04 | 只看该作者
本帖最后由 hilsonma 于 2025-3-25 13:22 编辑

非常感谢。

总结一下:

bootmgr不要求从(hd0)引导,所以不需要交换盘号。
ntldr必须从(hd0)引导,不是在(hd0)时需要交换盘号将ntldr所在盘换成(hd0)

使用map --rehook 代替 map --hook,可以忽略map项目不存在的错误

使用root (hd0,) 来避免交换盘号之后二次find

  1. title WinXP/Vista/7/8/10
  2.     find --set-root --devices=h /Windows
  3.     map () (hd0)
  4.     map (hd0) ()
  5.     map --rehook
  6.     root (hd0,)
  7.     chainloader /bootmgr || chainloader /ntldr
复制代码


回复

使用道具 举报

29#
发表于 2025-3-25 12:45:37 | 只看该作者
本帖最后由 不点 于 2025-3-25 13:11 编辑

找到了,在这儿:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=444092&page=1#pid5542700

我把关键部分复制过来,如下。注意 root (hd0,) 这条命令取代了第二条 find 命令,也就是说,只需要开头的那条 find 命令。关于 root (hd0,) 命令的解释,请点击上述链接。

注意,这里假定 U 盘上没有 ntldr,也就是说,find 命令应该会找到硬盘上的 ntldr。如果 U 盘上也有一个 ntldr,那么必须用别的办法找到硬盘 ntldr 所在分区,并设为 root。用查找 windows 文件夹的办法,貌似是不行的!因为 Windows 文件夹不一定与 ntldr 处于同一分区下。要成功引导 ntldr,必须先将 ntldr 所在分区设为 root。可以考虑,将 U 盘上的 ntldr 更名为 myNTLDR 之类的,这样就可以避免冲突了。




总的来说,菜单改成下面这样,更完美一些:

    title find and load NTLDR of Windows NT/2K/XP
    find --set-root --ignore-floppies --ignore-cd /ntldr
    map () (hd0)
    map (hd0) ()
    map --rehook
    root (hd0,)
    chainloader /ntldr
    boot


这样更改以后,也能够适应当 find 找到的是 (hd0,x) 的情况(以下是详细解释):

    find --set-root --ignore-floppies --ignore-cd /ntldr —— 假定找到了 (hd0,3) 上的 ntldr,设定 root 为 (hd0,3)
    map () (hd0) —— 相当于执行 map (hd0) (hd0),把 hd0 映射成自己,也就是撤销对 hd0 的映射项目。
    map (hd0) () —— 也相当于执行 map (hd0) (hd0),把 hd0 映射成自己,也就是撤销对 hd0 的映射项目。
    map --rehook —— 此时由于磁盘映射项目不存在,map --rehook 将不执行任何动作。但如果是 map --hook,则会报错。

    root (hd0,) —— 这句也没问题。执行这条命令之前 root 是 (hd0,3),执行后,root 仍然是 (hd0,3)。
    chainloader /ntldr —— 加载当前 root 设备根目录下的 ntldr (“引导代码”)到内存。

    boot —— 启动前面已经加载的引导代码(递交控制权)。


回复

使用道具 举报

28#
发表于 2025-3-25 11:17:20 | 只看该作者
学习一下,感谢分享。
回复

使用道具 举报

27#
发表于 2025-3-25 11:05:11 | 只看该作者

容我找到后再来回帖。
回复

使用道具 举报

26#
发表于 2025-3-25 11:02:59 | 只看该作者
不点 发表于 2025-3-25 10:32
bootmgr 不需要交换盘号。

ntldr 才需要交换盘号。

感谢指导斧正。

第二条 find 命令可以用另外一条命令代替(前不久我发过帖子)

是什么命令?在哪个贴子?我一下子找不到。
回复

使用道具 举报

25#
发表于 2025-3-25 10:32:13 | 只看该作者
本帖最后由 不点 于 2025-3-25 11:09 编辑
hilsonma 发表于 2025-3-24 17:54
如果U盘也是bootmgr引导并且被识别为硬盘的话,那么find 的对象就改成 /Windows

bootmgr 不需要交换盘号。

ntldr 才需要交换盘号。

第二条 find 命令可以用另外一条命令代替(前不久我发过帖子)。find 命令查找文件,很浪费。所以,应该使用替代方案。

Fatal!Inconsistent data read from .........

这是 BIOS 读盘失败的信息,是 int13 读盘错误(同一个扇区)两次读取的数据不一致,这是无法解决的,因此不要尝试去解决,不要运行磁盘扫描之类的软件(这解决不了问题)。这不是某分区的 Volume 数据格式有错,也不是磁盘坏块;而是 BIOS int13 能够成功读取扇区(进位标志 C=0),但两次读取返回的扇区数据的内容不同(因此 grub4dos 判定这种情况为“无效读取”;这条出错信息 Fatal!Inconsistent data read from ......... 也是 grub4dos 发出的)。补充说明,Fatal!Inconsistent data read from ......... 虽然是失败,但不是最严重的失败。最严重的失败,是 int13 根本就来不及显示任何信息,直接死机或自动重启。

有可能是 137G 极限造成的。也就是说,find 命令尝试去读靠后的分区时,就有可能出现这个问题。

对于无法访问的分区,find 的查找结果是失败,失败后继续运行(find 之后的)下一条命令。

另外,find 去找 Windows 文件夹也不保险。用户在安装 Windows 时,有可能把 Windows 安装在 Win 下,或者 MyWindows 下,这个名字是可以更改的。当然,WinXP 以后的系统是否支持更改 Windows 文件夹的名字,我就不太清楚了。

回复

使用道具 举报

24#
发表于 2025-3-24 20:15:25 | 只看该作者
窄口牛 发表于 2025-3-24 20:03
g4e,启动XP?那就得是64位的XP,用efi启动;很明显你这是legacy的XP。

他和楼主都是想u盘启动转硬盘启动,所以他在这里借楼发问
其实楼主是uefi平台,他是legacy平台,操作有区别的。
回复

使用道具 举报

23#
发表于 2025-3-24 20:03:45 来自手机 | 只看该作者
g4e,启动XP?那就得是64位的XP,用efi启动;很明显你这是legacy的XP。

点评

他和楼主都是想u盘启动转硬盘启动,所以他在这里借楼发问 其实楼主是uefi平台,他是legacy平台,操作有区别的。  详情 回复 发表于 2025-3-24 20:15
回复

使用道具 举报

22#
发表于 2025-3-24 19:59:27 | 只看该作者
gmy 发表于 2025-3-24 19:21
试了几台XP和Win7的老电脑,第二个代码成功了。但XP下虽然成功了,但中途仍有错误代码,显示8屏之多。我 ...

这是扇区读取出错,运行磁盘扫描看是什么结果
如果是数据链接出错应该可以修复,如果系统文件坏了就要重装系统
记忆中好象有个sfc功能的,如果还能进系统可以运行看看(自动修补系统文件的,好象要挂载光盘镜像)
如果重装系统后问题依旧存在那可能是物理损坏了,要扫坏道避开坏道,确定是坏道的话可能要考虑淘汰硬盘。
回复

使用道具 举报

21#
发表于 2025-3-24 19:21:20 | 只看该作者
hilsonma 发表于 2025-3-24 17:54
如果U盘也是bootmgr引导并且被识别为硬盘的话,那么find 的对象就改成 /Windows

试了几台XP和Win7的老电脑,第二个代码成功了。但XP下虽然成功了,但中途仍有错误代码,显示8屏之多。我把第1屏和第8屏的截图发一下,请分析一下,看看能完美解决吗?


点评

这是扇区读取出错,运行磁盘扫描看是什么结果 如果是数据链接出错应该可以修复,如果系统文件坏了就要重装系统 记忆中好象有个sfc功能的,如果还能进系统可以运行看看(自动修补系统文件的,好象要挂载光盘镜像)  详情 回复 发表于 2025-3-24 19:59
回复

使用道具 举报

20#
发表于 2025-3-24 17:54:05 | 只看该作者
本帖最后由 hilsonma 于 2025-3-24 18:09 编辑
gmy 发表于 2025-3-24 16:34
以下是另外一个网友的G4D代码,我改了一下,成功了:
title WinXP/Vista/7/8/10
find --set-root --ignor ...
  1. title WinXP/Vista/7/8/10
  2.     find --set-root --devices=h /bootmgr || find --set-root --devices=h /ntldr
  3.     map () (hd0)
  4.     map (hd0) ()
  5.     map --rehook
  6.     find --set-root --devices=h /bootmgr || find --set-root --devices=h /ntldr
  7.     chainloader /bootmgr || chainloader /ntldr
复制代码


如果U盘也是bootmgr引导并且被识别为硬盘的话,那么find 的对象就改成 /Windows
  1. title WinXP/Vista/7/8/10
  2.     find --set-root --devices=h /Windows
  3.     map () (hd0)
  4.     map (hd0) ()
  5.     map --rehook
  6.     find --set-root --devices=h /Windows
  7.     chainloader /bootmgr || chainloader /ntldr
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-4-19 06:41

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表